




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-82w细化阶段细化阶段w领域模型领域模型n领域模型领域模型n概念类概念类n关联关联n属性属性w系统顺序图系统顺序图w契约契约上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-84w一般,细化阶段由两到四个迭代构成;每一个迭一般,细化阶段由两到四个迭代构成;每一个迭代持续的时间建议在两到六周之间代持续的时间建议在两到六周之间w该阶段的主要任务包括构建核心架构,解决高风该阶段的主要任
2、务包括构建核心架构,解决高风险问题,完成绝大部分需求的定义,并估计总的险问题,完成绝大部分需求的定义,并估计总的时间和资源时间和资源上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-85w保证架构,需求和计划足够稳定,风险被充分规保证架构,需求和计划足够稳定,风险被充分规避避w确定和解决项目中所有与架构密切相关的风险确定和解决项目中所有与架构密切相关的风险w从与架构密切相关的场景中确定一个基准体系架从与架构密切相关的场景中确定一个基准体系架构构w产生一个达到产品级质量水准的演化性原型,也产生一个达到产品级质量水准的演化性原型,也可以是一个或更多个探索型可以是一个或更多个
3、探索型抛弃型原型抛弃型原型w能够展示基准的体系架构以合理的价格和合适的能够展示基准的体系架构以合理的价格和合适的时间支持系统需求时间支持系统需求 w建立一个支持环境建立一个支持环境上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-86w尽快定义和验证体系架构,并确定体系架构基线尽快定义和验证体系架构,并确定体系架构基线w细化远景细化远景w为构造阶段建立详细的迭代计划并建立基线为构造阶段建立详细的迭代计划并建立基线w细化开发用例并将其部署到开发环境中细化开发用例并将其部署到开发环境中w细化体系架构并选择组件细化体系架构并选择组件上海交通大学计算机科学与工程系上海交通大学计
4、算机科学与工程系2022-3-87w用一句话表达细化用一句话表达细化n构造核心体系架构,解决高风险,定义绝大部分需求,并估计构造核心体系架构,解决高风险,定义绝大部分需求,并估计总体计划和资源总体计划和资源w关键思想和实践关键思想和实践n实行短时间定量、风险驱动的迭代实行短时间定量、风险驱动的迭代n及早开始编程及早开始编程n对架构的核心和风险部分进行适应性设计,实现和测试对架构的核心和风险部分进行适应性设计,实现和测试n尽早,频繁,实际的测试尽早,频繁,实际的测试n基于来自测试,用户,开发者的反馈进行调整基于来自测试,用户,开发者的反馈进行调整n通过一系列讨论会,详细编写大部分用例和其他需求,
5、每个细通过一系列讨论会,详细编写大部分用例和其他需求,每个细化迭代举行一次化迭代举行一次上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-88w风险风险n技术复杂性技术复杂性n其他因素其他因素w覆盖性覆盖性n在早期迭代中,系统中主要的部分都有所涉及在早期迭代中,系统中主要的部分都有所涉及w关键性关键性n具有高业务价值的功能具有高业务价值的功能w在每个迭代前将用例和特征进行排序在每个迭代前将用例和特征进行排序上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-891Use cases andfeature work areallocated to a
6、niteration.Use CaseProcess Sale23. . .Features:Logging, . . .1A use case or feature isoften too complex tocomplete in one shortiteration.Therefore, different partsor scenarios must beallocated to differentiterations.Use CaseProcess Sale23. . .Use CaseProcess SaleUse CaseProcess SaleUse CaseProcess R
7、entalsFeature:Logging上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-810w对于对于NextGen POS应用应用n对对Process Sale用例实现其基本的、最关键的场景用例实现其基本的、最关键的场景 : entering items 和和 receiving a cash paymentn为了支持迭代中的初始化需求必须实现为了支持迭代中的初始化需求必须实现Start Up 用例用例n在该阶段,并不处理那些复杂的和有趣的功能,而只在该阶段,并不处理那些复杂的和有趣的功能,而只是考虑容易实现的场景,并通过设计和实现来加以支是考虑容易实现的场景,
8、并通过设计和实现来加以支持持n也不考虑外部服务的协同,比如计税器或者产品数据也不考虑外部服务的协同,比如计税器或者产品数据库库n不考虑应用复杂的计价规则不考虑应用复杂的计价规则上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-811w选课系统选课系统w项目的目标是将以前的选课系统用新技术加以改项目的目标是将以前的选课系统用新技术加以改造,使得老师和学生可以通过客户端在线访问造,使得老师和学生可以通过客户端在线访问上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-812问题问题The outdated and largely manual stud
9、ent registration process at Wylie College影响者影响者Students, professors, and College administration.造成造成A slow and costly process combined with dissatisfied students and professors.成功的解决方案成功的解决方案Improve the image of the College, attract more students, and streamline administrative registration functions
10、.上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-813ForWylie College students, professors, and the course registrarWhoAttend, teach, or administer college coursesThe Course Registration SystemIs a toolThatEnables online course registration and access to course and grade informationUnlikeThe existing outdated m
11、ainframe registration systemOur productProvides up-to-date information on all courses, registrations, teachers, and grades to all users from any PC connected via the College LAN or internet.上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-814上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-815PhaseNo. of IterationsStartEnd
12、Inception Phase1Week 1Week 8Elaboration Phase1Week 8Week 15Construction Phase3Week 15Week 31Transition Phase2Week 25Week 32上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-816PhaseIterationDescriptionAssociated MilestonesRisks AddressedInception PhasePreliminary IterationDefines business model, product requirem
13、ents, Software Development Plan, and business case.Business Case ReviewClarifies user requirements up front. Develops realistic Software Development Plans and scope.Determines feasibility of project from a business point of view.上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-817wE1迭代将对迭代将对Release1.0中所有用例,中所有用
14、例,Release2.0中中的高风险用例进行分析和设计。通过开发架构原的高风险用例进行分析和设计。通过开发架构原型型 验证验证Release1.0所需要的架构的可行性和性能所需要的架构的可行性和性能wRelease 1.0计划包含的特征计划包含的特征:oLogon oClose Registration oRegister for Courses oInterface to Course Catalog Database oInterface to Finance System oMaintain Student Information oMaintain Professor Informat
15、ion 上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-819w依据迭代需求,确定相关的概念类依据迭代需求,确定相关的概念类w创建初步的领域模型创建初步的领域模型w为模型建立适当的属性与关联为模型建立适当的属性与关联上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-820w领域模型是对真实世界中概念类的表示,而不是领域模型是对真实世界中概念类的表示,而不是软件对象的表示。它不是用来描述软件类、软件软件对象的表示。它不是用来描述软件类、软件架构领域层或有职责软件对象的一组图。架构领域层或
16、有职责软件对象的一组图。w领域模型用一套类图来表示,这些类没有操作。领域模型用一套类图来表示,这些类没有操作。它可以显示:它可以显示:n领域对象或者概念类领域对象或者概念类n概念类之间的关联概念类之间的关联n概念类的属性概念类的属性上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-821RegisterItemStoreaddressnameSaledatetimePaymentamountSalesLineItemquantityStocked-in*Houses1.*Contained-in1.*Records-sale-of0.1Paid-by11111111Ca
17、ptured-on conceptor domainobjectassociationattributes上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-822Saledatetimevisualization of a real-world concept in thedomain of interestit is a not a picture of asoftware classSalesDatabasesoftware artifact; not partof domain modelavoidsoftware class; not partof domain
18、 modelSaledatetimeprint()avoid上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-823w避免瀑布思维倾向,为完成详尽或避免瀑布思维倾向,为完成详尽或“正确正确”的领的领域模型而进行大量建模工作。这些方式都应避免,域模型而进行大量建模工作。这些方式都应避免,并且这种过量的建模工作反而会导致分析停滞,并且这种过量的建模工作反而会导致分析停滞,这种调查几乎不会有什么回报。这种调查几乎不会有什么回报。上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-824w它是一种可视化语言,传达了真实世界中的概念它是一种可视化语言,传达了
19、真实世界中的概念或者该领域中的概念类或者该领域中的概念类上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-825w概念类可以由符号,内涵和它的外延来表示概念类可以由符号,内涵和它的外延来表示n符号符号-代表概念类的词或者图像代表概念类的词或者图像n内涵内涵-概念类的定义概念类的定义n外延外延-概念类应用的例子集合概念类应用的例子集合上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-826Saledatetime概念符号“sale表示购买交易的事件,具有日期和时间”概念内涵sale-1sale-3sale-2sale-4概念外延上海交通大学计算机科
20、学与工程系上海交通大学计算机科学与工程系2022-3-827w分而治之分而治之-处理复杂性的手段处理复杂性的手段w面向对象方法与结构化分析方法的核心区别在于:面向对象方法与结构化分析方法的核心区别在于:是由概念类(对象)分解的而不是功能分解的是由概念类(对象)分解的而不是功能分解的上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-828StoreRegisterSale上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-829w在我们所关心的领域,我们的目标是针对感兴趣在我们所关心的领域,我们的目标是针对感兴趣或者有意义的概念类建立领域模型或者有意
21、义的概念类建立领域模型w只针对目前正在设计的场景只针对目前正在设计的场景w指南指南: 对领域模型而言,建立较多的细粒度的概对领域模型而言,建立较多的细粒度的概念类要比粗略的建模来得好念类要比粗略的建模来得好w可以有没有属性的概念类或者仅仅担任行为角色可以有没有属性的概念类或者仅仅担任行为角色的概念类的概念类上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-830w重用和修改现有模型重用和修改现有模型w采用概念类类别列表采用概念类类别列表w确定名词确定名词上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-831w某些公共类别某些公共类别w例如例如n
22、物理的或者实际的对象物理的或者实际的对象n地点地点n组织组织nwSee PP.104概念类种类概念类种类例子例子Records of finance, work, contracts, legal mattersReceipt, Ledger(分类帐分类帐), ExploymentContract, MaintenaceLogFinancial instruments and servicesLineOfCredit StockManuals, documents, reference papers, booksDailyPriceChangeList, RepairManual上海交通大学计
23、算机科学与工程系上海交通大学计算机科学与工程系2022-3-832w为了找到问题域中的公共词汇,可以考虑从需求为了找到问题域中的公共词汇,可以考虑从需求文档中以及开发团队成员的知识中来找词汇。注文档中以及开发团队成员的知识中来找词汇。注意力要放在下列方面意力要放在下列方面: n业务对象业务对象n真实世界中的对象真实世界中的对象n事件事件上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-833w在一个存货管理的系统中,我们将关注库存中的在一个存货管理的系统中,我们将关注库存中的物品以及它们的存储位置物品以及它们的存储位置w在该系统中一个事件就是将货品放到仓库中。对在该系统
24、中一个事件就是将货品放到仓库中。对于每一次运货,系统必须记住搬运的于每一次运货,系统必须记住搬运的时间时间,谁谁接接收了货品,收了货品,什么货品什么货品,每一种的,每一种的数量数量有多少有多少上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-834w对于对于Process Sale的简化情形的简化情形nRegister Product SpecificationnItem SalesLineItemnStore CashiernSale CustomernPayment ManagernProductCatalog上海交通大学计算机科学与工程系上海交通大学计算机科学与工
25、程系2022-3-835w收据是一次销售的报告。但是它显示的信息实际收据是一次销售的报告。但是它显示的信息实际上已经存在了,这是我们可以排除它的理由。上已经存在了,这是我们可以排除它的理由。w但是收据又有特殊的作用,在我们退货时,我们但是收据又有特殊的作用,在我们退货时,我们需要收据作为凭据需要收据作为凭据w因此,是否需要将依据你考虑的是哪一个用例来因此,是否需要将依据你考虑的是哪一个用例来定定上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-836w采用概念类目录列表和从需求中采用名词识别法采用概念类目录列表和从需求中采用名词识别法将所有的备选概念类列出将所有的备选概
26、念类列出w在那些需要将关系信息保存的地方添加关联在那些需要将关系信息保存的地方添加关联w依据信息需求添加必要的属性依据信息需求添加必要的属性上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-837w采用实际地名采用实际地名w将无关的特征去掉将无关的特征去掉w不要添加不存在的东西不要添加不存在的东西上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-838w一个通常会犯的错误一个通常会犯的错误w如果我们不是将概念类如果我们不是将概念类X仅仅看作是实际生活中仅仅看作是实际生活中的数字或者文字,的数字或者文字,X就可能是概念类,而不是属就可能是概念类,而
27、不是属性性SaleStorephoneNumberSalestoreor. ?FlightAirportnameFlightdestinationor. ?如果有疑问,可以将它列为概念类上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-839w在我们的生活中经常用相近的概念来表示同一件在我们的生活中经常用相近的概念来表示同一件事情事情POSTRegisteror?similar concepts withdifferent namesSaleRecords 1*SaleRecords 1*选哪一个?上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3
28、-840wPOST 从某种角度上看,是一个面向实现的概念,从某种角度上看,是一个面向实现的概念,所以它不合适,但是它有助于我们之间的交流所以它不合适,但是它有助于我们之间的交流wRegister 是各种终端的抽象,无论是是各种终端的抽象,无论是POST还是还是人手工人手工.w所以它的选择依据于所以它的选择依据于.w你的选择你的选择上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-841w许多事物是人工的,也就是说,它们是被造出来许多事物是人工的,也就是说,它们是被造出来的的w为了对它们建模,我们需要更多的抽象为了对它们建模,我们需要更多的抽象w例如例如n电信电信: Me
29、ssage, Connection, Port, Dialog, Route, Protocoln中间件中间件: Service, Transaction上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-842w为什么为什么?n真实的世界真实的世界 软件世界软件世界w例子例子n在一个商店中在一个商店中, 每一个商品都有价格每一个商品都有价格, 描述和其他属性描述和其他属性n如果我们为每一个商品创建一个包含所有信息的对象如果我们为每一个商品创建一个包含所有信息的对象不必要的冗余不必要的冗余删除商品对象意味着丢失所有信息删除商品对象意味着丢失所有信息上海交通大学计算机科学与
30、工程系上海交通大学计算机科学与工程系2022-3-843w创建单独的说明性或者描述性类创建单独的说明性或者描述性类Itemdescriptionpriceserial numberitemIDProductSpecificationdescriptionpriceitemIDItemserial numberDescribesBetterWorse1*上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-844w描述性概念类描述性概念类建模指南建模指南n无论目前是否存在实际的商品或者服务实例,总是存无论目前是否存在实际的商品或者服务实例,总是存在商品或者服务的描述在商品或者
31、服务的描述n如果把信息和删除的东西不正确的关联起来,删除这如果把信息和删除的东西不正确的关联起来,删除这些东西后就会丢失这些信息些东西后就会丢失这些信息n通过描述性概念类减少了冗余信息或者复制的信息通过描述性概念类减少了冗余信息或者复制的信息上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-845w描述性类可以加在描述性类可以加在n商品商品n产品产品n服务服务n上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-846w取消某个航班并取消某个航班并不丢失航班信息不丢失航班信息WorseFlightdatetimeFlightDescriptionn
32、umberAirportnameDescribes-flights-toDescribed-byFlightdatenumbertimeAirportnameFlies-toBetter1*1*1*上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-847wUML 是用来表示各种基本图的语言是用来表示各种基本图的语言.wUML 可以用于可以用于n核心或者概念视图核心或者概念视图n描述视图描述视图n实现视图实现视图上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-848PaymentamountSaledatetimePays-forPaymenta
33、mount: MoneygetBalance(): Money. . .Saledate: DatestartTime: TimegetTotal(): Money. . .Pays-forUP Domain ModelRaw UML class diagramnotation used in anessential modelvisualizing real-worldconcepts.UP Design ModelRaw UML class diagramnotation used in aspecification modelvisualizing softwarecomponents.
34、1111上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-849w与类相关的术语与类相关的术语n概念类概念类n软件类软件类n设计类设计类n实现类实现类n类类上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-850PaymentamountSaledatetimePays-forPaymentamount: MoneygetBalance(): MoneySaledate: DatestartTime: TimegetTotal(): Money. . .Pays-forUP Domain ModelStakeholders view of the
35、 noteworthy concepts in the domain.UP Design ModelThe object-oriented developer has taken inspiration from the real world domainin creating software classes.Therefore, the representational gap between how stakeholders conceive thedomain, and its representation in software, has been lowered.1111inspi
36、resobjectsandnames in上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-851wNextGen POS初步的领域模型初步的领域模型StoreRegisterSaleItemPaymentSalesLineItemCashierCustomerManagerProductCatalogProductSpecification上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-852w初始化阶段一般不建议构造领域模型初始化阶段一般不建议构造领域模型w领域模型主要是在细化阶段的迭代中构建的,此领域模型主要是在细化阶段的迭代中构建的,此
37、时我们需要理解重要的概念,并把某些在设计中时我们需要理解重要的概念,并把某些在设计中映射为软件类映射为软件类上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-853w业务对象模型业务对象模型-描述整个业务的企业模型,用以描述整个业务的企业模型,用以支持业务过程重组或者再工程支持业务过程重组或者再工程w领域模型只是业务对象模型的一个子集领域模型只是业务对象模型的一个子集上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-854GlossarySoftwareArchitecture Doc.DomainModelRequirementsProject
38、ManagementBusinessModelingDesignSample UP ArtifactsPartial artifacts,refined in eachiteration.TestTestPlanSoftwareDev. Plan. . .Use-Case Modeltextusecases:Systemfoo( x )systemoperationcontractssystemsequencediagramsterms, conceptsattributes,associationsstate changes indomain objects,attributes,assoc
39、iationselaboration ofsome terms inthe domainmodelsoftware classes inthe domain layer ofthe design takeinspiration from thenames, attributes,and associations inthe domain modelbar( y )usecasediagrams*Design ModelEnvironmentDevelopmentCase上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系202
40、2-3-856w在领域模型中识别关联在领域模型中识别关联w区别那些必须知道的关联和仅仅为了理解的关联区别那些必须知道的关联和仅仅为了理解的关联上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-857w关联时类型(更精确地说,是这些类的实例)之关联时类型(更精确地说,是这些类的实例)之间的关系,表示有意义和值得关注的连接间的关系,表示有意义和值得关注的连接SaleRegisterRecords-current11association上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-858w世界万物都是相关的世界万物都是相关的w如果我们有如果我们有
41、n 个类,将会有个类,将会有n(n-1)个关联个关联w我们只添加那些我们只添加那些:n如果存在需要保持一段时间的关系,将这种语义表示如果存在需要保持一段时间的关系,将这种语义表示为关联(为关联(“需要记住需要记住”的关联)的关联)n可以从常见关联列表中派生的关联可以从常见关联列表中派生的关联上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-859SaleRegisterRecords-current 11association namemultiplicity-阅读方向箭头-没有其他含义,只是表示阅读关联标记的方向-通常省略上海交通大学计算机科学与工程系上海交通大学计算
42、机科学与工程系2022-3-860w关联可以是单向的,也可以是双向的关联可以是单向的,也可以是双向的w给定一个订单,我们可以找到与该订单相关的客户,相给定一个订单,我们可以找到与该订单相关的客户,相反如果给定一个客户,不能够找到订单反如果给定一个客户,不能够找到订单OrderCustomer*1上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-861w关联的每一端称为一个角色关联的每一端称为一个角色对象类对象类限定符关联对象类多重性角色名:类限定符角色名:类多重性关联名nameMultiplicity expressionnavigability上海交通大学计算机科学与
43、工程系上海交通大学计算机科学与工程系2022-3-862w多重性多重性Multiplicity 定义了类定义了类A有多少实例可以和有多少实例可以和类类B的一个实例关联的一个实例关联ItemStoreStocks*multiplicity of the role1上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-863zero or more;manyone or moreone to 40exactly 5TTTT*1.*1.405T3, 5, 8exactly 3, 5, or 8上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-864w多重性
44、的指标是在特定的时刻(而不是在某个时多重性的指标是在特定的时刻(而不是在某个时间跨度内)有效关联的实例数量。间跨度内)有效关联的实例数量。w如何定义多重性的值如何定义多重性的值?ItemStoreStocks 1or 0.1*上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-865StoreContainsPersonAirlineEmploys1.*SaleRegisterCaptures1.*1.*PaymentPaid-by1FlightAssigned-toPlane*Assigned-to*Supervises*1111111上海交通大学计算机科学与工程系上海
45、交通大学计算机科学与工程系2022-3-866w常见关联表常见关联表nPhysical part ofnLogical part ofnMember of nw高优先级的关联高优先级的关联nA is a physical or logical part of BnA is physically or logically contained in/on BnA is recorded in B上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-867w关注那些需要保持一段时间的关联关注那些需要保持一段时间的关联w发现概念类比发现关联更重要发现概念类比发现关联更重要w太多的关
46、联太多的关联将会使领域模型变得混乱,而找出这将会使领域模型变得混乱,而找出这些关联需要消耗太多时间,效益却不大些关联需要消耗太多时间,效益却不大w避免显示冗余的或者可派生的关联避免显示冗余的或者可派生的关联上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-868w确定概念类比找到关联更重要确定概念类比找到关联更重要. w领域模型构建时,主要的时间要花在确定概念类领域模型构建时,主要的时间要花在确定概念类上,而不是找关联上上,而不是找关联上上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-869w在领域建模时,关联只是针对现实领域从纯概念在领域建模
47、时,关联只是针对现实领域从纯概念角度看有意义的关系角度看有意义的关系w并不需要实现并不需要实现wOrw我们后面可以发现在领域建模时丢失,而需要实我们后面可以发现在领域建模时丢失,而需要实现的关联现的关联 上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-870w在商店中需要记住的关系在商店中需要记住的关系nRegister Records SalenSale Paid-by PaymentnProductCatalog Records ProductSpecificationw运用关联类别检查表运用关联类别检查表nA is a physical part of B: R
48、egister-CashDrawernA is a logical part of B: SalesLineItem-Salen上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-871RegisterItemStoreSalePaymentSalesLineItemCashierCustomerManagerProductCatalogProductSpecificationStocks*Houses1.*Used-by*Contains1.*Describes*Captured-onContained-in1.*Described-by*Records-sale-of
49、0.1Started-byPaid-byInitiated-byLogs-completed* Records-sales-on111111.*111111111111Initiated-by11Emphasize need-to-know associations, but add choice comprehension-only associations to enrich critical understanding of the domain.上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-873w
50、确定领域模型中的属性确定领域模型中的属性w区别正确的和不正确的属性区别正确的和不正确的属性上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-874w属性是对象的逻辑数据值属性是对象的逻辑数据值w将下列属性包含在领域模型中:当需求(例如用将下列属性包含在领域模型中:当需求(例如用例)建议或暗示需要记住信息时,引入属性例)建议或暗示需要记住信息时,引入属性上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-875SaledatestartTime : Timeattributes上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-
51、876w保持属性类型的简单性保持属性类型的简单性CashiernamecurrentRegisterCashiernameRegisternumberUsesWorseBetternot a simple attribute11FlightFlightdestinationWorseBetterFlies-toAirport11destination is a complexconcept通过关联而不是属性来表示概念类之间的关系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-877wPrimitive Types (number, string)wNon-primit
52、ive data type (phone number)w如果它能够自然地表示为数值,字符串,布尔量,日期,如果它能够自然地表示为数值,字符串,布尔量,日期,或者时间,那么它就是一个属性,否则将它表示为一个或者时间,那么它就是一个属性,否则将它表示为一个单独的概念类单独的概念类nIt is composed of separate sectionsnThere are operations usually associated with it, such as parsing or validationnIt has other attributesnIt is a quantity with
53、 a unitnIt is an abstraction of one or more type with some of these qualities上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-878w在商品识别中,有各种编码系统在商品识别中,有各种编码系统 (包括包括 UPC-A, UPC-E, 以及以及EAN 系统家族系统家族)w它携带有信息表示制造商,产品,国家和加和验它携带有信息表示制造商,产品,国家和加和验证码证码w它可以定义为一个非原子的它可以定义为一个非原子的ItemID类类w是否一定要这么做呢是否一定要这么做呢?上海交通大学计算机科学与工程系上
54、海交通大学计算机科学与工程系2022-3-879OKOKItemIDProductSpecificationProductSpecificationid : ItemID1AddressStoreStoreaddress : Address111领域模型是一种沟通工具,确定采用哪种解决方式都要考虑到这一点上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-880w可以用很多方法表示对象之间的关系,外键就是可以用很多方法表示对象之间的关系,外键就是其中一种方法,我们将推迟到设计后再决定如何其中一种方法,我们将推迟到设计后再决定如何实现对象关系,以避免设计蠕变实现对象关系,以
55、避免设计蠕变 design creep.CashiernamecurrentRegisterCashiernameRegisternumberUsesWorseBetternot a simple attribute11上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-881RegisterItemStoreaddress : Addressname : TextSaledate : Datetime : TimePaymentamount : MoneySalesLineItemquantity : IntegerCashierCustomerManagerProdu
56、ctCatalogProductSpecificationdescription : Textprice : Moneyid: ItemID上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-882SalesLineItemItemRecords-sale-of10.1SalesLineItemItemRecords-sale-of0.11.*Each line item records aseparate item sale.For example, 1 tofu package.Each line item can record agroup of the same
57、kind of items.For example, 6 tofu packages.SalesLineItem/quantityItemRecords-sale-of0.11.*derived attribute fromthe multiplicity valuesolidas上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-883w有效的领域模型捕获了当前需求情形下的本质抽有效的领域模型捕获了当前需求情形下的本质抽象和理解该领域所需要的信息,并且可以有助于象和理解该领域所需要的信息,并且可以有助于人们理解领域的概念、术语和关系人们理解领域的概念、术语和关系w没有单
58、一正确的答案没有单一正确的答案上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-885w对用例建模需要更多的调研对用例建模需要更多的调研w确定系统事件为用例场景创建系统顺序图确定系统事件为用例场景创建系统顺序图w工具:工具:UML 顺序图顺序图n顺序图描述了对象之间的交互模式,并按照时间顺序顺序图描述了对象之间的交互模式,并按照时间顺序排列;它通过生命线显示了参与交互的对象以及相互排列;它通过生命线显示了参与交互的对象以及相互间发送的消息间发送的消息上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2
59、022-3-886w表述系统是什么,而不解释它是如何做的表述系统是什么,而不解释它是如何做的w将系统作为黑盒子将系统作为黑盒子w系统顺序图系统顺序图n它展示了对一个特定的用例,外部的参与者产生的事它展示了对一个特定的用例,外部的参与者产生的事件,它们的顺序以及系统内的事件件,它们的顺序以及系统内的事件上海交通大学计算机科学与工程系上海交通大学计算机科学与工程系2022-3-887enterItem(itemID, quantity):System: CashierendSale()makePayment(amount)box may enlose aniteration areathe * .
60、 is an iterationmarker and clauseindicating the box is foriterationexternal actor tosystemProcess Sale Scenariosystem as black boxthe name could be NextGenPOS but System keeps it simplethe : and underline imply an instance, and are explained in alater chapter on sequence diagram notation in the UMLa mes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《网络成瘾的影响》课件
- 2025工程咨询委托合同范本
- 2025年个人向银行借款合同模板
- 初期支护课件
- 车站治安保卫管理和安全管理车站日常治安保卫工作由地铁公安
- (68)-考点68 作文-想象作文
- (8)-专题08 句子衔接与排序
- 潍坊环境工程职业学院《数字时代品牌传播》2023-2024学年第二学期期末试卷
- 商丘职业技术学院《画法几何与土建制图》2023-2024学年第二学期期末试卷
- 临沂科技职业学院《检体诊断学》2023-2024学年第二学期期末试卷
- 市政园林劳务合同范本
- 维克多高中英语3500词汇
- 一人有限公司章程(范本)
- 员工惩罚通知单
- GB/T 25742.4-2022机器状态监测与诊断数据处理、通信与表示第4部分:表示
- 特殊感染手术的配合与术后处理
- 萧红《呼兰河传》课件
- 机动车驾驶人考试场地及其设施设置规范
- 大学生三生教育主题班会
- 2023年宜昌市中医医院医护人员招聘笔试题库及答案解析
- 内部控制建设课件
评论
0/150
提交评论