CW2 Software Maintenance Spec Sheet
Academic Year 2019/2020
CW2 is about maintaining and extending a re-implementation of a classic retro game (Frogger). This
version has never been completed, but at least it runs, once it is set up properly.
More information about the original Frogger game and its history is available here. You can also pick
up some ideas for creating additional levels.
https://www.arcadeclassics.net/80s-game-videos/frogger
To get started download the original re-implementation from the following GitHub repository.
https://github.com/hirish99/Frogger-Arcade-Game
Then you should set up a JavaFX project in your preferred IDE (either Eclipse or IntelliJ) in your local
git repository, integrate the classes and resources you downloaded into your project, upload it to
GitLab, and start working on it.
The marks will be split as follows:
? 15% for git use (e.g. push, branch, merge, providing .gitignore)
? 30% for refactoring
? 30% for additions
? 15% for documentation (Javadocs + class diagram)
? 10% for a video, explaining your refactoring activities and additions
You should roughly spend 50 HOURS on this coursework
What to produce:
? A README.md file (max. 500 words), documenting the work you conducted (highlighting the
key changes you made for maintenance and extension, where you made them, and why you
made them)
? High level class diagram that shows the structure of the final version of your game (considering
only classes (excluding fields and methods, unless they are relevant for understanding design
principles/patterns), interfaces, relationships, and multiplicity). If you use software to reverse
engineer your class diagram, make sure the delivered diagram is correct and follows the above
requirements.
? The source code documentation (Javadocs) should be delivered in form of a Javadoc folder
inside your project folder. Besides reading your README.md file we will look at the Javadocs
to find out how you maintained and extended the game. If it is not obvious from there we
might miss it. Also we have only a limited amount of time to look at each coursework
submitted. So, please make sure to provide informative but concise Javadocs.
? Finally, you have to make a video (very briefly) showing your software running and then (for
the main part) explaining your refactoring activities and additions. You should also highlight
two achievements you are most proud of.
Important:
? This coursework is about maintaining and extending existing code. So, for the maintenance
part you have to use the existing code as a basis, and not write your own Frogger game from
scratch.
For moderate marks:
2
? Set up a git repository on the school's git server https://projects.cs.nott.ac.uk/ and use it
actively for version control activities
? Do some basic maintenance of the delivered code base (e.g. adding meaningful Javadocs,
organising files in a meaningful way into packages, breaking up large classes in a meaningful
way to support the idea of single responsibility, improving encapsulation, etc.)
? Extend the delivered code base by adding:
o A START screen, displaying a picture related to the game and a button that provides
access to a INFO screen explaining the game operation.
o A HIGH SCORE popup, appearing at the end of each round, showing the scores from
each round, highest at the top
For higher marks: In addition to the previous, do some of the following...
? Refactor the code by adding some design patterns to enhance maintainability
? Organise the code to adhere to the MVC pattern
? Create a permanent high score list (using a file to store scores)
? Add interesting levels to the game (either follow the original Frogger game levels or come up
with your own ideas)
? Add meaningful JUnit tests
? Use build files (Ant or Maven or Gradle)
You have to use Java 10 or higher and JavaFX 10 or higher for the implementation. The project files
you are submitting need to be either compatible with Eclipse or IntelliJ.
Deliverables: Three separate files, uploaded to Moodle:
? A zip file containing your entire project (including your README.md and Javadocs). It needs
to be possible to load (open/import) your project in one of the IDEs (either Eclipse or IntelliJ).
If any unusual steps are required, please mention this in your README.md file. To avoid
disappointment later, test your final version on a different computer. This should help to
uncover hardcoded path dependencies, which was a major issue in previous years.
? Please name your zip file as follows: "Surname_FirstName_IDE_JavaVersion.zip", where IDE
represents the name of the IDE you used (i.e. either Eclipse or IntelliJ) and JavaVersion the
Java version you used. Here is an example: "Siebers_Peer-Olaf_IntelliJ_12.zip".
? Your final class diagram as pdf. Please name your pdf as follows: "Surname_FirstName.pdf".
Here is an example: "Siebers_Peer-Olaf.pdf"
? A video of up to 2 minutes, as described above, in a common format that can be played on
the lab machines in A32. Please test your video on the lab machines before submitting it, to
avoid disappointment. Please name your video as follows: "Surname_FirstName.EXT", where
EXT represents the extension related to your video format (e.g. mp4; mpg; avi). Here is an
example: "Siebers_Peer-Olaf.mp4".
Note: You are gently reminded that we are at liberty to use plagiarism detection software on your
submission. Plagiarism will not be tolerated, and academic offences will be dealt with in accordance
with university policy and as detailed in the student handbook. This means you may informally discuss
the coursework with other students but your submission must be your own work. Please also note
that it is not permitted for you to copy and paste text from another source without correct referencing.
If you are unclear about this process, please discuss with the module convenors during one of our lab
sessions or at the end of a teaching session.
Assessment Details:
? This coursework is worth 50% of your module mark.
3
Questions:
? Dr Siebers and Dr Greensmith will of course be happy to answer questions and give high level
interim formative feedback on your assignment during the lab sessions. However, we might
refuse to answer very detailed technical questions, or very general questions like "What do
you think about my project so far?".
Good luck, have fun, code well :).

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:99515681@qq.com

