首页 > 其他分享 >CS 520 Implementation & testing

CS 520 Implementation & testing

时间:2023-04-24 12:22:23浏览次数:29  
标签:src java Implementation testing should test design CS your


Homework 3
Implementation & testing
You may work with others on this assignment. Each programming pair, however, must submit their own
codebase, clearly specifying the collaborators. The codebase should be written in the pair’s own words.
A programming pair may contain 1, 2, or 3 students. This allows the usual groups of 3 to remain together.
You should submit on Gradescope. Late assignments will be accepted with prior permission or for
extenuating circumstances. Due: Monday April 17, 2023, 11:59 PM
There are a total of 100 points.
Overview
The goal of this assignment is to design, implement, and test a Tic Tac Toe app, to improve adherence to
non-functional requirements (e.g., understandability, modularity, extensibility, testability), design princi-
ples/patterns, and best practices.
This implementation applies the MVC architecture pattern. In contrast to the current version, your
implementation should support possible extensions aiming to satisfy the open/closed principle (specifi-
cally information hiding with encapsulation). Additionally, your implementation should enable individual
components to be tested in isolation.
You are expected to clone the existing repository and keep your implementation under version control,
using the cloned repository. You will submit your repository to us, so you should make coherent and atomic
commits (in particular for the 3 sections below), and use descriptive log messages.
How to get started
1. Clone the third version of the repository https://github.com/LASER-UMASS/CS520.git containing the
tictactoe folder with ”git clone https://github.com/LASER-UMASS/CS520.git -b v1.1.0” (This is our
hw2 solution.)
NOTE) Alternatively, you may build on your hw2 solution.
2. Read the provided README in the tictactoe folder.
3. Use the commands to document, compile, test, and run the application from that folder.
4. Familiarize yourself with the original application source code contained in the src and test folders:
src/RowGameApp.java
src/controller/RowGameController.java
src/view/GameBoardView.java.java
src/view/GameStatusView.java
src/view/RowGameGUI.java
CS 520 Spring 2023 . Homework 3. Implementation & testing Page 1 of 3
src/view/View.java
src/model/RowGameBlock.java
src/model/RowGameModel.java
test/TestExample.java
Your version of the application must adhere to:
the MVC architecture pattern
Design principles and patterns
Best programming practices
Usability: Undo functionality [Approximately 1/4 of the points]
In the User Interfaces lecture, we discussed that one good UI design principle is to provide undo functionality.
Here is the informal specification for the undo functionality:
If the two players have done one or more moves (and have not undone them), a player should be
allowed to undo the previous move done.
If there are no more moves to be undone, the undo functionality should be disallowed.
The undo functionality design needs to apply good UI design, the MVC architecture pattern, and the
Composite design pattern.
This design needs to be implemented and tested (see below).
Testability: Unit test suite(s) [Approximately 1/2 of the points]
You should regression test to make sure that the existing 2 test cases still pass. Additionally, you should add
seven (7) new test cases:
1. After performing an illegal move, the game is not updated.
2. After performing a legal move, the game is updated appropriately.
3. One of the players wins the game.
4. The players tie the game.
5. After resetting the app, the game has the expected initial configuration.
6. If the user has not done at least one move, the user is not permitted to undo.
7. If the user has done at least one move, the user is permitted to undo and the game is updated appropri-
ately.
Each of the new test cases needs to apply the test case template from the test driven development lecture.
For minimal test adequacy, you need to have at least one test case to cover each of the model, view, and
controller.
CS 520 Spring 2023 . Homework 3. Implementation & testing Page 2 of 3
Understandability: Documentation [Approximately 1/8 of the points]
You should update the README file to document any new functionality.
You should generate the javadoc (contained in the jdoc folder) and commit it.
You should have incremental commits about your modifications.
Deliverables [Approximately 1/8 of the points]
Your submission, via Gradescope, must be a single archive (.zip or .tar.gz) file named hw3, containing:
1. The tictactoe folder with all the updated source files and test cases of your application. The git log
needs to be submitted as either a text or PDF file. The git log should have a set of coherent commits
showing your work, not a single version of the code. Because Gradescope has issues with very large
folders containing many files, you should NOT include the .git folder in your submission.
We will be checking the following:
1. The git log (either text or PDF file) is included and has incremental commit messages.
2. The app compiles and runs.
3. The test suite compiles, runs, and all test cases pass.
CS 520 Spring 2023 . Homework 3. Implementation & testing Page 3 of 3

