软件构造
文章平均质量分 51
NJU_SE_WaterWan
这个作者很懒,什么都没留下…
展开
-
软件构造 课堂笔记3
本文内容主要基于老师上课的内容,以及上课的PPT软件构造的主要活动是编码与测试软件构造的首要技术使命是管理复杂度类与对象类:静态的对象:运行时存在的动态的软件的启发式方法 软件设计是非确定性的 启发式方法就是不断“试错”的过程 铭记软件的首要技术使命 启发式设计1:找出现实中的对象上图是基于时间的计费系统启发式设计2:形成一致的抽象启发式设计3:封装实现细节启发式设计4:信息原创 2017-09-14 16:40:32 · 499 阅读 · 0 评论 -
软件构造 课堂笔记5
本文主要来源于ppt,省略了一部分我觉得没用的地方子程序设计可取的内聚性(由高到低)功能内聚性 一个子程序仅执行一项操作顺序内聚性 子程序内包含需要按特定顺序执行的操作,这些步骤共享数据 ,只有全部执行完毕后才完成一项完整的功能例:// 根据出生日期计算退休时间func1() { 1. 根据出生日期计算员工**年龄** 2. 根据**年龄**计算退休时间}这就是顺序内聚,可以改成原创 2017-09-22 21:53:06 · 11977 阅读 · 2 评论 -
软件构造 课堂笔记1
这篇文章应该是一些句子的拼凑,句子的主要来源是老师上课的PPT或讲课内容。程序员编写代码的用户是谁?即为谁编写?程序员编写代码的用户是程序员,也就是说程序员编写出来的代码是给程序员看的。软件的首要技术使命是管理复杂度。软件构造,又可称为软件代码开发技术,旨在培养良好的编码习惯和编码技巧基本概念什么是软件构造软件原创 2017-09-06 19:26:32 · 1196 阅读 · 0 评论 -
软件构造 课堂笔记2
由于还没有进入硬技术的阶段,所以前面的文章会有点干。1.项目失败的主要原因不是技术问题,而是代码复杂度太高了。//这里的复杂度是说耦合度太高,设计不够合理等现象。2.对于一个复杂的问题,一个具有很多tricky的短代码,往往比长代码的复杂度要搞。//这里主要考虑的是,以后这段代码将由别人维护的情况,换一个人来维护代码的话当然是希望代码越容易懂越好。这里不是说在将接口与实现分原创 2017-09-11 10:32:58 · 380 阅读 · 0 评论 -
软件构造 课堂笔记6
本文主要来自课堂笔记。子程序的最高目标是功能内聚把含有多条语句的宏用大括号括起来假设这样一种情景:在某个循环里面调用宏,此时编译器会直接展开,被循环调用的就只有宏语句的第一句防御式编程注意错误处理与断言的区别变量来源于外部则应该用错误处理来源于外部的判断依据:函数是public的则数据是来源于外部的(就Java而言)在修正错误的地方加一条断言 // 犯过错误的地方常常会再犯一次错误原创 2017-09-28 20:29:17 · 674 阅读 · 0 评论 -
软件构造 课堂笔记4
这篇文章会较多的搬运PPT上面内容,因为我认为确实比较重要,也会在里面加上一些我个人的理解类接口设计建议一:好的抽象 类的接口应能提供一组 明显相关 的子程序类的接口应该尽量展现一致的抽象层次class EmployeeCensus: public ListContainer { public: void AddEmployee(Employee employee); vo原创 2017-09-21 00:28:42 · 393 阅读 · 0 评论 -
软件构造 课堂笔记8 脑补版
由于出去比赛了,没有上课,因此对照PPT自己脑补了一份课堂笔记。。。表驱动法要说的是,我们常常可以用map来做表驱动。cpp里面的map重载了[]操作符,因此看上去更像了。另外Java里面以前hashmap和hashtable不是差不多的嘛 。PPT中写到一般表里存数据,偶尔存动作。举个存动作的简单例子,cpp里面可以存函数指针,然后输入某个命令执行某个动作,就可以用到表驱动。直接访问表这没什么好原创 2017-10-27 23:27:52 · 1401 阅读 · 0 评论 -
软件构造 目录
软件构造1软件构造2软件构造3软件构造4软件构造5原创 2017-09-22 22:14:33 · 2101 阅读 · 3 评论 -
软件构造 异常处理的5个建议
本文主要来自上课内容和PPT异常 是把代码中的错误或异常事件传递给调用方代码 的一种特殊手段为什么cpp里没有finally? 因为有RAII(resource acquisition is initialization)使用建议1用异常通知程序的其他部分,发生了不可忽略的错误只有真正例外的情况下才抛出异常使用建议2不能用异常来推卸责任 可以在局部处理的就在局部处理掉避免在构原创 2017-10-13 01:01:52 · 9651 阅读 · 0 评论