微信:codehelp

CW2 Software Maintenance Spec Sheet的更多相关文章

  1. software quality assurance 常见问题收录

    1. What is Quality? Quality means, “meeting requirements.” ..Whether or not the product or service d ...

  2. SCI&EI 英文PAPER投稿经验【转】

    英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时 ...

  3. 英文词频统计的java实现方法

    需求概要 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 分析 1.读取文件可使用BufferedReader ...

  4. SAP T CODE : Description (Program)

    SAP T CODE : Description (Program) V : Quickstart RKCOWUSL (RKCOWUSL)V+01 : Create Sales Call (SAPMV ...

  5. 系统分析与设计HW1

    软件工程的定义 1993年,电气电子工程师学会(IEEE)给出了一个定义:"将系统化的.规范的.可度量的方法用于软件的开发.运行和维护的过程,即将工程化应用于软件开发中". 阅读经 ...

  6. 中国计算机学会CCF推荐国际学术会议

    中国计算机学会推荐国际学术会议 (计算机系统与高性能计算) 一.A类 序号 会议简称 会议全称 出版社 网址 1 ASPLOS Architectural Support for Programmin ...

  7. 软件工程总结(Final)

    又到了学期末了,此时此刻软件工程课业接近尾声了.时间过得太快,仿佛昨天这学期的课才开始, 开学时,老师让我们提出了不少对这门课的问题和疑惑,通过一学期的努力学习,我可以试着解开我自己的疑问了. 下面是 ...

  8. 创建nim+安装vioc分区

    一.搭建nim服务器 1.安装须知 安装nim软件包,client随系统默认安装,这里需要安装的是bos.sysmgt.nim.master和bos.sysmgt.nim.spot,即bos.sysm ...

  9. 理清那么多个OO(面向对象)

    OOA - Object-Oriented Analysis(面向对象分析) OOT - Object-Oriented Testing (面向对象测试) OOP - Object-Oriented ...

随机推荐

  1. 面试阿里百分百问的Jvm,别问有没有必要学,真的很有必要朋友

    面试阿里百分百问的Jvm,别问有没有必要学,真的很有必要朋友 前言: JVM 的内存模型和 JVM 的垃圾回收机制一直是 Java 业内从业者绕不开的话题(实际调优.面试)JVM是java中很重要的一 ...

  2. 深入Java源码剖析之Set集合

    Java的集合类由Collection接口和Map接口派生,其中: List代表有序集合,元素有序且可重复 Set代表无序集合,元素无序且不可重复 Map集合存储键值对 那么本篇文章将从源码角度讨论一 ...

  3. 动态样式语言less初识

    资料参考与http://lesscss.cn/ Bootstrap--(less)下载安装配置 http://lesscss.cn Less使用两种方法 (1)在客户端使用LESS--学习 编写 x. ...

  4. 【原创】Centos 7 升级安装python3.7.4

    1.安装必须的软件 #更新源中包列表 yum -y update #先安装扩展源EPEL 才能安装pip 否则会报错 yum -y install epel-release //解决ssl问题,否则报 ...

  5. Jmeter在chrome浏览器中录制脚本

    利用blazemeter插件可以录制chrome浏览器中的操作,并生成jmx文件,导入到jmeter中使用 1.  下载blazemeter 地址:https://pan.baidu.com/s/1V ...

  6. js中对字符串(String)去除空格

    str为要去除空格的字符串: 去除所有空格: str = str.replace(/\s+/g,""); 去除两头空格: str = str.replace(/^\s+|\s+$/ ...

  7. Linux 信号量之Posix有名字的信号量

    信号量(semaphore),也和互斥锁一样提供了线程间或者进程间的同步功能. 信号量有三种: Posix有名字的信号量 Posix基于内存的信号量 System V信号量 信号量比互斥锁高级,互斥锁 ...

  8. LoadRunner性能测试工具下载

    LoadRunner性能测试工具 LoadRunner是前美科利(Mercury Interactive)公司著名的性能测试产品.Mercury公司曾经是全球业务优化科技领域的领导者.2006年由惠普 ...

  9. 团队第五次作业——Alpha2版本

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...

  10. 2019CCPC 秦皇岛 E.Escape

    传送门 题意: 给出一个\(n*m\)的迷宫,有\(a\)个入口,\(b\)个出口. 现在有\(a\)个机器人都从入口出发,一开始方向默认为下,你可以选在在一些格子上面放置一个转向器,转向器有四种: ...