- 博客(6)
- 收藏
- 关注
原创 软件构造(五)
异常处理 异常:程序执行中的非正常事件,程序无法再按预想的流程执行,将错误信息传递给上层调用者,并报告“案发现场”的信息 异常的种类: 1.运行时异常:由程序员在代码里处理不当造成 2.其他异常:由外部原因造成 Check/Uncheck Exceptions 异常处理:必须在方法的spec中明确写清本方法会抛出的所有checked exception, 以便于调用该方法的client加以处理 子类型异常处理规范:(LSP) 1.如果子类型中override了父类型中的函数,那么子类型中方法抛出的异常不能
2020-07-04 14:33:36
279
原创 软件构造(四)
白盒复用:源代码可见,可修改和扩展 黑盒复用:源代码不可见,不能修改 子类型的行为: 子类型可以增加方法,但不可删 2.子类型需要实现抽象类型 (接口、抽象类)中所有未实现的方法 3.子类型中重写的方法必须有相同或子类型的返回值或者符合co-variant的参数 4.子类型中重写的方法必须使用同样类型的参数或者符合contra-variant的参数(此种情况Java目前按照重载overload处理) 5.子类型中重写的方法不能抛出额外的异常 协变、反协变 协变:父类型到子类型,由抽象越来越具体。(包括返
2020-06-02 21:40:37
246
原创 软件构造(三)
数据类型:基本数据类型和对象数据类型 类型转换:静态类型语言和动态类型语言 静态类型检查:在编译阶段发现错误,避免将错误带入到运行阶段,可以提 高正确性、健壮性 动态类型检查:在运行阶段发现错误,检查非法的参数值、非法的返回值、越界、空指针 静态检查 >> 动态检查>> 无检查 不可变数据类型/可变数据类型 不可变数据类型:一旦被创建,其值不可变,始终指向同一个值/引用,因此更加安全。如果是引用类型,也可以使不变的,一旦确定其指向的对象,不能再被改变指向其他对象。 可变数据类型:
2020-05-31 22:05:44
255
原创 软件构造(二)
一、软件的生命周期 From 0 to 1(从无到有):通过计划-分析-设计-实现-测试-维护,来初步完成一个软件的设计。 From 1 to n(从有到好):通过版本不断升级更新,来实现一个更完全的软件。 二、传统的软件开发模型 两个过程:线性过程和迭代过程。 ①线性过程:瀑布过程:线性推进,阶段划分清楚,整体推进,无迭代,管理简单,无法适应需求的增加变化。 增量过程:线性推进,增量式,无迭代,比较容易适应需求的增加。 ②迭代过程:在原型上持续不断的迭代发现用户变化的需求。 迭代过程开发质量高,但是时间成
2020-05-27 23:09:55
309
原创 软件构造(一)
软件构造过程中的多维视图 构建Build-time:( idea→requirement→design→code→installable / executable package) Moment Code-level:从源代码的角度理解源代码的逻辑组织,具有三个层面:词汇层面,语法层面,语义层面。 Moment Component-level:代码的物理组织,如文件,包,库等等。 Period Code-level:代码随着时间的变换,比如增添修改删除。 Period Component-level:软件
2020-05-10 21:20:09
418
原创 程序人生-Hello’s P2P
计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 计算机科学与技术 学 号 班 级 学 生 指 导 教 师 ...
2020-01-05 21:44:17
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人