- 博客(19)
- 收藏
- 关注
原创 软件构造复习:最后的精华
由于要手写代码,我之前有些整理在了活页纸上,考试前,把它们拿出来,都是一些,主要是代码方面的知识。由于一开始只是写给自己的,所以可能会比较乱,但都是浓缩的精华吧
2020-07-11 19:25:57
116
原创 软件构造知识点汇总
第一章、软件的建设观点与质量目标多维软件视图软件构造这门课,我们首先接触的就是多维软件视图:从时间分为:瞬时(Moment)、周期(Period)从编码分为:构建(开发)(Build-time)、运行(Run-time)从代码分为:代码(Code-level)、模块(Component)这里每个层次关注的点是不一样的Build-time:Code-level:代码逻辑组织Component-level:代码物理组织Moment:某一时刻的软件形态Period:软件形态随时间变化R
2020-07-07 21:49:04
567
1
原创 软件构造知识点复习:线程安全
线程安全线程安全:ADT/方法在多线程中执行正确4种线程安全的方法{限制数据共享(Confinement):不共享数据共享不可变数据(Immutability):共享只读的数据共享线程安全的数据(ThreadsafeDataType)同步机制(synchronization)\left\{ \begin{array}{c} 限制数据共享(Confinement):不共享数据 \\ 共享不可变数据(Immutability):共享只读的数据 \\ 共享线程安全的数据(Threadsaf
2020-07-07 21:15:17
153
原创 软件构造知识点复习:debugging+并发
代码调试(debugging)Debug的方式{边写边debug写完再debug\left\{ \begin{array}{c} 边写边debug \\ 写完再debug\end{array}\right. {边写边debug写完再debug诊断{Instrumentation:System.out.print,loggingDivideandConquer:一块一块运行Slicing:缩小查找的范围,找和错误相关的代码,倒退Focusondifference:找每次提交的差异Symbol
2020-07-05 18:38:18
127
原创 软件构造知识点复习:健壮性与正确性+错误与异常处理+断言与防御试编程
健壮性与正确性健壮性:{处理未期望的行为/错误终止执行也要返回错误信息信息要有助于debug\left\{ \begin{array}{c} 处理未期望的行为/错误 \\ 终止执行也要返回错误信息 \\ 信息要有助于debug\end{array}\right. ⎩⎨⎧处理未期望的行为/错误终止执行也要返回错误信息信息要有助于debug我们要注意:封闭细节+极端情况{健壮性:容忍错误,使用户容易正确性:不满足前置条件的就可以做任何处理,使开发者容易\left\{ \begin{
2020-07-02 18:03:36
226
原创 软件构造知识点复习:设计模式+面向可维护性的构造技术
面型维护的设计模式{工厂方法:客户端尽量用接口,建一个专门用来构造的类→静态工厂方法抽象工厂方法:要一组有固定搭配的对象→多个工厂方法代理模式(Proxy):隔离ADT与client观察者模式(Observer):一个对多个,双方互相委派,永久委派访问者模式(Visitor):双方委派,临时委派\left\{ \begin{array}{c} 工厂方法:客户端尽量用接口,建一个专门用来构造的类→静态工厂方法 \\ 抽象工厂方法: 要一组有固定搭配的对象→多个工厂方法\\ 代理模式(Proxy):
2020-06-30 09:08:39
105
原创 软件构造知识点复习:面复用的软件构造技术(下)+设计模式+可维护性的度量与构造原则
框架(Framework)的复用框架的复用:浏览器→写插件{白盒框架:通过继承来扩展黑盒框架:通过委派来扩展\left\{ \begin{array}{c} 白盒框架:通过继承来扩展 \\ 黑盒框架:通过委派来扩展\end{array}\right. {白盒框架:通过继承来扩展黑盒框架:通过委派来扩展面向复用的设计模式Adapter(适配器模式):当新的客户端的输入或输出要求与老的方法不一致时,新建一个适配器,改变参数的样式,再委派给老的方法Decorator(装饰器模式):将某些功
2020-06-29 17:13:01
114
原创 软件构造知识点复习:复用及面向复用的软件构造(上)
复用度的度量、形态与外部表现{ProgrammingForReuse:面向复用的编程ProgrammingWithReuse:基于复用的编程\left\{ \begin{array}{c} Programming For Reuse:面向复用的编程 \\ Programming With Reuse:基于复用的编程\end{array}\right. {ProgrammingForReuse:面向复用的编程ProgrammingWithReuse:基于复用的编程复用:{源代码级别:方法、语句模
2020-06-28 18:30:01
148
原创 软件构造知识点复习:ADT(下)+OOP+等价性
ADT{spec:注释,类名Representation:具体的存储数据,成员变量Implementation:方法实现体\left\{ \begin{array}{c} spec:注释,类名 \\ Representation:具体的存储数据,成员变量 \\ Implementation:方法实现体\end{array}\right. ⎩⎨⎧spec:注释,类名Representation:具体的存储数据,成员变量Implementation:方法实现体不变量(Invariant
2020-06-27 14:52:27
133
原创 软件构造知识点复习:数据类型+spec+ADT(上)
数据类型与类型检查{静态类型检查:语法错误(类名,函数名,参数的数目/类型,返回值)动态类型检查:非法参数,非法返回值,null,数组越界\left\{ \begin{array}{c} 静态类型检查:语法错误(类名,函数名,参数的数目/类型,返回值) \\ 动态类型检查:非法参数,非法返回值,null,数组越界\end{array}\right. {静态类型检查:语法错误(类名,函数名,参数的数目/类型,返回值)动态类型检查:非法参数,非法返回值,null,数组越界{基本数据类型:int,l
2020-06-26 12:35:56
175
原创 软件构造知识点复习:1、2章+软件测试
第一章、软件的建设观点与质量目标多维软件视图软件构造这门课,我们首先接触的就是多维软件视图:从时间分为:瞬时(Moment)、周期(Period)从编码分为:构建(开发)(Build-time)、运行(Run-time)从代码分为:代码(Code-level)、模块(Component)这里每个层次关注的点是不一样的Build-time:Code-level:代码逻辑组织Component-level:代码物理组织Moment:某一时刻的软件形态Period:软件形态随时间变化R
2020-06-25 16:56:36
218
原创 哈工大-软件构造-Lab3(1)
前言好不容易完成了Lab3的实验,有送走了计算方法和信息安全,再写lab4的时候,抽出点功夫不补一下lab3的博客,由于的确时间有点久,有些问题记不太清了,就想到啥写啥吧程序的设计第一个想到的就是程序的整体设计,由于这回是面对3个问题一起抽象地编程,脑子是懵的——感觉这种面向ADT的编程是真的反人类思维,我都没写程序我怎么知道我要用啥功能?所以一开始的设计就是全是get功能和set功能。4,也就是设置各种数据和得到各种信息,其他的功能可以在之后写的时候现加嘛。反正最重要的就是不能怂,我花了好长时间进行
2020-05-24 03:09:01
341
原创 哈工大-软件构造-Lab2-P3相关问题
前言到了Lab2的P3,感觉自己终于真正地设计一回程序里,之前都是一条一条的命令行,这回终于弄出了还看得过去的图形界面(其实在第二周的时候把命令行模式的游戏打完了,但在同学的怂恿之下,这才开始打有图形界面的程序)。在这里,命令行模式的东西就不再介绍了,我们已经做的太多了,这里说一下图形界面有关的问题在此,我只介绍我的实验过程之中接触的方法,并不带表我的方法是唯一或最好的,恰恰相反我的方法还有...
2020-04-11 20:57:33
180
原创 哈工大-软件构造-Lab2-P2相关问题
前言这是我迄今为止碰到的最简单的一个Problem,这是在Lab1和Lab2 P1的基础之上,重写一遍Friendship,在Lab1里面,我们已经掌握了Friendship的方法,Lab2的P1里面又提供了图的具体方法(还是2种),所以,在此,我们就不重复之前说过的,说一下我在P2里新用的数据结构:QueueQueue队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行...
2020-04-06 10:23:30
157
原创 哈工大-软件构造-Lab2-P1相关问题
哈工大-软件构造-Lab2-P1相关问题前言第二次做实验了,可能是有了一点方法论,P1遇到的问题没有上此实验遇到的那么多了,占比最大的还是由于马虎不细心,感谢Eclipse强大的改错功能让很多的错误按给出的意见改就好了,下面就说一下我这次试验花费时间比较多的几个问题吧对checkRep()的理解其实在开始实验的第一周,我是一直没有写checkRep()函数的,因为我一直都没搞明白Rep是个...
2020-04-06 02:24:17
264
原创 哈工大-软件构造-Lab1-P3相关问题
哈工大-软件构造-Lab1-P3相关问题前言接着之前的博客,这里简述一下在实验1的P3里我遇到的或同学遇到的一些问题类中private的初始化在P3的问题中,我们要构建一个Person类,为了让构建的类有更好的私密性,我们将数据命名为private,这时,在直接调用和初始化的时候,就会产生报错,这是因为private不能直接被外部调用,对于private的数据,要单独写函数来实现调用和初始...
2020-03-13 23:01:06
260
原创 哈工大-软件构造-Lab2的相关问题
Lab2的相关问题前言接着之前的博客,这里简述一下在实验2里我遇到的或同学遇到的一些问题导入文件这里其实就是简单的文件复制,之后刷新(刷新的问题在之前讲过了),但这时候会产生报错,这是因为包的名字和引入报的名字不对造成的,只要在前面加上“P2.”就好了。注意:package和部分的import后面都要加JUint的使用其实,老师是发了一段视频教学的(不知道是不是疫情期间的特殊处理)...
2020-03-13 00:50:40
380
原创 哈工大软件构造-Lab1-P1的问题
HIT-软件构造-Lab1-P1遇到的一些问题序言刚接触软件构造这门课,遇到了不少的问题,于是就写下来这篇篇博客:一者,是经历了在网上找各种问题的解答摧残,好多博客都是看起来很好,但实际操作起来,真的是坑爹;再者博客在期末占5分,为了学分绩,也得写写。这篇文章主要是记录了我遇到的问题以及解决的方法,希望可以让后面的学弟学妹节约点时间幻方的读入https://www.cnblogs.com/...
2020-03-11 22:51:58
384
1
原创 HIT计算机系统大作业
HIT 计算机系统大作业题 目 程序人生-Hello’s P2P 专 业 软件工程学 号 1183710105班 级 1837101学 生 陈文韬 指 导 教 师 史先俊计算机科学与技术学院2019年12月摘 要本文以最简单的hell...
2020-01-05 15:45:12
701
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人