实验2的一些心得体会

Posted lingfeng647

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验2的一些心得体会相关的知识,希望对你有一定的参考价值。

lab2写了许久,诸多感想,下面简单谈一下

1 实验过程中收获的经验和教训

  • 在实现ADT之前,先写测试策略和测试用例,这样做有助于帮你深入思考,并且有助于打磨ADT实现的许多细节
  • ADT的Spec在前期的设计非常重要,直接影响后期实现的难度
  • Spec里面要写的尽可能的细致,将所有想到的可能情况都写出对于的解决措施
  • 同一个接口类,不同的实现方式,工作量差别很大

2 针对以下方面的感受

(1) 面向ADT的编程和直接面向应用场景编程,你体会到二者有何差异?

  • 面向ADT编程与面向应用场景编程有相当大的差异。
  • 面向ADT编程要求对编写的程序整体有充分的认识,要考虑接口、抽象类、类的整体设计,考虑哪些部分能够复用(可以复用的模块,尽量往父类中放),哪些部分才需要具体实现。
  • 面向ADT编程做的好可以节省大量时间;而面向应用场景编程则有“就事论事”的意味,好处是针对一件事做,编程思路简单,问题是工作量大,复用性低。

(2) 使用泛型和不使用泛型的编程,对你来说有何差异?

泛型可以适应更多的应用场景,相对不使用泛型复杂度略有提升,使用泛型时避免了类型转换的麻烦,存储的是什么类型的数据,取出的就是什么类型的数据。

(3) 在给出ADT的规约后就开始编写测试用例,优势是什么?你是否能够适应这种测试方式?

在给出ADT的规约后就开始编写测试用例,这样做能够不受已有代码的干扰,完全就函数的功能编写测试用例。其好处在于:提高了正确率与效率。
在Lab 2中初次接触到这种编程方式,有些不适应,还需要多加练习。

(4) P1设计的ADT在多个应用场景下使用,这种复用带来什么好处?

减少了重复工作,提高了软件生产率,有助于提升软件质量,也提高了编程体验。

(5) 为ADT撰写specification, invariants, RI, AF,时刻注意ADT是否有rep exposure,这些工作的意义是什么?你是否愿意在以后编程中坚持这么做?

  • 可以明确ADT的实现思路,方便了未来的自己以及其他的代码阅读者
  • 同时能够时刻提醒自己注意规范,检查是否有表示泄露
  • 虽然增加的工作量,但是利人利己

(6) 关于本实验的工作量、难度、deadline。

本实验的主体工作量在做完以后回头看,工作量适中,就难度而言也并不算特别大,但deadline相对较紧
而且在MIT的页面上,题目要求以英文形式介绍,写的并不算特别清晰,要点分布分散,翻译花费了不少时间。

(7) 《软件构造》课程进展到目前,你对该课程有何收获和建议?

该课程难度较高,课上学习与课下实验并进,相辅相成,体验感较好,但是实验需要大量时间来完成,希望可以增加实验课学时

《软件工程》课程实验心得体会4

转眼间软件工程已经接近尾声了,在这个课时,课前我们小组经过研究和讨论等的研究,对一些似懂非懂的图进行归纳,在课上的到老师的帮助后得到解答。对顺序图以相同类型题型进行试验作图。进行一次归纳和整理。对于顺序图,我们应该先画出它的框架,然后进行填充,比如说它的原始框架包含着参与者、界面类、实体类、控制类这四部分,然后再题中寻找符合它的,对于类与类之间存在的方法连接起来便很容易画出顺序图。本次课最大的收获大概就是对顺序图、用力规约、以及用例图的做法了吧;

以上是关于实验2的一些心得体会的主要内容,如果未能解决你的问题,请参考以下文章

第二次软构实验心得

实验三--for语句及分支结构else-if

PHP基础班初学心得:脑洞实验-JS变量存储函数与return的一些问题

数据库实验总结

实验三——for 语句及分支结构else-if

《软件工程》课程实验心得体会4