302
社区成员
在第四单元我更加进一步学习了UML建模语言,之前发现之前使用过的一些类图不符合uml规范,这次在系统学习uml的过程中学会了uml类图等规范绘制。
正向建模与开发是一种自上而下的软件开发方法,首先基于系统需求创建模型,然后根据这些模型设计和开发系统。在这个过程中,UML(统一建模语言)扮演着至关重要的角色,它提供了一套标准的图形化方式来表述软件设计,包括系统的结构和行为。
在这学期的课程中,我主要按照以下步骤进行图书馆模拟系统的制作:
在第四单元作业开始时,我们首先进行需求分析,明确作业指导中的概念细节。这一步是整个正向建模的基础,错误的需求分析会导致后续所有工作的偏差。
根据需求分析的结果,开始构建UML模型,第一次作业要求我们构建类图。第二次构建状态图,第三次构建顺序图。
利用建立的UML模型,对图书馆模拟系统进行代码的规划,选择合适的数据结构和算法。
在完成设计后,我们根据作业指导书进行coding。编码过程中要不断参考UML模型,确保实现的一致性。同时,测试也是这一阶段重要的一部分,主要是使用测评机和部分代码使用了单元测试。
如图所示,按照此类图设计
我对每个部门(借还处等)以及一些消息,书籍id捆绑在了一起,同时引入了composer进行全局的查询操作。
第一单元的架构还比较简单,主要是递归下降如何界定词汇和后面语义的处理。
刚开始时我还不太懂高内聚和低耦合,直到我第三次作业递归下降写成了一坨。
第二单元电梯作业,我没有使用影子电梯,使用了调参的方式提高了电梯的性能,现在想想如果使用影子电梯或许也是一个不错的选择
到了第三单元,对于jml,架构主要由课程组官方包实现,主要是算法实现和数据结构的选择
第四单元的作业,通过前几个单元的学习,我感觉是架构设计进步最大的,首先第四单元我强测全部100分,这次除了题目相对简单一点点之外,更重要的是我能够自己设计类图,然后自己对整个系统进行构建,设计自己想要的类。
第一单元我测试主要是用样例进行io测试,第二次作业开始使用评测机
到后面第二单元,多线程作业难以进行简单地跑样例,最好使用测评机,同时我自己学会了多线程debug的一些方式,在idea上使用多线程debug工具完成。
第三单元侧重学习jml和单元测试,在这个单元,学会使用单元测试来对模块、函数进行验证检验,检验覆盖率比单纯测评机高得多
第四单元相对简单,综合以上测试方法,又增加了类图和流程图、状态图以及代码实现的对照测试。
在OO课程的学习过程中我收获了