CW2 Software Maintenance Spec Sheet
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的更多相关文章
- software quality assurance 常见问题收录
1. What is Quality? Quality means, “meeting requirements.” ..Whether or not the product or service d ...
- SCI&EI 英文PAPER投稿经验【转】
英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时 ...
- 英文词频统计的java实现方法
需求概要 1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符. 2.统计英文单词在本文件的出现次数 3.将统计结果排序 4.显示排序结果 分析 1.读取文件可使用BufferedReader ...
- SAP T CODE : Description (Program)
SAP T CODE : Description (Program) V : Quickstart RKCOWUSL (RKCOWUSL)V+01 : Create Sales Call (SAPMV ...
- 系统分析与设计HW1
软件工程的定义 1993年,电气电子工程师学会(IEEE)给出了一个定义:"将系统化的.规范的.可度量的方法用于软件的开发.运行和维护的过程,即将工程化应用于软件开发中". 阅读经 ...
- 中国计算机学会CCF推荐国际学术会议
中国计算机学会推荐国际学术会议 (计算机系统与高性能计算) 一.A类 序号 会议简称 会议全称 出版社 网址 1 ASPLOS Architectural Support for Programmin ...
- 软件工程总结(Final)
又到了学期末了,此时此刻软件工程课业接近尾声了.时间过得太快,仿佛昨天这学期的课才开始, 开学时,老师让我们提出了不少对这门课的问题和疑惑,通过一学期的努力学习,我可以试着解开我自己的疑问了. 下面是 ...
- 创建nim+安装vioc分区
一.搭建nim服务器 1.安装须知 安装nim软件包,client随系统默认安装,这里需要安装的是bos.sysmgt.nim.master和bos.sysmgt.nim.spot,即bos.sysm ...
- 理清那么多个OO(面向对象)
OOA - Object-Oriented Analysis(面向对象分析) OOT - Object-Oriented Testing (面向对象测试) OOP - Object-Oriented ...
随机推荐
- QGIS中查看PostGIS空间数据库中的影像
在QGIS中的Browser中是无法显示PostGIS空间数据库中的影像 要找到影像显示打开"Database" –> "DB Manager" 右击-- ...
- U盘安装CentOS 7提示 “Warning: /dev/root does not exist, could not boot” 解决办法
1.把U盘的Lable(即标签)修改成centos 2.在安装界面上按TAB键,修改启动路径,把”CENTOS\x207\x20x86_64″改成 “centos”
- NIO你真正了解多少?
解释一下java.io.Serializable接口 类通过实现 Java.io.Serializable 接口以启用其序列化功能.未实现此接口的类将无法使其任何状态序列化或反序列化. IO操作最佳实 ...
- Ribbon架构剖析
在学习Ribbon之前,先看一下这张图,这张图完美的把Ribbon的基础架构给描述出来了 这张图的核心是负载均衡管理器,围绕着它的是外面的这5大功能点,咱们就从核心开始看然后再带出来其他的功能 首先看 ...
- 【React】Redux入门 & store体验
组件间传值联动是令人头疼的问题,尤其是一个组件影响多个其他组件状态变化的时候,常常需要一级一级与父组件传值,与父组件的兄弟组件传值等等, 如何化繁为简地处理‘牵一发动全身’的清理就是将所有组件的sta ...
- 通过MES技术居然可以防止制造数据造假?
近些年来我们经历了太多制造数据造假事件,特别是前段时间曝出的医药制造事件更是将我们群众的愤怒值推到了最高点.不过我们最应当做的是,冷静下来,思考一下各行各业的我们是不是都该做些什么了?毕竟当下一个灾难 ...
- Mac下安装npm全局包提示权限不够
Mac OS下安装npm的全局包,总是出现如下提示Missing write access,需要提升权限才能继续. npm WARN checkPermissions Missing write ac ...
- 动态改变伪元素样式的方(用:after和:before生成的元素)
自己查资料总结的两种方法 一.纯css改变 a:hover:before{left:-20%;} a:hover:after{right:-20%;} a:before{ left:-100%; } ...
- [基础]斯坦福cs231n课程视频笔记(二) 神经网络的介绍
目录 Introduction to Neural Networks BP Nerual Network Convolutional Neural Network Introduction to Ne ...
- 莫烦TensorFlow_07 tensorboard可视化
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def add_layer(inputs, in_ ...