- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chapter2DomainModeling.
第二章 域建模
1.什么是域模型?
2.域建模中的10条指导方针
3.域建模的流程
4. 严重的几种域建模错误
1.什么是域模型?
“域”也称为“问题空间”或者“问题域”。“域”是指一个包含现实世界事物和概念的领域,这些事物和概念与所设计的系统将要解决的问题有关。
域模型不仅仅是项目中用到的所有术语的词汇表;它还图形化地表示了这些词汇之间的关系。实际上,域模型是一个简化的类图,域类(域对象)之间有关联和泛化的关系。
域建模的任务是找到代表那些事物与概念的对象,即“类”;以及类之间建立关系。
下图为域模型图的例子:
2.域建模中的10条指导方针
(1)Focus on Real-World Objects关注真实世界对象
创建域模型时,应该关注于问题域的真实世界对象;因为真实世界不像软件需求改变的那么频繁。
类有两种标记法,一种是包括类名、属性、操作的完整标记法;另外一种是只有类名的简单标记法。在域建模中我们采用简单标记法来代表域类(域对象)。
(2)Use Generalization (Is-a) and Aggregation (Has-a) Relationships
域模型中,95%的域类之间的关系可以使用泛化和聚合来描述:
(3)Limit Your Initial Domain Modeling Efforts to a Couple of Hours限制你致力于初始域建模的时间在几个小时内
花费大致两个小时的时间,就可以找到80%左右的域类;遗漏掉的20%可以在后面的用例建模和鲁棒性分析中进行查漏补缺。
(4)Organize Your Classes Around Key Abstractions in the Problem Domain在问题域中围绕关键抽象组织类
对真实世界进行抽象来组织类,使建立好的域模型能够更好地适应需求的改变。
(5)Don’t Mistake Your Domain Model for a Data Mode不要把域模型误认为数据模型
在数据模型中,有实体以及实体之间的联系,数据模型实际上定义了数据库。
(6)Don’t Confuse an Object with a Database Table不要把对象与数据库表混淆
类——数据库表,属性——数据库表字段,对象——数据库表中的记录
(7)Use the Domain Model As a Project Glossary用领域模型作为一个项目词汇表
域模型可作为一个项目词汇表来规范开发团队中所有成员对问题空间描述时有用统一的术语。
(8)Do Your Domain Model Before You Write Your Use Cases在撰写用例前创建域模型
在撰写用例时要使用域模型中这个项目词汇表中的名词。
(9)Don’t Expect Your Final Class Diagrams to Precisely Match Your Domain Model不要期望最后的类图完全匹配你的域模型
(10)Don’t Put Screens and Other GUI-Specific Classes on Your Domain Model不要把屏幕和其他GUI特性的类放在你的领域模型上
3.域建模的流程
(1)发现类
(2)建立泛化关系
(3)建立类间关联
(4)绘制分析层类图
(5)继续重复与细化
(1)发现类
从系统的需求集中,抽取名词和名词短语。
在备选类中进行筛选,排除那些不重要(因为他们是多余的或是无关紧要的)或不正确的术语(因为它们太模糊了,或者它们代表的事物或概念超出了模型范围,或者虽然以名词的措辞出现但表示行为)
The terms “User Account” and “Customer Account” are duplicates.
The word “Internet” is too generic and doesn’t add anything here.
The word “Password” is a too small to be an object and would be shown as a UI element, so we should remove it from the domain model.
(2)建立泛化关系
泛化关系是父类和子类的继承关系。
(3)建立类间关联
“关联”是两个类之间的静态关系。关联显示了类间的相关性,但它不是动作(即便它是动词短语)。
关联中有一对一关系、一对多关系、多对多关系;在UML中称为“多重性”。
“聚合”、“组合”都是一种关
您可能关注的文档
最近下载
- 输液港常见并发症及处理.pptx VIP
- 海天蒙德Hi驱动器说明书.pdf
- 运动场土方工程方案(3篇).docx VIP
- 基于单片机的土壤湿度检测及控制系统设计.pdf VIP
- 2024年四川省宜宾市【辅警协警】笔试真题(附答案).docx
- GB_T 311.4-2010绝缘配合 第4部分:电网绝缘配合及其模拟的计算导则.docx VIP
- 大学生职业生涯规划与就业指导(高校学生学习职业生涯规划与就业指导课程)全套教学课件.pptx
- 220kv变电站新建工程施工组织设计.docx VIP
- GB_T 311.2-2013绝缘配合 第2部分:使用导则.docx VIP
- 6.3三角形的中位线 课件(共22张PPT).pptx VIP
文档评论(0)