软件构造
曙光Daylight
c++: error trying to exec 'cc1plus': execvp: No such file or directory
ninja: build stopped: subcommand failed.
展开
-
Lab4-异常与错误处理、防御式编程、测试和调试
本博客为哈工大计算机科学与技术学院大二软件构造课程的Lab4实验报告。该PDF28页左右,主题为异常与错误处理、防御式编程、测试和调试,该博客不作为课程要求的博客记录数量,仅仅是个人的分享,为在Lab4已经结束后进行上传的。由于水平有限,实验报告可能不是特别流畅、通顺,并且存在一定错误和不一定完全正确,敬请各位批评指正!...原创 2020-07-09 16:48:38 · 213 阅读 · 0 评论 -
7-3锁与同步
锁与同步翻译 2020-07-08 00:13:33 · 644 阅读 · 0 评论 -
1-2软件构造的质量目标(待完善)
外部和内部质量因素外部质量因素:质量,如速度或易用性,它们在软件产品中的存在或缺失可以被用户检测到。外部质量因素 影响 用户其他适用于软件产品的品质,如模块化或可读性,都是内部因素,只有能够访问实际软件文本的开发人员才能察觉。最后,只有外部因素起作用。内部质量因素 影响 软件本身和它的开发者但实现这些外部因素的关键在于内部因素:为了让用户享受可见的品质,设计者和实施者必须运用内部技术来确保隐藏的品质。外部质量取决于内部质量(1)外部质量因素外部1:正确性正确性是翻译 2020-07-01 08:58:16 · 138 阅读 · 0 评论 -
随记:软件构造的三维视图
软件构造的三维视图Build-time ViewsBuild-time: idea →requirement → design →code→ installable / executable packageCode-level view:源代码——源代码是如何按照基本的程序块(如函数、类、方法、接口等)以及它们之间的依赖关系进行逻辑组织的Component-level view架构——源代码是如何按照文件、目录、包、库以及它们之间的依赖关系进行物理组织的Moment view: 源代码和组件在特定翻译 2020-06-27 15:16:58 · 198 阅读 · 0 评论 -
7-2线程安全
1什么是线程安全线程安全竞争条件:多个线程共享同一个可变变量,但不协调它们正在做的事情。这是不安全的,因为程序的正确性可能依赖于低级操作的定时事故。线程之间的“竞争条件”:作用于同一个mutable数据上的多个线程, 彼此之间存在对该数据的访问竞争并导致interleaving(交错),导致postcondition可能被违反,这是不安全的。线程安全意味着什么无论线程是如何执行的,如果数据类型或静态方法在多个线程中使用时行为正确,并且不需要调用代码的额外协调,则该方法是线程安全的。如何理翻译 2020-06-26 20:36:02 · 181 阅读 · 0 评论 -
7-1并发
大纲什么是并发编程进程、线程和时间切片(1)进程(2)线程(3)在Java中启动线程交错和竞争条件(1)时间切片(2)线程间共享内存(3)竞争条件(4)消息传递示例(5)并发很难测试和debug(6)总结阅读材料1 什么是并发编程并发并发:在同一时间进行多个计算并发在现代编程中无处不在网络上的多台计算机一台计算机上运行的多个应用计算机中的多个处理器(现在通常是单个芯片上的多核处理器)并发在现代编程中是必不可少的:网站必须同时处理多个用户翻译 2020-06-26 19:09:23 · 859 阅读 · 0 评论 -
6-2 错误与异常处理
大纲1、错误和Java中的异常2、异常处理什么是异常异常的分类受查异常和非受查异常如何抛出一个异常创建异常类捕获异常重新抛出和链接异常finally语句Try-with-Resources 声明分析堆栈痕迹元素3、总结阅读材料1、错误和Java中的异常Java中的Abnormals所有异常对象的基类是java.lang.Throwable,以及它的两个子类java.lang.Exeception和java.lang.Error。Error和Execeptio翻译 2020-05-22 20:52:55 · 1302 阅读 · 0 评论 -
6-1健壮性与正确性
健壮性和正确性翻译 2020-05-19 14:05:37 · 328 阅读 · 0 评论 -
Lab3-面向复用和可维护性的软件构造
面向复用和可维护性的软件构造原创 2020-05-11 16:47:11 · 617 阅读 · 0 评论 -
Lab2-抽象数据类型ADT与面向对象编程OOP
- 本博客为哈工大计算机科学与技术学院大二**软件构造**课程的**Lab2实验报告**。- 该PDF28页左右,主题为**抽象数据类型ADT与面向对象编程OOP**,- 该博客**不作为课程要求的博客记录数量**,仅仅是个人的分享,为**在Lab2已经结束后进行上传**的。- 由于水平有限,实验报告可能**不是特别流畅、通顺**,并且**存在一定错误**和**不一定完全正确**,敬请各位批评指正!原创 2020-05-11 16:46:03 · 180 阅读 · 0 评论 -
Lab1-Java基础编程与测试
本博客为哈工大计算机科学与技术学院大二软件构造课程的课件翻译。课程要求书写博客记录学习感悟。这一版本基本上为机器翻译,还存在很多错误,请谨慎参考原创 2020-05-11 16:35:36 · 157 阅读 · 0 评论 -
4-3面向复用的设计模式
面向复用的设计模式目录面向复用的设计模式1、结构型模式(1)适配器模式Adapter(2)装饰器模式Decorator(3)外观模式Facade2、Behavioral patterns行为型模式(1)Strategy策略模式结构型模式:Adapter通过将自己的interface封装在已经存在的class的接口周围,允许具有不兼容interface的class一起工作。Decorato...翻译 2020-05-11 16:29:58 · 197 阅读 · 0 评论 -
5-2面向可维护性的设计模式
目录创建者模式工厂方法模式创建对象而不指定要创建的确切类。抽象工厂模式将具有共同主题的对象工厂分组。结构型模式代理为另一个对象提供了一个占位符来控制访问、降低成本和降低复杂性。行为型模式观察者模式是一种发布/订阅模式,允许多个观察者对象查看一个事件。访问者模式通过将方法的层次结构移动到一个对象中来将算法与对象结构分离。设计模式的共性和差异阅读材料CMU...翻译 2020-05-11 16:28:48 · 275 阅读 · 0 评论 -
4-2 面向复用的软件构造技术
这里写目录标题目录阅读材料1、设计可复用的类在OOP中设计可复用的类(1)行为子类型与Liskov替换原则行为子类型Example 1 for Behavioral subtyping (LSP)Example 2 for Behavioral subtyping (LSP)Liskov Substitution Principle (LSP)Covariance (协变)Contravarian...翻译 2020-04-30 20:29:42 · 1507 阅读 · 0 评论 -
4-1可复用性的度量、形态和外部表现
可复用性的度量形态和外部表现课程目标:软件复用的优点和缺点面向可复用性的构造一般的可重用模块的特征开发便携式应用系统的方法第3章介绍了软件构造的核心理论(ADT)与技术(OOP),其核心是保证代码质量、提高代码安全性。本章面向一个重要的外部质量指标:可复用性——如何构造出可在不同应用中重复使用的软件模块/API?4-1节探讨可复用的软件应该“长什么样”,下一节学习“如何构造...翻译 2020-04-25 18:37:58 · 1327 阅读 · 0 评论