
软件构造
文章平均质量分 93
MrBinW
这个作者很懒,什么都没留下…
展开
-
第十二章 面向正确性与健壮性的软件构造
第十二章 面向正确性与健壮性的软件构造第十二章 面向正确性与健壮性的软件构造健壮性和正确性健壮性正确性比较评测健壮性和正确性外部观察角度内部观察视角(间接)Java中的错误和异常ErrorException抛出异常的方法创建异常类处理异常栈轨迹断言防止bug断言断言和异常pre-/post-condition防御性编程保护程序免受无效输入Barricade 设置路障The SpotBugs tool第十二章 面向正确性与健壮性的软件构造健壮性和正确性健壮性系统在不正常输入或不正常外部环境下仍能够原创 2021-07-07 17:21:12 · 599 阅读 · 0 评论 -
第十一章 面向可复用性和可维护性的设计模式
第十一章 面向可复用性和可维护性的设计模式第十一章 面向可复用性和可维护性的设计模式Creational patterns 创建型模式Factory Method pattern 工厂方法模式Structural patterns 结构型模式Adapter 适配器模式Decorator 装饰器模式Behavioral patterns 行为类模式Strategy 策略模式Template Method 模板模式Iterator 迭代器Visitor设计模式的对比第十一章 面向可复用性和可维护性的设计模式原创 2021-07-07 17:13:58 · 353 阅读 · 0 评论 -
第十章 面向可维护性的构造技术
第十章 面向可维护性的构造技术第十章 面向可维护性的构造技术软件维护与演进面向可维护性的构建可维护性指标可维护性的许多名称一些常用的可维护性指标模块化设计和模块化原则评估模块化的五个标准模块化设计的五个规则耦合内聚OO Design Principles: SOLIDSOLID:5类设计原则语法驱动的构造语法的组成部分正则语言和正则表达式Java中的正则表达式第十章 面向可维护性的构造技术软件维护与演进软件维护:修复错误、改善性能运维是软件开发中最困难的工作之一处理来自用户报告的故障原创 2021-07-07 17:07:07 · 417 阅读 · 0 评论 -
第九章 面向复用的软件构造技术
第九章 面向复用的软件构造技术第九章 面向复用的软件构造技术什么是软件复用特点如何使用已有软件进行开发怎样评测可复用性好的可复用性软件应该可复用代码来源复用的级别和形态复用的级别复用的形态设计可复用的类行为子类型和LSP原则委派第九章 面向复用的软件构造技术什么是软件复用软件重用是使用现有软件组件实现或更新软件系统的过程。软件复用的两个方面面向复用编程:开发出可复用的软件基于复用编程:利用已有的可复用软件搭建应用系统特点很大的适应性降低成本和开发时间充分的测试原创 2021-07-07 17:00:14 · 225 阅读 · 0 评论 -
第八章 ADT和OOP中的 “等价性“
第八章 ADT和OOP中的 “等价性”第八章 ADT和OOP中的 “等价性”等价关系== vs. equals()==equals()Immutable类型的等价使用AF观察等价性AF和观察等价性判断出来的结果可能不同Immutable类型观察等价性和行为等价性一致建议Mutable类型等价性观察等价性行为等价性建议示例Java自动装箱单例模式第八章 ADT和OOP中的 “等价性”等价关系自反、对称、传递== vs. equals()Java的两种操作测试等价性==== 运算符比较引用。原创 2021-07-07 16:52:14 · 395 阅读 · 0 评论 -
第七章 面向对象的编程
第七章 面向对象的编程第七章 面向对象的编程基本概念类成员变量类方法实例方法实例成员变量接口和枚举类型接口接口和类的关系继承和重写继承重写(Overriding)抽象类多态(Polymorphism)三种多态重要的Object方法toString()equals()hashCode()设计好的类写immutable类什么时候使用immutable什么时候使用mutable第七章 面向对象的编程基本概念类成员变量所有的类共享这一个变量,static修饰类方法static修饰,类名调用实原创 2021-07-07 16:46:51 · 377 阅读 · 0 评论 -
第六章 抽象数据类型(ADT)
第六章 抽象数据类型(ADT)ADT由一组操作所刻画的数据类型,而非数据的具体表示(传统类型)强调"作用于数据上的操作",程序员和 client无需关心数据如何具体存储的,只需设计/使用操作即可。ADT是由操作定义的,与其内部如何实现无关!ADT分类可变数据类型提供了可改变其内部数据的值的操作不可变数据类型其操作不改变内部值,而是构造新的对象有时一个类型会以两种形式提供,一种是可变的,一种是不可变的。 例如,StringBuilder 是 String 的可变版本原创 2021-07-07 16:38:35 · 1054 阅读 · 0 评论 -
第五章 设计规约
第五章 设计规约第五章 设计规约函数和方法(Functions & methods)规约(Specification)编程中的文档(Documenting in programming)规约和合同(Specification and Contract)行为等价性(Behavioral equivalence)规约设计规约规约性质比较规约规约图设计好的规约第五章 设计规约函数和方法(Functions & methods)参数类型是否匹配,在静态类型检查阶段完成返回值类型是否匹原创 2021-07-07 16:28:59 · 378 阅读 · 0 评论 -
第四章 数据类型与类型检验
第四章 数据类型与类型检验第四章 数据类型与类型检验数据类型Java类型静态类型检测和动态类型检测静态类型语言动态类型语言动态>静态>无检查Mutability and Immutability改变一个变量和一个变量的值的区别ImmutabilityMutable types 和 Immutable typesSnapshot diagram画法Arrays and CollectionsArrayListSetMapIteration有用的immutable类型Collections第四章原创 2021-07-04 18:56:14 · 460 阅读 · 0 评论 -
第三章 软件构造过程与配置管理
第三章 软件构造过程与配置管理第三章 软件构造过程与配置管理Software Development Lifecycle(SDLC)软件开发生命周期From 0 to 1 从无到有From 1 to n 从有到好传统软件开发模型两种基本的方式五种模型选择模型的依据Agile Development(敏捷开发)敏捷宣言极限编程SCM和VCS软件配置管理版本控制和基线的建立CMDB :配置管理数据库Git实际的三个区域Git仓库的三个部分文件的三个状态Object Graph和传统的VSC对比git 命令软件构原创 2021-07-04 18:46:24 · 296 阅读 · 0 评论 -
第二章 软件测试与测试优先的编程
第二章 软件测试与测试优先的编程第二章 软件测试与测试优先的编程测试目的测试等级单元测试集成测试系统测试回归测试验收测试静态测试和动态测试测试和调试测试艰难原因测试用例好的测试用例Test-First Programming(测试优先编程)JUnit自动化单元测试使用assertion methodssetUp() or @BeforetearDown() or @After黑盒测试测试用例写法(等价类划分和边界值分析)白盒测试独立/基本路径测试测试的覆盖度衡量标准Regression testing 回归原创 2021-07-04 18:32:36 · 744 阅读 · 0 评论 -
第一章 软件构造的多维视图和质量目标
这里写目录标题第一章 软件构造的多维视图和质量目标软件构造三个维度Buildtime Viewscode代码的逻辑组织component代码的物理组织Runtime ViewsCode-level view代码层面:逻辑实体在内存中如何呈现?Component-level view构件层面:物理实体在物理硬件环境中如何呈现?运行时软件的高级概念软件系统的质量特性关系外部质量内部质量质量属性之间的权衡第一章 软件构造的多维视图和质量目标软件构造三个维度build-runcode-componentm原创 2021-07-04 18:13:27 · 645 阅读 · 1 评论