- 业务用例 与 参与者一起描述、组织支持的业务过程。
- 业务对象模型:描述业务结构以及结构元素如何完成业务用例。
- 对象:对象名,属性(状态),方法(行为、操作)。
- 清晰的边界。
- 良好的定义行为。
- 可扩展性。
- 消息:对象之间进行通信的一种构造叫做消息。
- 类:一个类定义了一组大体上相似的对象。这些对象共享行为(方法、操作)和属性(状态)。
- 实体类:现实世界中真实的实体。
- 接口类(边界类):为用户提供一种与系统合作交互的方式。
- 控制类:控制活动流,充当协调者。
- 继承:在已存在的类的基础上创新类。
- 子类:派生类
- 父类:超类、基类
- 重写:覆盖
- 类的静态方法只能访问该类的静态数据成员。
- 类的静态数据成员的值可以修改。
- 多态:不同对象收到同一消息可以产生完全不同的结果。
- 多态的实现受到继承的支持。
- 无需知道所调用方法的特定子类的实现。
- 绑定在编译时进行的,叫做动态绑定。
- 动态绑定是在运行是进行的。
- 动态绑定是和类的继承以及多态相联系的。
- 面向对象分析:
- 目的是为了获得对应用问题的理解。(要做什么)
- 与系统的测试问题无关。
- 问题域与系统责任。
- 抽取和整理用户需求,并建立问题域精确模型。
- 建立独立于系统实现的系统分析模型。
- 确定问题域
- 面向对象分析包含的5个活动:
- 认定对象
- 组织对象
- 描述对象间的相互作用
- 确定对象的操作
-
定义对象的内部信息
没有说要实现***功能
- 聚合对象:一个对象包含其他对象。
- 面向对象设计
- 解决问题
- 解决方案
- 系统实现
- 面向对象设计活动:
- 识别类及对象
- 定义属性
- 定义服务
- 识别关系
- 识别包
- 面向对象设计的原则
- 单一职责原则:需要修改某个类的时候原因有且只有一个。
- 开放-封闭原则:软件实体是可以扩展的,但是不可以修改。
- 里氏替换原则:任何父类出现的地方,都以用子类的实例来赋值给父类型的引用。
- 依赖倒置原则:抽象不依赖于细节,细节应该依赖于抽象。即:高层模块不应该依赖于低层模块,二者应该依赖于抽象。
- 接口分离原则:依赖于抽象,不依赖于实体。
- 重用发布等价原则:重用的粒度就是发布的力粒度
- 共同封闭原则:一个变化若对一个包产生影响,则对包中的所有类产生影响,而对于其他包不造成任何影响。
- 共同重用原则:如果重用了包中的一个类,那么就要重用包中的所有类。
- 无环依赖原则:在包的依赖关系图中,不允许存在环。
- 稳定依赖原则:朝着稳定的方向进行依赖。
- 稳定抽象原则:包的抽象程度应该和其稳定程度一致。
- 面向对象设计(OOP):选用一种面向对象程序设计语言(OOPL),采用对象、类及其相关概念所进行的程序设计。
- OOP:以....实例,进行组织。
面向对象测试:
- 算法层
- 类层
- 模块层
- 系统层
- UML4种事物:结构事物、行为事物、分组事物、注释事物。
- 结构事物:属于名词。类、接口、写作、用例、主动类、构件、制品、结点。
- 行为事物:动态部分,描述了跨越时间和空间的行为。交互、状态机、活动。
- 分组事物:组织部分。由模型分解成的“盒子”,主要的分组事物是包。
-
注释事物:解释部分。对元素进行约束或解释的符号。
- UML的四种关系
- 依赖:一个事物发生变化会影响另一个事物。
- 关联:结构关系。描述了一组链,链是对象之间的连接。
聚集:一种特殊类型的关联。描述了整体和部分之间的关系。可以有多个由不同角色标识的关联。
关联和聚集在关联上可以标注重复度和角色。 - 泛化:特殊/一般关系。
-
实现:类元之间的语义关系。
- 多重度:实例的对应,实例的相关联。