系统域建模技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三种分析类的UML的图示(从而解决如何表达的问题) UML的图示 2、三种分析类的UML的图示(从而解决如何表达的问题)
天边的太阳 棒槌头 咬住尾巴的蛇
3、有四个规则对应上面的三种分析类对象间的交互
(1)用例的参与者只能与边界对象交互 (2)边界对象只能与控制对象和动作者交互(即不能直接访问 边界对象只能与控制对象和动作者交互( 实体对象) 实体对象) 基于MVC MVC, 基于MVC,V与M不直接接触
Rose中的选择方法 中的选择方法---在类的Stereotype Stereotype选择项目中进行 5、在Rose中的选择方法---在类的Stereotype选择项目中进行
选择
6、网上银行系统中的各个主要的分析类示例 (1)各个分析类 边界类 用户帐号表 单、转帐信息表 单、存取钱表单 控制类 开户、销户、 开户、销户、 转帐、存取钱、 转帐、存取钱、 修改密码
(2)建立域模型的好处
否则我们后面的类图 如何产生? 如何产生?
一方面能够从现实的问题域中找到最有代表性的概念对象 另一方面并能够发现出其中的类和类之间的关系, 另一方面并能够发现出其中的类和类之间的关系,因为所 捕捉出的类是反馈问题域本质内容的信息
4、与建立域模型相关的一些知识 (1)人门知识
识别领域类的策略-------下面提供了两种识别领域类的 (2)识别领域类的策略----下面提供了两种识别领域类的 技巧
过程域对象:代表应用中的业务逻辑或流程。 (2)过程域对象:代表应用中的业务逻辑或流程。它通常依
赖于实体域对象。 赖于实体域对象。
事件域对象:代表应用中的一些事件,例如异常、 (3)事件域对象:代表应用中的一些事件,例如异常、警告
或超时等。 或超时等。
为什么要进行“问题域” 3、为什么要进行“问题域”建模 (1)必要性
您熟悉
控制对象(控制类与业务过程相关, (2)控制对象(控制类与业务过程相关,它们控制整个业 务的流程和执行次序) 务的流程和执行次序)
实体对象(它一个业务级别的分析类,例如, (3)实体对象(它一个业务级别的分析类,例如,银行 系统中的银行顾客、帐户) 系统中的银行顾客、帐户)
所应该注意的是: 所应该注意的是: 注意的是 控制类和边界类都是面向技术实现的类, 控制类和边界类都是面向技术实现的类,而不是面 向业务的类,而只有实体类才是面向业务的类。 向业务的类,而只有实体类才是面向业务的类。
建模是开发优秀软件所有活动中的核心部分,其目的是: 建模是开发优秀软件所有活动中的核心部分,其目的是: 把所要设计的结构和系统行为沟通起来, 把所要设计的结构和系统行为沟通起来,并对系统体系结 构进行可视化的控制。 构进行可视化的控制。 建模同时也是为了更好地理解系统, 建模同时也是为了更好地理解系统,并经常提供简化和复 用的机会,同时,建模还可以管理风险。 用的机会,同时,建模还可以管理风险。
现实世界中系统所要解决问题的领域为“问题域” 现实世界中系统所要解决问题的领域为“问题域”,如 银行业务”属于“银行的问题域” “银行业务”属于“银行的问题域”。 建模是开发优秀软件所有活动中的核心部分,其目的是: 建模是开发优秀软件所有活动中的核心部分,其目的是: 把所要设计的结构和系统行为沟通起来, 把所要设计的结构和系统行为沟通起来,并对系统体系结 构进行可视化的控制 。 建模是为了更好的理解正在开发的系统, 建模是为了更好的理解正在开发的系统,并经常提供简化 和复用的机会,同时,建模还可以管理风险。 和复用的机会,同时,建模还可以管理风险。 我们设计一个系统,总是希望它能解决一些问题, 我们设计一个系统,总是希望它能解决一些问题,这些问 题总是会映射到现实问题和概念。对这些问题进行归纳、 题总是会映射到现实问题和概念。对这些问题进行归纳、 分析的过程就是域建模(这个域,指的就是问题域) 分析的过程就是域建模(这个域,指的就是问题域)
(1)ATM系统自动售票系统的功能性需求 ATM系统自动售票系统的功能性需求 ATM系统自动售票系统的非功能性需求 (2)ATM系统自动售票系统的非功能性需求 找出名词短语-----------域模型 (3)找出名词短语------域模型 (4)发现出类及类之间的关系
本讲的简要回顾
1、子曰:“学而不思则罔,思而不学则殆。” 子曰: 学而不思则罔,思而不学则殆。 学而时习之” “学而时习之” 2、子曰:“知之者不如好之者,好之者不如乐之者” 子曰: 知之者不如好之者,好之者不如乐之者”
子曰: 三人行,必有我师焉” 3、子曰:“三人行,必有我师焉” 子曰: 我非生而知之者,好古,敏以求之者也” 4、子曰:“我非生而知之者,好古,敏以求之者也”
7、建模实例二:某一网站域模型的建立例 建模实例二:
(1)用户所罗列出的一些需求 (2)需求分析 (3)找出名词短语------域模型 找出名词短语------域模型 -----(4)发现出类及类之间的关系
8、建模实例三 下面给出“铁路呼叫中心” 下面给出“铁路呼叫中心”项目的功能性和非功能性 的需求,从而获得“问题域”中的相关的类; 的需求,从而获得“问题域”中的相关的类;
(2)域建模---对问题域中的各个问题进行建模 域建模---对问题域中的各个问题进行建模 ---
2、域对象的类型
ຫໍສະໝຸດ Baidu (1)实体域对象
代表人、地点、 代表人、地点、事物或概念等 通常可以把业务领域中的名词,例如客户、订单、商品, 通常可以把业务领域中的名词,例如客户、订单、商品, 作为实体域对象; 作为实体域对象;
实体类:用户、 实体类:用户、管 理员、帐户、 理员、帐户、人民币 帐户、 帐户、美元帐户 (2)基于前面的各个分 析类所实现的用户开 户的业务分析的类图
二、域模型
1、什么是“问题域”和“域建模” 什么是“问题域” 域建模” 我们在处理问题时需要 (1)问题域 建立数学模型
如金融、 如金融、财务 等
(3)实体对象只能与控制对象交互 控制对象可以和边界对象交互,也可以和实体交互, (4)控制对象可以和边界对象交互,也可以和实体交互,但是 不能和动作者交互
基于MVC, 基于MVC,用户不直 MVC 接与控制器接触
4、区分分析类与设计类的不同 所谓分析类:因为它是在建模过程中所产生的, (1)所谓分析类:因为它是在建模过程中所产生的,因此是和
可以“混合”应用两种 可以“混合”应用两种 识别领域类的识别方法
5、如何通过域模型来发现出类及其关系 基本过程如下, 基本过程如下,详细说明请见文档 收集和描述我们的用例 对用例进行分析 根据分析的结果找出我们的各个分析类 对所找出的各个分析类,描述出这些类的职责( 对所找出的各个分析类,描述出这些类的职责(只有 具有一定的职责的类,才是有效的类) 具有一定的职责的类,才是有效的类) 建立分析类之间的关系(建立静态模型) 建立分析类之间的关系(建立静态模型) 确认分析类的行为(建立动态模型) 确认分析类的行为(建立动态模型) 描述并定义出属性和方法(逐步转向设计环节) 描述并定义出属性和方法(逐步转向设计环节)
(1)呼叫中心项目的功能性需求 (2)呼叫中心项目的非功能性的需求 找出名词短语-----------域模型 (3)找出名词短语------域模型 (4)发现出类及类之间的关系
9、建模实例四 下面给出“网上订票” 下面给出“网上订票”需求项目的功能性和非功能性 的需求,从而获得“问题域”中的相关的类; 的需求,从而获得“问题域”中的相关的类;
系统域建模技术
在本讲您能了解如下知识点
UML中的三种分析类 UML中的三种分析类 区分分析类与设计类的不同 什么是“问题域” 域建模” 什么是“问题域”和“域建模” 域模型及域建模 如何通过域模型发现出类及其关系 建立域模型的各种示例
一、UML中的三种分析类 UML中的三种分析类
UML建模中所涉及的各种分析类 对象) 建模中所涉及的各种分析类( 1、UML建模中所涉及的各种分析类(对象) MVC吗 MVC吗? 边界对象(边界类在系统与外界之间, (1)边界对象(边界类在系统与外界之间,为它们交换 各种信息与事件。边界类处理软件系统的输入与输出) 各种信息与事件。边界类处理软件系统的输入与输出)
语言(或者实现)无关的类;并且不需要定义属性与方法。 语言(或者实现)无关的类;并且不需要定义属性与方法。
(2)设计类就具有特定的语言特点
比如Java/C++类等,并且可以定义成员; 比如Java/C++类等,并且可以定义成员;分析类和设计类没 Java/C++类等 有一一对应关系----分析类是对设计类的进一步抽象和简化。 ----分析类是对设计类的进一步抽象和简化 有一一对应关系----分析类是对设计类的进一步抽象和简化。
使用领域类分类列表。 使用领域类分类列表。 识别名词短语。 识别名词短语。
(3)使用领域类分类列表方法来获得领域类
(4)根据名词短语识别找出领域类
有人提出了用名词短语分析找出领域类的方法, 有人提出了用名词短语分析找出领域类的方法,然后把它 们作为候选的领域类或者属性; 们作为候选的领域类或者属性; 不过我们在使用这种方法必须十分小心-----从名词机械的 不过我们在使用这种方法必须十分小心-----从名词机械的 ----映射肯定是不行的, 映射肯定是不行的,因为自然语言中的单词本来就是模棱 两可的。 两可的。
6、建模实例一 基本过程如下, 基本过程如下,详细说明请见文档 (1)收集和描述我们的用例 找出我们的各个分析类-------实体类 (2)找出我们的各个分析类----实体类 找出我们的各个分析类-------补充控制类和边界类 (3)找出我们的各个分析类----补充控制类和边界类 其次补充和完善前面的用例描述, (4)其次补充和完善前面的用例描述,进一步修改前面 的问题域, 的问题域,以获得更清晰的需求描述 (5)建立分析类之间的关系 最后,设计出本问题例的类的分析图(关系说明--(6)最后,设计出本问题例的类的分析图(关系说明--静态分析) -静态分析) (7)确认分析类的行为 (8)设计出类中的属性
(1)网上订票项目的功能性需求 (2)网上订票项目的非功能性需求 找出名词短语-----------域模型 (3)找出名词短语------域模型 (4)发现出类及类之间的关系
10、实例五:ATM系统自动售票系统,从而获得“问题域” 10、实例五:ATM系统自动售票系统,从而获得“问题域” 系统自动售票系统 中的相关的类; 中的相关的类;