OOSE方法包括的概念主要有:类(class)、对象(object)、继承(inherits)、相识(acquaintance)、通信(communication)、刺激(stimuli)、操作(operation)、属性(attribute)、角色(actor)、用例(use case)、子系统(subsystem)、服务包(service package)、块(block)、对象模块(object module)。相识表示静态的关联关系,包括聚合关系。刺激是通信传送的消息。角色是与系统交互的事物,其表示所有与系统有信息交换的系统之外的事物,因此不关心其细节。角色与用户不同,角色是用户所充当的一个演员。角色的一个实例对系统做一组不同的操作。当用户使用系统时,会执行一个行为相关的一系列事务,这一系列事务是在与系统的会话中完成的,这个特殊的系列称为用例,每个用例都是使用系统的一条途径。用例的一个执行过程可以看作是用例的实例。当用户发出一个刺激之后,用例的实例开始执行相关事务。事务包括许多动作,事务在收到用户结束刺激后被终止。在这个意义上,用例可以被看作是对象类,而用例的实例可以被看作是对象。
OOSE方法
1992年学者提出的基于用例驱动、覆盖系统开发各个阶段的面向对象开发方法。
- 英文名称
- object-oriented software engineering method
- 所属学科
- 管理科学与工程
OOSE方法系统开发过程是通过构建以下五种模型完成,这些模型是自然过渡和紧密耦合。
①需求模型:用于捕捉用户的需求,从用户角度完整地刻画系统的功能需求,基于这个模型与最终用户交流。具体包括问题领域对象模型、描述人与系统的接口界面的角色和用例,对象模型是系统的概念化的、容易理解的描述,界面描述刻画了系统界面的细节。
②分析模型:是在需求模型的基础上建立的。主要目的是要建立在系统生命期中可维护、有逻辑性、健壮的、可扩展的系统基本结构。将需求模型中的对象分别识别为分析模型中的不同对象类型,并分析它们之间的关系。分析模型中有三种对象:界面对象刻画系统界面;实体对象刻画系统要长期管理的信息和信息上的行为,实体对象生存在一个特别的用例中;按特定的用例作面向事务建模的对象。这三种对象使得需求的改变总是局限于其中一种。分析模型可以完全不考虑系统的真实运行环境的约束,而注重于系统逻辑的构造。
③设计模型:考虑具体实现环境,将分析模型的对象定义为块,设计模型的最终表现是一系列类(对象)模块,这些类(对象)模块不仅有了详细定义,而且有了伪码实现。分析模型通常要根据设计模型作相应的变化,但分析模型中基本结构要尽可能保留。在设计模型中,块进一步用用例模型来阐述界面和块间的通信。
④实现模型:用相关程序设计语言所实现的块的代码。OOSE方法并不要求用面向对象语言来完成实现。
⑤测试模型:对类(对象)的底层测试,如方法、类通信等的测试可由程序人员自行完成。集成测试由独立于开发团队的测试人员完成,他们依次从类(对象)的底层测试开始,进行组装测试、集成测试。测试人员依据的重要文档是需求模型和分析模型。测试模型就是一个正规的测试报告。
OOSE方法涉及整个软件生命周期,包括需求分析、设计、实现和测试等四个阶段。需求分析阶段主要定义潜在的角色(角色指使用系统的人和与系统相互作用的软、硬件环境),识别问题域中的对象和关系,基于需求规范说明和角色的需要发现用例,并详细描述用例。设计阶段一方面从用例的描述发现设计对象,描述对象的属性、行为和关联,把用例的行为分派给对象,另一方面基于需求分析阶段识别的领域对象和关系,识别类、属性和关系。
OOSE方法能够较好描述系统的需求,适合于商务处理方面的应用开发。