WX:codehelp

标签:src,java,Implementation,testing,should,test,design,CS,your
From: https://www.cnblogs.com/somtimes/p/17349050.html

相关文章

  • css 渲染优化的方式
    1、加载性能优化:css压缩、css单一样式、减少使用@import,而建议使用link;2、 选择器性能优化:避免使用通配规则*尽量少的去对标签进行选择,而是用class不要去用标签限定ID或者类选择符:ul#nav,应该简化为#nav尽量少的去使用后代选择器,降低选择器的权重值考虑继承3、渲染......
  • ElasticSearch学习资料
    elasticsearch集群正确关闭、重启方式问题原因:在elasticsearch集群中,当集群发现某个节点关闭时,将延迟一分钟后(默认)再开始将该节点上的分片复制到集群中的其他节点,这可能涉及很多I/O。由于该节点不久将要重新启动,因此该I/O是不必要的。您可以通过在关闭节点之前禁用副本......
  • 通过 css 控制 window.print 的样式
    打印页面隐藏打印按钮在button按钮加一个class样式class="print-button-container"调用window.print方法的页面加以下css<stylescopelang="scss">@mediaprint{.table-print-disable{display:none;}@page{/*纵向打印*/size:p......
  • CSS6大种选择器
    一、常用的css基本选择器(4种)1、标签选择器结构: 标签名{css属性名:属性值}作用:通过标签名,找到页面中所有的这类标签,设置样式注意:1.标签选择器选择的是一类标签,而不是单独的一个2.标签选择器无论嵌套关系有多深,都能够找到对应的标签<style>p{color:red;}......
  • elasticsearch+filebeat+kafka+kibana——filbeat篇章——overview
    filbeat篇章——overviewhttps://www.elastic.co/guide/en/beats/filebeat/8.7/filebeat-overview.html#filebeat-overview Filebeatisalightweightshipperforforwardingandcentralizinglogdata.Installedasanagentonyourservers,Filebeatmonitorsthelog......
  • HTML-CSS笔记
    HTML一、网页的基本结构和基础1、html基础<!doctypehtml><html> <head> <!--可以通过meta标签来设置网页的字符集,避免乱码的问题--> <metacharset="UTF-8"/> <title>网页的基本结构</title> </head> <body> <!-- 迭代 网页的版本......
  • ICS TRIPLEX T8461
    W;① ⑧ 0  ③0 ① ⑦  77 ⑤  ⑨ICSTRIPLEXT8461T8403WoodwardDSLC-2™(数字同步器和负载控制)是一种基于微处理器的同步器和负载控制,设计用于三相交流发电机。DSLC-2将同步器、负载传感器、负载控制、死母线闭合系统、VAR、功率因数和过程控制组合在一......
  • 自定义权限校验方法、基于配置的权限控制、CSRF
    自定义权限校验方法我们也可以定义自己的权限校验方法。在@PreAuthorize注解中使用我们的方法。创建expression包,在该包下创建SGEexpression类@Component("ex")publicclassSGEexpression{publicbooleanhasAuthority(Stringauthority){//获取当前用户......
  • IDEA中JavaDocs路径是红色的
    转载链接:https://blog.csdn.net/Chia_Hung_Yeh/article/details/102936633ProjectSettings-->Libraries-->Sources、JavaDocs路径出现红色字体ClassesClasses中的jar,是程序在运行项目的时候使用的,因为这个是直接编译好的class文件,可以直接被虚拟机运行的。SourcesSource......
  • 如何使用 css 将页面缩小/缩放到 90%
    当我使用像笔记本电脑这样的设备时,它被放大了,当我缩小到90%时,它看起来好多了。我使用了缩放:90%;首先,但这不适用于Firefox或safari。通过一些研究,我发现transform:scale(0.9); 是要走的路。ZoomIE适用。但是,当我这样做时html或body{transform:scale(0.9); 它使网站......