软件测试

什么是软件测试

软件测试是软件质量保障的方法之一,是广泛意义上的“验证与确认”的一部分,验证与确认常被简称为“V&V”,其目的如下:

阅读更多
面向对象的信息隐藏

面向对象方法中需要做的两点:

  1. 封装类的职责,隐藏职责的实现
  2. 预计将会发生的变更,抽象它的接口,隐藏它的内部机制
阅读更多
面向对象的模块化

面向对象中的模块

模块化是消除软件复杂度的一个重要方法,它将一个复杂系统分解为若干个代码片段,每个代码片段完成一个功能,并且包含完成这个功能所需要的信息。每个代码片段相对独立,这样能够提高可维护性。在面向对象方法中,代码片段可以是模块,也可以是方法,但更重要的是类,整个类的所有代码联合起来构成独立的代码片段。

阅读更多
模块化与信息隐藏

结构化的模块化

耦合

定义:耦合描述的是两个模块之间的关系的复杂程度。根据其耦合性的高低可以依次分为:内容耦合、公共耦合、重复耦合、控制耦合、印记耦合、数据耦合。模块耦合性越高,模块的划分越差,越不利于软件的变更和复用。(下表的耦合性从高到低排列)

阅读更多
详细设计

详细设计基础

什么是详细设计

  • 具体模块的中层设计:OO来实现类的具体设计
  • 具体模块中的对象/类的低层设计:数据结构+算法来实现具体的类
阅读更多
人机交互

HCI, Human Comuter Interaction

阅读更多
Design Pattern (5)

9 策略模式 Strategy Pattern

9.1 概述

策略模式是为了解决软件开发中存在的多种算法灵活切换的问题,如果使用硬编码(Hard Coding)会导致系统违背开闭原则,扩展性差,且维护困难,这个时候我们可以通过策略模式来定义类封装不同的算法。

阅读更多
OOC Review

1 从过程化到面向对象

1.1 外部质量因素

  1. Correctness 正确性:依据规约 完成任务
  2. Robustness 鲁棒性:异常情况 合理反映
  3. Integrity 完整性:非法访问或修改 合理反映
  4. Extendilibity 易扩展性:软件产品应 规约改变 而 改变
  5. Resusability 易复用性:软件模块 用于构建多种不同应用
  6. Compatibility 兼容性:软件模块相互组合的难易
  7. Efficiency 高效性:尽量少地使用硬件资源、处理器时间、内存、外存、网络带宽等
  8. Portability 易移植性:转换到不同的软硬件平台上
  9. Ease of use 易用性:不同背景的用户学习使用软件产品解决问题的难易
阅读更多
软件体系风格

1 软件体系结构的发展

阅读更多
软件设计

1 什么是软件设计

软件设计:软件设计是关于软件对象的设计,是一种设计活动,自然具有设计的普遍特性。软件设计既指软件对象实现的规格说明(specification),也指产生这个规格说明的过程

阅读更多