首页 > 代码库 > 分析模型

分析模型

面向对象分析产生的分析模型:

  1. 功能模型:把用户的功能性需求转化为开发人员和用户都能理解的一种表达方式,一般结果是用例模型
  2. 对象模型:通过对用例模型的分析,把系统分解成互相协作的分析类,一般情况下,通过类图和对象图来描述系统中的所有对象,对象的属性以及对象之间的相互关系,对象模型使系统的静态模型
  3. 动态模型:描述系统的动态的行为,通过顺序图和协作图来描述系统中对象之间的交互关系,解释所有对象是如何通过分工协作来实现每个具体用例,通过状态图来描述系统中单个对象的状态变化抢矿,已解释单个对象的动态行


面向对象分析和面向对象设计:

  1. 面向对象分析的输入时用户的需求,输出结果是简单的,理想化的分析模型,面向对象设计的输入是面向对象分析的结果输出是最终的设计模型
  2. 在侧重点上,面向对象分析侧重于理解问题,描述软件要做什么,而面向对象设计侧重于理解解决方案,描述软件要如何做
  3. 面向对象分析一般只考虑理想的设计,不关心技术和实现层面的细节,而面向对象设计需要得到更具体,更详尽,更接近于真实的代码的设计方案
  4. 在设计结果的描述方案上,面上对象分析阶段侧重于描述对象的行为,而面向对象设计阶段侧重于描述对象的属性和方法
  5. 面向对象分析只关注功能性需求,而面向对象设计即关注功能性需求也关注分功能性需求

实体类和软件类:

  1. 实体类是应用领域中的核心类,一般是从现实世界中的实体对象归纳和抽象出来的,用于长期保存系统中的信息,以及提供针对这些信息的相关处理行为。一般情况下,实体类的对象实例和应用系统本身有着相同的生命周期
  2. 边界类是从那些系统和边界进行交互的对象中归纳和抽象出来的,也就是说,边界类是系统内的对象和系统外的参与者的联系媒介,外界的消息只有通过边界类的对象实例才能发送给系统
  3. 控制类是实体类和边界类之间的润滑剂,是从控制对象中归纳和抽象出来的,用于协调系统内的边界类和实体类之间的交互,例如某个边界对象必须给多个实体对象发送消息,多个实体对象完成操作后,传回一个结果给边界对象,这时就可以使用控制类来协调这些实体对象和边界对象之间的交互关系
  4. 在一般的软件系统中,边界类和控制类的对象实例具有唯一性(如键盘和操作系统),从这个角度看,边界类和控制类更像是纯软件的东西,是为了协调实体类而添加的类,并不是系统想要处理的核心事务,因此将边界类和控制类统称为软件类

软件的大致归类(道法自然:面向对象设计实践指南):

  1. 第一类是包含用户界面的软件,软件功能由用户触发,软件负责完成用户希望执行的操作,称之为交互类型的软件
  2. 第二类软件不包含用户界面,接受来自用户或者系统的消息,然后以消息的形式把结果反馈给其他系统,称之为系统类型的软件

对于交互性的软件,边界类表现为用户界面,而实体类就是那些用来描述核心业务逻辑的类,控制类负责把界面的消息传递给相应的一个或多个类,并把处理结果返回给用户界面显示输出。(对应model-view-control)

在系统类型的软件中,由于软件本身没有用户界面,这是界面类就是和外界交换信息的对象,实体类使系统内部具体处理这些信息的对象,用户或其他系统的信息通过界面类传递给实体类,而控制类则位于边界类和实体类之间,协调信息的传送

分析模型