一、第四单元架构设计
这三次作业中架构一脉相承,第一次作业搭建类图分析,第二次作业加入顺序图、状态图分析,第三次作业加入有效性检查器。下面以第三次作业为例,谈架构设计。
-
解决输入顺序导致空指针的情况——多次遍历elements:
先建立UmlClass,UmlInterface等的索引表,避免element中相关元素还没有被输入,如UmlGeneralization中target还未被输入等情况。
如先把UmlClass,UmlInterface存进HashMap里,最后再遍历UmlGeneralization。
-
二、在四个单元中架构设计及OO方法理解的演进
感谢OO给我一个顿悟如此多思想的机会,下面将结合我踩过的坑,谈谈我在架构设计以及OO思想方面上的学习之路。
-
第一单元初探OO——函数求导:
-
第二单元多线程——电梯换乘:
-
第三单元JML——社交网络:
-
第四单元UML——UML解析器:
- 学习UML知识:
根据UML结构,建立简单的映射、索引结构。领悟UML作为一个标准的建模语言,描述的准确性。
- 学习UML知识:
三、测试理解与实践的演进
在这个学期中我对测试的理解与实践都不太好,与大佬交流不太够,自己不会python的我好菜啊...仅从我目前的理解谈一下对测试的理解:
-
边界数据的必要性:
像在第一单元中依据数据限制,有必要构造超长数据进行测试。
对特例情况,也有必要进行测试,以满足程序的完备性。
-
警惕可能的空指针:
不知道哪个方法会给你RE的惊喜,有必要构造返回值为null的数据进行测试。
-
测试需要建立在一定的强度上:
手动构造的数据,需要建立在具有一定强度,即具有一定复杂性的基础上。如在第四单元里构造继承、实现接口、自关联等多层的复杂数据。
-
测试的本质还是理解问题:
不提对拍测试法,自己构造数据自己对照结果的测试,本质还是考查自己对问题的理解。若对问题理解有误,则对理想结果的理解就会偏差,无从与自己的结果对比,失去测试的意义。
四、总结自己的课程收获:
通过OO课,在写代码的思想和方法上都受到了很大的启发。每个思想顿悟的具体内容见(二)总结,此处不做重复,仅作列出。
五、立足于自己的体会给课程提三个具体改进建议
1.改进讨论区结构:
在讨论区的讨论中,帖子是同学们的分散式讨论为结构的。即使在标题上进行简单标注,由于楼内内容也具有一定价值,所以也需要辛苦爬楼。而由于讨论区内容的繁多,容易出现重复提问,找不到相应问题的答案等情况。
建议:以第四单元为例,建议以对每个rule的讨论建立专楼
2. 希望实验课课后有反馈:
本学期一些涉及到编程的较难实验没有反馈,只是交上去告知是否编译通过,没有改正的环节,起到的学习的效果有限。
3. 希望助教更清楚的阐释题意,避免描述太过简短,尽量减少表述不清。
在第四单元的作业指导书中,每个rule的描述只有一两句,语义有很多模糊的地方,并且示例给的太过简单没有覆盖到我疑惑的点,给我的理解造成了一定的麻烦。
4.希望每单元提前公布整个单元要涉及的内容,方便架构:
在第一单元中,因为不清楚后面作业要干什么,所以在写方法的时候为了省事进行了转换处理。导致下次作业条件变化时适配不能,只得重构,希望改善这个问题。
最后的感谢:
谢谢为我解决疑惑的大佬、助教们,谢谢把课上的这么有趣的纪老师,谢谢踩了很多坑没有放弃修的自己。
Sein heißt werden, leben heißt lernen,
wenn du das Gold von den Sternen suchst,
musst du allein hinaus in die Gefahr.
继续学习继续成长。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。