1、它提供了概念透视图。领域对象或概念类概念类之间的关联概念类的属性Software Engineering20092009银行领域模型的例子任何一个银行“账户”(这里没有详细分类)可能与多个“凭证”相关;具体而言,凭证可以是银行卡、存折、存单等形式;任何凭证都有明确的生效起始日和终止日;但各种凭证的凭证号却不是统一的,比如存折和信用卡有不同的编号格式;Software Engineering20092009领域模型与数据模型的区别领域模型不是数据模型。数据模型的实体对象是通过对数据模型的定义,来表示存储于某处的持久性数据。在领域模型中,并不会排除需求中没有明确要求记录其相关信息的类,也不会排除没
2、有属性的概念类。在领域模型中没有属性的概念类是合法的,或者在领域内充当单纯行为角色而不是信息角色的概念类也是有效的。Software Engineering20092009第十一章 领域模型11.1 过程模型11.2 领域模型概念11.3 创建过程创建过程Software Engineering20092009创建领域模型几个步骤:寻找(识别)类筛选类确定关系识别类的属性以当前迭代中的需求为界Software Engineering20092009类的识别领域对象类的最佳来源高级问题陈述、低级需求和问题空间的专业知识。寻找概念类的三条策略:1、重用和修改现有的模型这是首要、最佳且最简单的方法。
3、在许多领域中,都存在已发布的、绘制精细的领域模型和数据模型。这些领域包括库存、金融、卫生等等。2、使用分类列表表中包含大量值得考虑的常见类别,其中强调的是业务信息系统的需求。该准则还建议在分析时建立一些优先级。3、确定名词短语Software Engineering20092009分类列表举例Software Engineering20092009确定名词短语用例UC2.1:添加藏书基本流程:1.藏书者登记新购买图书的信息,包括书名、作者、译者、出版社、购买时间(系统自动给出录入时间)、价格、对图书的推荐信息、喜爱程度(默认情况下为3星,最高等级为5级,最低等级为1级),数量(默认为1本,极个
4、别情况会出现多本重复书籍)、类别(方便管理,可自己设定归类名称)。2.系统进行输入信息的有效性检查3.系统根据图书名称进行重复图书检查4.存储图书信息,并提示存储成功。5.系统重新显示初始添加藏书界面,用户可以进行下一本图书的录入过程。分支流程:1.a、如果藏书者录入信息有误 1、系统提示藏书者此信息 2、返回刚才的添加藏书界面,界面保持原来填写数据3.a、如果图书名称发生重复,系统将提示此信息,并给出相应图书列表,用户可以查阅图书的详细信息,同时要求用户对此情况进行处理。1、如果确认图书录入重复,则系统放弃对当前图书信息的存储2、如果只是同名不同书,则用户确认此情况后,系统对当前录入的图书信
5、息进行保存。Software Engineering20092009用例用例UC2.1:添加藏:基本流程:1.藏藏书者者登记新购买图书的信息的信息,包括书名名、作者作者、译者者、出版社出版社、购买时间(系系统自动给出录入入时间)、价格价格、对图书的推荐信息推荐信息、喜喜爱程度程度(默认情况下为3星,最高等级为5级,最低等级为1级),数量数量(默认为1本,极个别情况会出现多本重复书籍)、类别(方便管理,可自己设定归类名称)。2.系统进行输入信息的有效性检查3.系统根据图书名称名称进行重复图书检查4.存储图书信息,并提示存储成功。5.系统重新显示初始添加藏添加藏书界面界面,用户可以进行下一本图书的
6、录入过程。1.a、如果藏藏书者者录入信息有误 1、系统提示藏书者此信息 2、返回刚才的添加藏添加藏书界面界面,界面保持原来填写数据数据3.a、如果图书名名称发生重复,系统将提示此信息信息,并给出相应图书列表列表,用户可以查阅图书的详细信息信息,同时要求用户对此情况进行处理。Software Engineering20092009Software Engineering20092009筛选类冗余表示相同事物的两个名词就是冗余例如,“图书信息”和“图书的详细信息”,选择简洁的“图书信息”作为候选类。再如,用户能够被藏书者、拣书者完全涵盖,故删除用户;销售价格指名价格的含义,故删除价格不相关名词与问
7、题域没有关系它可能是有效类,但不在当前项目的范围之内。例如,“员工考绩标准”是个名词,但RP系统不会测量或跟踪员工的工作实绩;电话和传真不是系统所关注的内容。笼统名词的描述覆盖面太大,以至于在对某个业务进行描述时,不得不对该名词概念进行细分,单独拿出来根本不能说明问题。例如,“录入信息”包括“图书信息”和“藏书信息”两部分,在应用录入信息进行描述时,必须加以额外说明。属性实际上描述了另一个类的结构的名词是属性。Software Engineering20092009操作描述某个类职责的名词自身不是一个类,而是一个操作。例如,“税额计算”角色描述一个特定实体的状态或其分类的名词多半不是一个类。例
8、如,“最佳顾客”是一个顾客在一定时间下的状态事件描述特定时间频率的名词,通常表示了领域必须支持的一个动态元素。例如,“每星期打印一次发票”中的“星期”就不是候选类。实现结构描述硬件元素或算法的名词最好是删除或指派为某个类的操作。例如,“打印机”和“复利叶算法”。Software Engineering20092009Software Engineering20092009关系建立关联的方法显式的关联可以从用例中找到从事件表中找到关联的早期标志注意应该避免加入大量的关联Software Engineering20092009添加关联的注意事项立即给关联制定多重度,确保每个关联都有明确的多重度不对
9、用例和时序图进行研究,就将操作分配给类在确保已满足用户需求之前,对代码进行优化以提高重用性对于每个“部分(part-of)”关联,就使用聚集还是组合而争论不休未对问题空间进行建模之前,就假定一种具体的建模策略在领域类和关系型数据库表之间建立一对一的映射过早地执行“模式化”,这将导致根据同用户问题毫无关系的模式创建解决方案Software Engineering20092009整理后的结果Software Engineering20092009识别属性1、在什么情况下我们需要属性当需求建议或暗示需要记住信息时,引入属性2、获取属性的渠道查看用例文档,寻找事件流中的名词查看需求文档,发现系统要搜集
10、的信息若已经定义了数据库结构,则数据库表中的字段就是属性选择属性时应考虑的因素只有系统感兴趣的特征才包含在类的属性中分析系统建模的目的,也会影响属性的选取Software Engineering200920093、每条属性都能够回溯到用户的需求不要盲目添加不必要的属性,造成系统混乱。4、类的属性要适当。若某个类的属性太多,则可考虑分解成更小的类;若某个类的属性太少,可考虑将类进行合并。Software Engineering20092009完成分析模型Software Engineering20092009总结要求要求具体内容具体内容了解了解理解理解掌握掌握1 1、领域模型的作用、领域模型的作用2 2、构建领域模型的过程、构建领域模型的过程
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1