高级软件设计课程

Advanced Software Design Course

 

高级软件设计课程是一个包含 6 个主要模块的课程,旨在提高软件设计技能。该课程涵盖逻辑、数据结构设计、状态管理、模块化和纠错的原则。学生接受代码重构,学习避免隐藏的依赖关系,并有效应对软件系统设计挑战。

课程描述


单元 1 |隐藏的逻辑层
在我们的第一个模块中发现设计和实现之间的主要区别。Master Hoare 的三重技能能够理解代码复杂性并为软件开发专业知识奠定基础。
为什么设计与实现有根本的不同,以及这对创建可靠代码意味着什么。
永不失败的代码如何仍然包含错误。
了解看似简单的代码可能很复杂,以及如何避免编写易受攻击的代码。
霍尔三元组 – 一种简单的规范方法,可让您像代码本身一样清楚地看到复杂性。


第 2 单元 |嵌入式设计原理
深入了解最深刻、最深远的原则。如何将程序设计直接嵌入到其代码中?
了解代码可以从设计文档中机械地派生出来,以及这种观点如何简化系统设计。
利用嵌入式设计原理实现更好的代码结构。
了解代码各部分之间最一般的联系形式。如何查找和消除隐藏的依赖关系,防止简单的任务变得复杂。


第 3 单元 |可表示状态和允许状态原则
了解如何约束程序状态,以便只能表示允许的状态。
了解如何对程序的状态空间进行分区并降低失败的可能性。
设计不能被误用的数据结构和 API 接口。
开发没有错误检查的代码,这比最“防御性”的方法更可靠。


单元 4 |数据优于代码的原则
了解以数据为中心的方法如何有助于实现更好的模块化和信息隐藏。
Parnas 的信息隐藏秘密,已经使用了 40 多年。
利用信息隐藏原则如何使代码更加模块化和可扩展。
围绕数据结构组织程序以提高其清晰度和可读性。
这一原理的极端应用如何允许更快地理解复杂系统。


第 5 单元 |代数重构
使用代数的力量来发现看似不同的内容实际上可能是相同的。
了解数据类型的和和乘积,以及大多数数据结构是这两种基本结构的特例。
最常见的重构是一些规则的特殊情况。
重构程序如何类似于在代数中分解多项式。


第 6 单元 |代码寿命
什么时候值得花时间进行深思熟虑的设计,什么时候可以推迟?
识别和隔离嵌入在各个代码行中的假设。
使用 Liskov 替换原则来确保代码与未来版本的兼容性。
应用子类型理论来预测和防止 “复杂性积累”,这可能会使代码在将来难以修改和清理。

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。