摘要: 第六章第二节 可维护的设计模式 Outline 创造性模式:Creational patterns 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 建造者模式(Builder Pattern) 结构化模式:Structural patte 阅读全文
posted @ 2018-06-16 18:46 HongmingYou 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 第六章第一节 可维护性的度量与构造原则 本章面向另一个质量指标:可维护性——软件发生变化时,是否可以以很小的代价适应变化? 本节是宏观介绍:(1)什么是软件维护;(2)可维护性如何度量;(3)实现高可维护性的设计原则——很抽象。 Outline 软件的维护和演化 可维护性的常见度量指标 聚合度与耦合 阅读全文
posted @ 2018-06-16 15:56 HongmingYou 阅读(1767) 评论(0) 推荐(0) 编辑
摘要: 第五章第三节 可复用的设计模式 除了Framework,5-2节所讨论的其他技术都过于“基础”和“细小”,有没有办法做更大规模的复用设计? 本节将介绍几种典型的“面向复用”的设计模式,设计模式更强调多个类/对象之间的关系和交互过程—比接口/类复用的粒度更大。 Outline 结构型模式:Struct 阅读全文
posted @ 2018-06-16 02:19 HongmingYou 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 第五章第二节 设计可复用的软件 5-1节学习了可复用的层次、形态、表现;本节从类、API、框架三个层面学习如何设计可复用软件实体的具体技术。 Outline 设计可复用的类——LSP 行为子结构 协变与逆变 Liskov替换原则(LSP) 各种应用中的LSP 数组是协变的 泛型中的LSP 为了解决类 阅读全文
posted @ 2018-06-13 22:38 HongmingYou 阅读(1266) 评论(0) 推荐(0) 编辑
摘要: 第五章第一节 可复用性的度量、形态和外部观察 本节探讨可复用软件的形态与特征,下一节学习“如何构造”。 Outline 什么是软件复用 可复用实现的级别 源代码级别的复用 模块级别的复用:类、抽象类、接口 库级别的复用:API、包 系统级别的复用:框架 对可复用性的外部观察 白盒框架和黑盒框架 源代 阅读全文
posted @ 2018-06-13 20:10 HongmingYou 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 编码规范 阅读全文
posted @ 2018-06-12 23:42 HongmingYou 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 第三章第五节 ADT和OOP中的等价性 在很多场景下,需要判定两个对象是否 “相等”,例如:判断某个Collection 中是否包含特定元素。 ==和equals()有和区别?如何为自定义 ADT正确实现equals()? OutLine 等价性equals() 和 == equals()的判断方法 阅读全文
posted @ 2018-06-12 20:26 HongmingYou 阅读(869) 评论(0) 推荐(2) 编辑
摘要: 第三章第四节 面向对象编程OOP 本节讲学习ADT的具体实现技术:OOP Outline OOP的基本概念 对象 类 接口 抽象类 OOP的不同特征 封装 继承与重写(override) 多态与重载(overload) 重写与重载的区别 泛型 设计好的类 对象 类 接口 抽象类 封装 继承与重写(o 阅读全文
posted @ 2018-06-12 02:32 HongmingYou 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 第三章第三节 抽象数据型(ADT) 3-1节研究了“数据类型”及其特性 ; 3-2节研究了方法和操作的“规约”及其特性;在本节中,我们将数据和操作复合起来,构成ADT,学习ADT的核心特征,以及如何设计“好的”ADT。 Outline ADT及其四种类型 ADT的基本概念 ADT的四种类型 设计一个 阅读全文
posted @ 2018-06-04 18:08 HongmingYou 阅读(1230) 评论(0) 推荐(0) 编辑
摘要: 第三章第二节 软件规约 这一节我们转向关注“方法/函数/操作”是如何定义的,即讨论编程中的动词,规约。 Outline 一个完整的方法 什么是设计规约,我们为什么需要他 行为等价性 规约的结构:前置条件与后置条件 规约的结构 可变方法的规约 规约的评价 规约的确定性 规约的陈述性 规约的强度 如何设 阅读全文
posted @ 2018-06-02 16:48 HongmingYou 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 第三章第一节 数据类型与类型检查 本章将介绍软件构造的理论基础——ADT,软件构造的技术基础——OOP Outline 数据类型 基本数据类型 对象数据类型 类型检查 静态类型检查 动态类型检查 可变性与不可变性 不可变性 可变性 防御性拷贝 快照图(Snapshot diagram) 基本数据类型 阅读全文
posted @ 2018-05-31 22:33 HongmingYou 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 第二章第二节 软件构造的过程、系统和工具 本节主要讲述软件从从零到一遵循的子过程,在考试中不会做重点考察 Outline 广义的软件构造过程 编程 静态代码分析 动态代码分析 调试与测试 重构 狭义的软件构造过程 构造系统:经典BUILD场景 构造系统的组件 构造过程和构造描述 Java编译工具 子 阅读全文
posted @ 2018-03-30 14:38 HongmingYou 阅读(662) 评论(0) 推荐(0) 编辑
摘要: 软件构造第二章 第一节 软件生命周期和版本控制(配置管理) 第一章解释了软件构造的对象、结果和评判标准之后,我们将会了解到软件是如何从0开始被开发出来的。 Outline 软件周期 经典软件过程模型 敏捷开发 协同软件开发 配置管理(SCM) 版本控制(Git) Notes 第一章解释了软件构造的对 阅读全文
posted @ 2018-03-08 13:42 HongmingYou 阅读(1223) 评论(0) 推荐(0) 编辑
摘要: ​软件构造第一章第二节 软件开发的质量属性 上一节告诉我们不同视角下“软件构造的结果”分别是什么,在这一节我们要清楚“什么样的结果”算好的。这一章我们介绍了内部、外部的若干质量属性,其中 可理解性(第四章)、可复用性(第五章)、可维护性(第六章)、健壮性(第七章)、性能(第八章)是五个关键质量目标。 阅读全文
posted @ 2018-03-01 17:43 HongmingYou 阅读(1178) 评论(1) 推荐(0) 编辑
摘要: - 描述软件系统的三个维度 - 元素、关系和各种视角的模式 - 不同视角间的转换 阅读全文
posted @ 2018-02-27 22:32 HongmingYou 阅读(1164) 评论(0) 推荐(3) 编辑
摘要: 本篇博客附有系列内所有博客的链接,会随着课程的进行更新。 阅读全文
posted @ 2018-02-26 23:11 HongmingYou 阅读(2096) 评论(0) 推荐(1) 编辑