60 人学过
本专题共包括8次实验,与理论课配套,分别对照四个单元教学内容。
1 实验—-面向对象程序基本练习(接口)
实验一练习本课程必要工具链的使用;接触并学习基本面向对象程序的构造方法
实验目标:学习使用git的命令行操作/gitlab网页操作
实验内容:实验指导中给出了git常用的操作命令和推荐的使用步骤,按照步骤操作后将获得一份后续实验任务需要的源代码。同学们需要完成以下步骤:
step 1 新建仓库
step 2 关联远程仓储
step 3 从远程仓储拉取文件
step 4 忽略不必要的文件
step 5 删除与远程仓储的关联
step 6 关联个人作业仓库,并尝试一次提交
step 7 上传工作目录截图并回答实验报告中的问题
实验目标:实现接口(Interface)完成简单的排序任务
实验内容:本任务提供了一份不完整的源代码(实验数据的poly文件夹中的内容),该源代码欲完成多项式的排序。首先,你需要阅读实验要求,并参照share文件夹中的例程,用接口技术将代码补充完整。其次,你需要按照要求撰写实验报告。最后,请提交代码与报告。
2 实验二-面向对象程序进阶练习(设计模式)
本次实验练习面向对象编程的核心概念,继承、多态,熟悉基本设计模式
实验目标:掌握Java语言中封闭及继承的设计与实现
实验内容:根据给出的参考资料,学习工厂模式及其优点,对已有的代码进行改写和重构,理解并根据新的需求补充代码,完成任务。现在需要你设计一个交通设备厂商,目前可以生产的设备是小汽车Car,挖掘机Tractor,洒水车Sprinkler。section 3~4描述了当前可以生产的各种设备,及其之间的继承逻辑关系。section 5提出了新的设备生产需求,所有section 3~4描述的代码可以在仓库中下载(实验数据中也已提供)。
3 实验三-多线程面向对象程序设计
本次实验练习java多线程编程基础知识,包括多线程相关库文件的使用,多线程程序的基本实现框架
实验目标:(1)了解线程的基本原理和相关概念;(2)掌握线程创建、同步、交互的方法,并用其来解决生产者-消费者问题
实验内容:
(1)根据理论课内容完成填空选择题、程序补全题
(2)用多线程编程实现“生产者-消费者模式”
4 实验四-线程安全的面向对象程序设计
本次实验学习如何设计线程安全的java程序,理解死锁的概念,学习使用线程同步的基本方法。
实验目标:(1)学习多线程设计模式中的观察者模式及Worker-Thread模式,会应用到实际场景中(2)在多线程编程中关注线程安全问题,学习常用的协调、控制方法;(3)培养快速阅读并理解代码的能力
实验内容:
任务一:观察者模式的应用
任务二:Worker Thread模式的应用
5 实验五-规格化程序设计基础
本次实验学习并练习JML基本语法,学习方法的规格化。
实验目的:(1)学习并掌握JML的核心语言特征 (feature);(2)能够根据代码理解其设计并用JML表达其规格;(3)能够根据JML规格完善补充代码实现。
实验内容:
本次实验提供的代码完成了一个路径的容器(见提供的实验数据),请你依据JML语言手册,阅读分析 Path.java、PathContainer.java 两个类中的代码和相关的方法规格描述。本次实验由填空题组成,需要你对JML规格和代码实现的空缺部分进行填空并使其满足预期要求。
6 实验六-规格化程序设计进阶
本次实验学习数据规格的设计,练习规格和程序代码的双向转化。
实验目标:(1)进一步训练根据JML完善补充代码的能力;(2)学习使用JUnit进行单元测试
实验任务:本次实验我们将模拟一个简单的JVM分代垃圾回收机制,也会设置eden区,survivor区和tenured区。仓库中给出的代码大体已经实现,未完成的代码部分使用 /* Your Code Here */ 进行标注,需要同学们根据所给的JML规格和背景知识自行添加。
同时,已完成的代码中也有错误的地方,且错误不少于5处,需要同学们使用JUnit进行单元测试找出错误并修改,并在错误修改处使用注释标明错误原因和发现途径,并将JUnit测试代码一同提交。
7 实验七-模型化设计基础
本次实验练习UML模型的基本元素使用,学习如何利用UML图表示代码设计逻辑。
实验目标:(1)学习UML类图的表示方式并能用类图来描述应用场景;(2)学习适配器模式并进行应用
实验任务:
根据实验任务所给的问题背景和mdj文件,在starUML中打开并修改、调整,使得UML图符合相应的规范和要求并且满足任务中的含义。(问题仅在于所下发的mdj文件本身,题面中除UML以外的描述没有错误之处)。特别地,对修改中的自行新增的方法、参数等不做命名要求。
8 实验八-模型化设计进阶
本次实验学习并练习UML模型的一致性检查,学习如何检查并解决面向对象程序设计构造的冲突及不一致问题。
实验目标:(1)学习UML顺序图和状态图的基本知识;(2)训练理解UML顺序图和状态图的能力;(3)学习根据UML模型的一致性检查规则对UML模型进行整体分析
实验任务:
针对实验指导书给出的模型实例(包括类图、顺序图和状态图),指出该实例中的不一致。将发现的不一致之处逐条总结,填写改错问卷并按照指定的格式进行提交。