|
|
|
|
|
面向对象分析的目的是为了获得对应用问题的理解。理解的目的是确定系统的功能、性能要求。
|
|
|
|
面向对象分析包含5个活动,即认定对象、组织对象、描述对象间的相互作用、定义对象的操作和定义对象的内部信息。
|
|
|
|
|
|
在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的"名词"作为一个对象,这通常是研究问题、定义域实体的良好开始。通过实体间的关系寻找对象常常没有问题,而困难在于寻找(选择)系统关心的实质性对象,实质性对象是系统稳定性的基础。
|
|
|
|
|
|
分析对象间的关系,将相关对象抽象成类,其目的是为了简化关联对象,利用类的继承性建立具有继承性层次的类结构。抽象类时可从对象间的操作或一个对象是另一个对象的一部分来考虑,如房子由门和窗构成,门和窗是房子类的子类。由对象抽象类,通过相关类的继承构造类层次,所以说系统的行为和信息间的分析过程是一种迭代表征过程。
|
|
|
|
|
|
描述出各对象在应用系统中的关系,如一个对象是另一个对象的一部分、一个对象与其他对象间的通信关系等。这样可以完整地描述每个对象的环境,由一个对象解释另一个对象,以及一个对象如何生成另一个对象,最后得到对象的界面描述。
|
|
|
|
|
|
当考虑对象的界面时,自然要考虑对象的操作。其操作有从对象直接标识的简单操作,如创建、增加和删除等;也有更复杂的操作,如将几个对象的信息连接起来。一般而言,应避免对象太复杂,当连接的对象很复杂时,可将其标识为新对象。当确定对象的操作后,再定义对象的内部。对象内部定义包括其内部数据信息、信息存储方法、继承关系以及可能生成的实例数等属性。
|
|
|
|
|
|
面向对象设计的含义是设计分析模型和实现相应源代码,在目标代码环境中这种源代码可被执行。设计期间必须充分考虑系统的稳定性,这会影响系统的结构。
|
|
|
|
对象标识期间的目标是分析对象,设计过程也是发现对象的过程,称之为再处理。对象可以用预先开发的源代码实现,称这样的部分为构件。
|
|
|
|
|
|
就测试而言,用面向对象方法开发的系统测试与其他方法开发的系统测试没有什么不同,在所有开发系统中都是根据规范说明来验证系统设计的正确性。程序调试步骤是从最底层开始,从单元测试、综合测试到系统测试。
|
|
|
|
一般来说,对面向对象软件的测试可分为下列4个层次进行。
|
|
|
|
(1)算法层。测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。
|
|
|
|
(2)类层。测试封装在同一个类中的所有方法与属性之间的相互作用。在面向对象软件中类是基本模块,因此可以认为这是面向对象测试中所特有的模块测试。
|
|
|
|
(3)模板层。测试一组协同工作的类之间的相互作用。大体上相当于传统软件测试中的集成测试,但是也有面向对象软件的特点(如对象之间通过发送消息相互作用)。
|
|
|
|
(4)系统层。把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
|
|
|