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 ...
随机推荐
- mvc5 源码解析1:UrlRoutingModule
注册在C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG \webconfig中 在该module源码中 我们可以看出注册了application ...
- webpack加载css文件及其配置
webpack加载css文件及其配置 当我们写了几个css文件之后如果想要引用到html中去的话我们最开始的方式就是通过link标签将css文件导入进去,但是如果我们的css文件有很多的话,一个个的导 ...
- vue学习指南:第五篇(详细) - vue的 computed、methods、watch 的区别?
Computed 计算属性 1. 将函数代码块中返回的结果 赋值 给前面的方法名 2. computed 中的属性有缓存功能,只要data中的数据不发生改变,计算得到的新属 性就会被缓存下 ...
- iOS - iPhone屏幕适配/启动图适配/APP图标适配(iPhone最全尺寸包含iPhoneX/XR/XS/XS Max等)
趁iPhone新品还没有发布,先整理一下屏幕适配.启动图适配.APP图标适配的笔记,方便以后查阅: 注:部分图片来源于网络 违删; (一)iPhone屏幕适配: (1)屏幕分辨率: ①设计尺寸规范(表 ...
- CentOS7 安装FastDFS单机版
1. 下载 FastDFS https://github.com/happyfish100/fastdfs/releases libfastcommon https://github.com/happ ...
- 2-1Numpy概述
In [1]: import numpy as np In [2]: array=[1,2,3,4,5] array+1#没定义成numpy.ndarray类型是不能直接操作的 --------- ...
- Redis数据库详解
NoSQL 若杀死进程应使用pkill 数据设计模式:分布式.非关系型.不提供ACID 特性:简单数据模型.源数据和应用数据分离.弱一致性 优势: 避免不必要的复杂性 高吞吐量, 高 水平扩展能力和低 ...
- ulimit 更改 gcc升级 查看显卡状态命令
一.更改ulimit: vim /etc/security/limits.conf 在文件最下方添加以下内容 * soft nofile 65536* hard nofile 65536 二. gcc ...
- js处理日历
我们在做自动化的时候可能会遇到选择日期这种情况 这个时候我们可能就会想到直接定位不就可以了,为啥还要使用js这种东西呢? 首先,我们想一下定位:定位不仅麻烦而且还不稳定,所以这种方式我是直接就弃用了 ...
- node知识
node中的url url中的方法: parse,resolve,format: 方法parse: 例子:url.parse('http://imooc.com/course/list'); 结果:{ ...