欢迎来到天天文库
浏览记录
ID:11192212
大小:946.00 KB
页数:54页
时间:2018-07-10
《领域模型驱动的开发方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、领域模型驱动的开发方法1、为什么要引入领域模型2、如何创建领域模型3、模型驱动设计领域模型3需求调研业务流程需求分析概要设计详细设计架构设计界面原型编码详细设计J2EEWEB应用系统的目前常用的开发模式用例制度表格数据库设计编码实现DataBase问题?从界面原型到表现层代码从领域模型和架构蓝图到业务逻辑代码CV×MDB5需求调研业务流程需求分析概要设计详细设计架构设计界面原型编码详细设计J2EEWEB应用系统-领域模型的引入用例制度表格数据库设计编码实现DataBase领域模型从业务级需求推导出系统实现级需求领域模型的引入模型的3个用途模型与实现绑定没有模型的指导,复杂
2、项目将可能陷入泥潭如果模型没有映射到设计与实现,其价值何在模型是团队成员使用的语言可以作为分析设计讨论的基础模型用来提炼与积累知识用户的需求也许是不变的,往往变化的是我们对需求的理解软件的核心软件的核心为用户解决领域相关问题的能力软件系统分析人员只有学习业务领域知识,提高建模技巧,才能处理复杂问题化繁为简开发一个清晰易懂的模型来简洁的解决复杂的业务领域问题,并且模型能够明显的指导编码实现1、为什么要引入领域模型2、如何创建领域模型3、模型驱动设计领域模型领域模型的内容领域模型的内容1以标识作为对象的基本定义有意义的标识,例如:人的身份证号码无意义的标识,例如:同一账号的两
3、笔等额的存款交易都有一个计算机产生的交易号实体可以有行为,例如:新开账户、取款都是是账户实体的一个行为,这些行为是业务领域的实际操作实体识别实体时一个常犯的错误-类还是属性?目的地Destination是航班Flight的一个属性呢,还是一个单独的类机场Airport?领域模型的内容领域模型的内容2指为客户做什么,代表一种行为,而不是一个实体,是一个动词而不是一个名词例如:将资金从一个账户转移到另一个账户的功能是一个领域服务,包含了明显的业务规则。转账的服务不能属于任何一个账户对象,因为操作包含两个账号和一些全局规则。一般作为接口提供操作服务创建领域模型完善模型CRC分析
4、寻找类名词/动词分析寻找类根据需求(现实世界)建立词汇表,补充说明或者用例从词汇表、用例中发现名词和概念,作为业务领域的候选实体类名词暗示类或者类属性,动词暗示职责或者类的操作类、职责、协作方第一步:使用头脑风暴法收集信息第二步:分析信息在实体类之间添加必要的关联来明确彼此关系添加实现需求的必要属性领域模型的开发是一个迭代的过程创建,精化1,精化2……建模人员要关注编码实现过程,和编码人员紧密合作,从而改进模型创建领域模型(例)示例:根据下面描述绘制类图这是一个“碟片出租店”使用的程序,它将用于计算每一位顾客的消费金额并打印报表。操作者告诉程序:顾客租了哪些影片、租期多长
5、,程序便根据租期和影片类型算出其消费金额。影片分三类:普通片、儿童片和新片。除了计算消费金额,还要为常客计算累计点数;累计点数会随着“租片种类是否为新片”而有所不同。这是一个“碟片出租店”使用的程序,它将用于计算每一位顾客的消费金额并打印报表。操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租期和影片类型算出其消费金额。影片分三类:普通片、儿童片和新片。除了计算消费金额,还要为常客计算累计点数;累计点数会随着“租片种类是否为新片”而有所不同。创建领域模型(例)碟片出租店程序消费金额报表操作者顾客影片租期影片类型普通片儿童片新片累积点数这是一个“碟片出租店”使用的程序
6、,它将用于计算每一位顾客的消费金额并打印报表。操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租期和影片类型算出其消费金额。影片分三类:普通片、儿童片和新片。除了计算消费金额,还要为常客计算累计点数;累计点数会随着“租片种类是否为新片”而有所不同。创建领域模型(例)碟片出租店程序消费金额报表操作者顾客影片租期影片类型普通片儿童片新片累积点数在系统外系统本身应该是每次“交易”属性类!在系统外在系统外,但需记录,类!类!属性影片的属性类!类!类!顾客的属性报表顾客影片普通片儿童片交易新片创建领域模型(类和类之间的关系)创建领域模型-属性、方法实体属性的练习词汇:Aver
7、agesalesvolume——平均销售量Productcategory——产品类别Salescontact——销售的联系方式Salesrepresentative——销售代表建议领域模型-类之间的关系聚合关系(Aggregation):是关联关系的一种,是强的关联关系。合成关系(Composition):是关联关系的一种,是比聚合关系强的关系关联关系(Association)泛化关系(Generalization):继承依赖关系(Dependency):是类与类之间的连接,依赖总是单向的聚合聚合强化了类间的联系给实现传递细节
此文档下载收益归作者所有