软件构造
文章平均质量分 79
梦里飞雪飘
哈工大在读本科生
展开
-
【软件构造复习3】测试、异常、并发
(一)Junit单元测试 分类 白盒测试:对程序内部代码 结构的测试 黑盒测试:对程序外部表现出来的行 为的测试 2. 提倡测试优先编程的思想 写规约 ~> 写测试用例 ~>写代码 测试策略 (1)等价类划分 (2)笛卡尔积全覆盖 / 每个等价类至少覆盖一次 (3)边界值分析 测试用例 @Test assertEquals(expected,actual) 5练习 例1整数乘法 (1)正负角度划分:正负,正正,负负,负正 (2)边界值分析:0,-1,1,很大的数 例reverseEn原创 2020-07-09 16:03:03 · 89 阅读 · 0 评论 -
【软件构造复习2】ADT+OOP
(一)数据类型与类型检查 基本数据类型:有值无ID,栈 抽象数据类型:有值和ID,堆 静态类型检查:类型检查 动态类型检查:值的检查(空指针引用,越界访问、整数除0) 不检查但会出现错误结果(避免):(浮点数除0、整数溢出) (二)immutable 与 mutable 不可变数据类型:内部无mutator,每次改变都会产生新的副本 可变数据类型:内部有mutator,可以改变类的值 final的使用: final表明了程序员的一种“设计决策” final类无法派生子类 final变量无法改变值/引用 im原创 2020-07-09 16:01:55 · 131 阅读 · 0 评论 -
【软件构造复习1】软件构造的基础概念
(一)软件的多维视图 【Code-level + Build-time + Moment】 词汇:使用的语句、字符串、变量、注释,半结构化的代码 词法:AST语法树 语义:UML图 【Code-level + Build-time + Period】 Code Churn(代码变化) 【Component-level + Build-time + Moment】 files(文件) directories(目录) packages(包) libraries(库) 静态链接 【Component-leve原创 2020-07-09 16:00:50 · 666 阅读 · 0 评论 -
软件的调试(Debug)技术
调试程序的过程 复现:使用最小的测试用例集复现错误 分析:(重点) (1)测量法:使用logging (2)二分法:分治的寻找错误的位置 (3)基于差异的调试 修复 反思 Debug的方法 内存转储:将内存的信息以文件的形式写入磁盘 调用栈的分析 打印debug的方法:使用print打印寻找错误位置 日志技术: (1)基本日志 使用全局日志记录器 a. Logger.getGlobal().info(“File->Open menu item selected”);生成 b.Logger.get原创 2020-05-24 15:20:47 · 705 阅读 · 0 评论 -
java中的异常机制及处理
异常 异常的类型 uncheked(非受查异常):error(内部错误)running time exception(自身代码的问题,如:错误的类型转换、数组访问越界、空指针访问) checked(受查异常):其他异常 不同异常的特点 unchecked异常: (1)如果出现,无能为力 (2)完善代码,保证不会出现runtime exception checked异常: (1)异常处理技术处理的异常 (2)处理:声明-抛出-捕获, 下面均围绕checked异常展开 声明异常 在方法的首部声明所有可能抛出的原创 2020-05-24 14:43:34 · 139 阅读 · 0 评论 -
面向可复用性的基本概念
可复用性的三个层面 代码层面的复用 模块层面的复用 在class与interface层面的复用 复用技术:继承与委托 继承:子类型继承、重写父类型的方法,类型耦合性高 委托:一个对象依赖另一个对象的方法,耦合性底 库层面的复用 开发者的程序 调用 可复用的类库 Framework框架 调用 开发者的代码 关于Framework 白盒框架 ...原创 2020-05-04 17:14:24 · 186 阅读 · 0 评论 -
面向对象编程的技术方法(OOP)
类中的方法 1.静态方法:无需创建实例就可以调用的方法 2.非静态方法:需要将类实例化后才能调用 信息隐藏与封装 1.类与接口: 接口:只有方法和规约的定义,没有实现 类:对接口中方法和规约进行实现 一个类可以实现多个接口(从而具备了多个接口中的方法) 一个接口可以有多种实现类 2.访问权限 private:当前类可以使用 protected:当前类和该类的子类可以使用 public:任何类都可以...原创 2020-04-05 11:03:01 · 499 阅读 · 0 评论 -
数据类型与类型检查
数据类型 1.基本数据类型:无ID,栈分配,代价低,不可变 2.抽象数据类型:有ID,堆分配,代价高。可变 注意点 基本数据类型可以包装为抽象数据类型,便于在容器中使用 抽象数据类型具有层次结构,根类(object)抽象类 操作符可以重载 类型检查 1.java自动转换类型:高精度可转换为低精度 2.静态类型检查:编译时进行检查,检查语法错误,类名函数名错误,参数类型检查 3.动态类型检查:运行时...原创 2020-03-28 17:09:37 · 134 阅读 · 0 评论 -
软件测试
大纲 设计测试用例 用Junit编写测试程序 自动化测试过程 软件测试 1.静态测试:不执行程序 2.动态测试: 3.测试与调试:测试(是否存在错误)调试(错误消除) 测试用例:输入 + 执行条件 = 期望结果 单元测试–集成测试–系统测试 单元测试 Junit: @test–指明测试方法 断言(例如assertequals)–判断通过 参数顺序:期望结果,实际结果 测试类的目录结构与原来的目...原创 2020-03-09 15:44:30 · 61 阅读 · 0 评论 -
软件构造的多维度视图
三个维度看软件系统的构成 按阶段划分:构造时/运行时的试图 按动态划分:时刻/阶段视图 按构造对象的层次划分:代码/构件试图 多维视图分析 Build Time - moment - code-level: 词法–语句 语义–关联(UML图) 语法–流程(语法树) Build TIME - period - code-level: 代码的改变 Build Time - momment - c...原创 2020-03-09 15:26:01 · 234 阅读 · 0 评论