




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1类图
--分析者必备浙江高校软件学院程学林开发流程3图9-1UP制品样例的影响需求是分析的源头 有好的材料才能炒出好的菜类图的角色外观与机理议程什么是关键抽象分析师必学元素类图——分析类类及类的关系什么是域模型如何建立域模型事务模式酒店订房系统什么是关键抽象“关键抽象”是一个类或对象,它是问题域词汇表(Glossary)的一部分。又称:概念类或分析类什么是概念类概念类是思想、事物或对象。概念类可以从其符号、内涵和外延来考虑。符号:表示概念类的词语或图形内涵:概念类的定义外延:概念类所适用的一组示例确定关键抽象的方法从软件需求规格说明书或用例及用例描述中将所出名词抽取(发觉)出来,填入“候选关键抽象”表格,从而识别出全部的关键抽象。用CRC(Class-Responsibility-Collaborator)分析法确定最基本的一组关键抽象。识别出候选的关键抽象集合通过软件需求文档的以下部分,识别出全部的唯一名词,从而来起先这个提取过程。系统范围和上下文部分(Vision)功能需求部分(Use-casemodel)用例、用例描述和场景明确的功能需求补充规约(Supplementaryspecification)项目术语表部分(Glossary)小提示:通过你自己的练习,要能够跳过那些明显不在系统域范围内的名词,但是现在你得对软件需求规格说明书进行彻底的查找。运用这种方法时必需当心。不行能存在名词到“关键抽象”(类或对象)的映射机制,并且自然语言中的词语存在二义性。候选的关键抽象表格用来记录提取的候选关键字的表格由三个属性列组成:候选的关键抽象—这个属性列包含了全部从软件需求说明书中找出来的名词.解除的缘由—假如该名词被提取为关键抽象,则该空格不须要填写;否则的话在此填写候选抽象被解除的缘由.选定的名字—这列填写被提取出来作为关键抽象的类名.候选的关键抽象排除的原因选定的名字项目术语表(Glossary)识别关键抽象的过程同时也是一个验证你的项目术语表在定期更新的好机会.验证全部那些由系统域指定的条目是否都已经被列出来并已被定义.识别项目术语表中的同意词,选择一个统一的术语,贯穿于文档和源代码.GlossaryasDataDictionaryIntheUP,theGlossaryalsoplaystheroleofadatadictionary,adocumentthatrecordsdataaboutthedatathatismetadata.Termattributescouldinclude:aliasesdescriptionformat(type,length,unit)relationshipstootherelementsrangeofvaluesvalidationrules软件需求说明书中的名词以下是从酒店预定系统的需求说明书中摘录的一部分,名词用红色标记.“酒店预定系统负责管理多种类型的酒店预定,包括一些商务酒店预定。这个系统同时也包含了一个web应用,允许客人随时查看房间和酒店,查看当前和过去的预定订单,或者进行新的预定。“这个酒店预定系统主要有三个涉及点:用于数据存储的中心数据库管理系统,外部的信用卡验证系统,还有一个本地的,将电影传输到每个房间的电视信号上的电影点播系统”。“系统也必需收集客人的以下一些信息:姓名,地址,联系电话,信用卡(类型,号码还有到期日期)候选的关键抽象表格(示例)候选的关键抽象排除的原因选定的名字预定酒店商务酒店客人房间小型商业会议信用卡验证系统姓名地址CRC分析法在完成了全部候选关键抽象列表之后,须要进行一个过滤,确定关键抽象。什么是CRC(Class-Responsibility-Collaborator)是一种收集并整理卡片的开发方式是一种面对文本建模技术,是由KentBeck和WardCunningham1989)创建的具有影响力的灵敏思想具体来说:类代表了一组“候选关键抽象”职责是类知道或者做的任何事情协作者包含一至两个方面:须要的信息或者须要的事务。用CRC分析法识别关键抽象运用的一个技术就是CRC分析法:1.选择一个候选的关键抽象2.确定一个与该候选关键抽象显著相关的用例.3.查看用例描述(场景)和系统的功能需求来确定职责和协作关系.4.用CRC卡记录抽取出来的关键抽象5.基于以上的工作,更新候选关键抽象表格.用CRC卡记录关键抽象类名职责协作者选择一个候选关键抽象选择一个候选关键抽象主要靠直觉,但也有一些小窍门:向该领域的专家询问从用例名中提取候选关键抽象从需求说明书中的范围部分提取候选关键抽象识别一个相关用例要识别一个候选关键抽象是否是一个真正的关键抽象,您应当先确定这个候选关键抽象是否担负着职责同时是否有协作关系.首先找出一个包含了候选关键抽象的用例,然后识别出它的职责和协作关系:1.查看用例名2.查看用例描述3.查看用例场景4.查看用例场景描述,看该候选关键抽象是否在文中提及,假如找到了,则说明该用例场景与之相关.识别一个相关用例基于以上所述,这里有两个用例与”订单”这个关键抽象相关:E1:管理订单E5:管理在线订单明确职责和协作者查看相关用例对应的场景和需求,找到他们的职责和需求,以及与他有协作关系的对象.假如你找不到任何职责关联,那么你就可以将这个候选从候选关键抽象中删除.明确职责和协作者以下是一些相关的功能需求:E1-1--系统允许预定代理商来创建,更新和删除一条预定订单.一条预定订单包括入住日期,离住日期,还有订单ID号.E1-2—在特定的时间段里(入住到离住期间),可以预定一个到多个房间.E1-3—预定只与一个客人相关.E1-4—只能在有空房的状况下进行预定.用CRC卡记录关键抽象订单职责协作者预定一个房间房间客人状态(空房,已入住,预留房间)入住日期离住日期付帐方式订单编号更新候选关键抽象表格假如你选择的这个候选关键抽象有职责关系,则把这个关键抽象的名字(从CRC分卡中)填写到”选定的名字”属性列中.否则填写这个候选关键抽象为何没有被选中为关键抽象的缘由.更新候选关键抽象表格候选的关键抽象排除的原因选定的名字订单订单酒店酒店商务酒店酒店的子类客人客人房间房间信用卡验证系统一个外部系统姓名客户的属性地址如何推断是属性还是类?Guideline:IfwedonotthinkofsomeconceptualclassXasanumberortextintherealworld,Xisprobablyaconceptualclass,notanattribute.(P109)实践-识别关键抽象CST公司开发一个用于管里软件开发项目的系统,系统可对多个项目进行管理,一个项目由若干个阶段组成,而每个阶段又由很多活动(UP中称科目,Discipline)组成,一项活动消耗若干资源,并产生若干工件(UP中称制品,Artifacts)。工件有代码、模型、文档等,资源有工人、时间、设备等。从描述中标识出候选关键抽象,并识别关键抽象?候选的关键抽象排除的原因选定的名字实践-识别关键抽象CST公司开发一个用于管里软件开发项目的系统,系统可对多个项目进行管理,一个项目由若干个阶段组成,而每个阶段又由很多活动(UP中称科目,Discipline)组成,一项活动消耗若干资源,并产生若干工件(UP中称制品,Artifacts)。工件有代码、模型、文档等,资源有工人、时间、设备等。从描述中标识出候选关键抽象,并识别关键抽象?候选的关键抽象排除的原因选定的名字审查属性是否在系统责任之内是否描述类对象的特征是否存在冗余是否有困难结构的属性依据对需求的理解进行细化是否在系统责任之内审查属性审查属性用能说的通:什么的什么是否存在冗余审查属性是否有困难结构的属性1:1-可以在原类里面绽开1:N-须要关联类审查属性是否有困难结构的属性保留在原类中抽取出来独立成类审查属性依据对需求的理解进行细化审查属性分析师必学元素类图类关联关系聚合关系组合关系类图类图(classdiagram)用来表达系统内部的静态结构(staticstructure)。具体来说,开发人员可以通过类图的设计,来将数以万行的程序代码分门别类,构成了系统内部的静态结构。类图新术语——模块变类(class)、功能变操作(operation)、变量变属性(attribute)。新术语并不是旧酒换新瓶,而是分类、定操作、定义属性上头,有新的划分方法。新的划分方法——拿用户的领域术语当类,然后确定相关的操作和属性,封装在同一个类中。确定类图中的元素UML的类图由以下元素组成:类它们可以代表:•概念性实体,如关键抽象
•软件组件类分析师不能自己随意定义类,必需找寻领域术语做为类名称。房间—真正住进去,特定房号的房间。房型—顾客在订房时,通常是预订某个房型的房间。类类属性(attribute)操作(operation)类(Class)类的组成名字属性操作可见性私有公有类不是孤立存在的因此,类与类之间创建了一种关系:类关系可能指明某种共享关系类关系可能指明某种类型的语义连接类关系
关联接口与实现组合泛化与继承聚合依靠类关系分析阶段设计阶段关联关系结构说明语法关联两个或多个类之间的一种关系,此关系涉及类的各个实例之间的连接识别类之后,需要识别关联多重性(multiplicity)定义有多少对象参与了某个关系各个类都可能与自身有关联公司部门雇员示例:“雇员为公司工作”准则:关联表示了须要持续一段时间的关系,依据语境,可能是几毫秒或数年关联关系关联关系关联的UML标识法关联关系实体关联图(关系型数据库)(概念)类图(面向对象)数据表(Entity)类(class)记录(record)对象(object)字段(field)属性(attribute)无操作(operation)关系(relationship)关联(association)实体关系图与类图关联关系多对多的多重性关联关系两个一对多的多重性聚合关系
结构说明语法聚合一种特殊形式的关联,指定了聚合(整体)和组件部分之间的整体-部分关系共享聚合(空心菱形)意味着在组合端的多重性有多个。模拟“整体-部分”关系。整体部分门房子1..*2..*汽车聚合关系具有“hasa”语义--对象A是对象B的一个组成部分组合关系结构说明语法组合一种特殊形式的关联,指定了组合(整体)和组件部分之间的整体-部分关系,但是组合关系中部分和整体具有统一的生存期
这是一种更强的聚合,表达了类与类之间更强的耦合组合的图形为实心菱形。整理部分负责创建和删除各个部分。圆圈点多边形点圆圈组合关系具有“contains-a”语义,整体部分消逝,部分对象也消逝组合关系组合关系组合(composition)整体(whole)部分(part)关联vs.聚合聚合是关联的精化,两端角色被默认为“拥有”和“被拥有者”关联与聚合的区分只在于个人喜好,而不是语义上的区分。聚合vs.组合(UML观点)识别类之间的聚合或组合团队(组织)和成员-聚合抽象事物的整体和部分-聚合物理上的整体事物和它的组成部分-组合组织机构和它的下级组织-组合空间上的包涵-组合具体事物和它的某个抽象方面-组合团队(组织)和成员识别类之间的聚合或组合抽象事物的整体和部分识别类之间的聚合或组合物理上的整体事物和它的组成部分识别类之间的聚合或组合组织机构和它的下级组织识别类之间的聚合或组合HowtoFindAssociations(P115)CategoryExamplesAisatransactionrelatedtoanothertransactionBCashPayment-SaleCancellation-ReservationAisalineitemofatransactionBSalesLineItem-SaleAisaproductorserviceforatransaction(orlineitem)BItem-SalesLineItem(orSale)Flight-ReservationAisarolerelatedtoatransactionBCustomer-PaymentPassenger-TicketAisaphysicalorlogicalpartofBSeat-AirplaneDrawer-RegisterAisphysicallyorlogicallycontainedin/onBRegisterStore,Item-ShelfPassenger-AirplaneAisadescriptionforBProduct-DescriptionItemFlightDescription-FlightAisknown/logged/recorded/reported/capturedinBSale-RegisterPiece-SquareReservation-FlightManifestAisamemberofBCashier-StorePilot-AirlineAisanorganizationalsubunitofBDepartment-StoreMaintenance-AirlineAusesormanagesorownsBCashier-RegisterPlayer-PiecePilot-AirplaneAisnexttoBSalesLineItem-SalesLineItemSquare-SquareCity-City64什么是域模型也称为概念模型、领域对象模型和分析对象模型领域模型是对领域内的概念类或现实中对象的可视化表示。(P100)表示关键抽象之间的关系(协作者),应用UML表示法,领域模型被描述为一组没有定义操作的类图。是可以在业务建模科目中创建的制品之一。是OO分析中最重要的和经典的模型。领域模型的范围限定于当前迭代所开发的用例场景,通过迭代不断演进。DefinitionIntheUP,theterm"DomainModel"meansarepresentationofreal-situationconceptualclasses,notofsoftwareobjects.65领域模型是软件业务对象图吗图9-3领域模型表示真实世界概念的可视化并非表示软件类在UML中,领域模型被描述为一组没有定义操作的类图66图9-4领域模型并非表示软件制品或类域模型-准则(P107)灵敏建模绘制类图的草图是否要运用工具维护模型运用领域术语何时运用描述类独立于任何商务或服务现有实例删除其所描述事物(如Item)的实例后,导致信息丢失,而这些信息是需要维护的,但是被错误地与所删除的事物关联起来削减冗余或重复信息68领域模型和数据模型是一回事吗领域模型不是数据模型(许久化数据)在领域模型中不会解除没有明确要求记录其相关信息的类,也不会解除没有属性的概念类在领域内充当纯行为角色而不是信息角色的概论类也是有效的。如何建立域模型从关键抽象,你可以利用这些步骤创建域模型:1.画类节点,并列出属性2.画协作类之间的管理3.定义关联名和角色名4.定义并记录关联重数5.定义并记录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 监理工程师的专业技能提升与继续教育考核试卷
- 水果产品采购协议
- 有线电视传输网络工程技术考核试卷
- 听见你的心心理健康教育
- 空调器热泵空调技术进展考核试卷
- 耐火土石矿山环境保护与矿山环境保护法规完善考核试卷
- 小儿大面积烧伤的护理
- 毛皮制品的智能制造技术考核试卷
- 畜牧业职业培训与技能鉴定体系考核试卷
- 整车生产中的非金属成型工艺考核试卷
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- GB/T 18618-2002产品几何量技术规范(GPS)表面结构轮廓法图形参数
- GB/T 10183.1-2018起重机车轮及大车和小车轨道公差第1部分:总则
- 波形梁钢护栏检测记录表
- 大田作物生产技术标
- 数学命题教学设计课件
- 叶芝《当你老了》赏析课件上课讲义
- 护士角色的转换与适应
- 危险化学品生产经营企业安全知识培训
- 混凝土构件之梁配筋计算表格(自动版)
- 自制饮品操作流程
评论
0/150
提交评论