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 ...
随机推荐
- C++中Lambda表达式转化为函数指针
// ----------------------------------------------------------- auto combineCallbackLambda = [](GLdou ...
- SQL学习笔记之 数据库基础(一)
数据库基础 数据库系统的组成:由数据库,数据库管理软件,数据库管理员DBA,支持数据库系统的硬件和软件组成,其中数据库管理员是对数据库进行规划.设计.维护.和监视的专业管理人员,在数据库系统中起着非常 ...
- git 使用 tortoisegit 解冲突
git 解冲突需要注意的问题 弄清除冲突双向的修改意图,并在解决冲突时,同时处理两边的意图. 举例说明 A.txt 文件, 在 master 分支上,有一行文字(代码)是这样: 这是一段在 maste ...
- Comet OJ-2019国庆欢乐赛
国庆玩的有点嗨,开学了补题. A轰炸平面镇魂曲 题目描述 虹村万泰是一位二维世界的替身使者,他的替身 "轰炸平面镇魂曲" 能产生一条直线分割整个平面. 一开始,平面上有一个矩形,其 ...
- Linux 性能优化排查工具
下图1为 Linux 性能优化排查工具的总结 图1 诊断 CPU 工具 查看 CPU 核数 总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU ...
- 002-Zabbix 前端配置
Zabbix 前端配置 [基于此文章的环境]点我快速打开文章 [官方地址]点我快速打开文章 第 1 步 在浏览器中,打开 Zabbix URL:http:// <server_ip_or_nam ...
- 跟着ALEX 学python day4集合 装饰器 生成器 迭代器 json序列化
文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 装饰器 : 定义: 装饰器 本质是函数,功能是装饰其他函数,就是为其他函数添加附加功能. 原则: 1.不能修改被装 ...
- LiunxCentos7 上安装 FastDFS
Centos7 上安装 FastDFS 1.安装gcc(编译时需要) FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gc ...
- MySQL数据库 外键,级联, 修改表的操作
1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - ...
- javaConfig下的springmvc配置
javaConfig下的springmvc配置 一.静态资源过滤 XML的配置 <mvc:resources mapping="/**" location="/&q ...