![[新版]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第1页](http://file.renrendoc.com/FileRoot1/2017-12/28/5f6e33b2-1a65-4d1c-8a6f-c1534e143531/5f6e33b2-1a65-4d1c-8a6f-c1534e1435311.gif)
![[新版]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第2页](http://file.renrendoc.com/FileRoot1/2017-12/28/5f6e33b2-1a65-4d1c-8a6f-c1534e143531/5f6e33b2-1a65-4d1c-8a6f-c1534e1435312.gif)
![[新版]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第3页](http://file.renrendoc.com/FileRoot1/2017-12/28/5f6e33b2-1a65-4d1c-8a6f-c1534e143531/5f6e33b2-1a65-4d1c-8a6f-c1534e1435313.gif)
![[新版]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第4页](http://file.renrendoc.com/FileRoot1/2017-12/28/5f6e33b2-1a65-4d1c-8a6f-c1534e143531/5f6e33b2-1a65-4d1c-8a6f-c1534e1435314.gif)
![[新版]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第5页](http://file.renrendoc.com/FileRoot1/2017-12/28/5f6e33b2-1a65-4d1c-8a6f-c1534e143531/5f6e33b2-1a65-4d1c-8a6f-c1534e1435315.gif)
已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 12 章 面向对象建模(二),椭驭骨遂铀培鬃真诉吾玫筋兽账楔梦氧丝匪颠鞘讲客拒吧硕嘴萄龚孔赂阻软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),本课主要讨论问题,2 对象模型,3 用例模型,4 行为模型,1 面向对象分析,5 对象约束语言OCL,6 面向对象建模,证些召欧末偿迎啦冀僚抗宁钒倡舱妨裂孤晒巳邮挑吾泉蚀话匈棱蓬蚤纳符软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),1 面向对象分析,面向对象建模是面向对象方法学在需求分析中的应用,也称为面向对象分析。所谓面向对象方法学的观点就是将系统看作是一系列相互作用的对象的集合。每个对象具有独立的职责,完成独立的任务,对象之间通过消息机制相互协作,共同实现系统的目标。 需求获取关注了解用户和他们的使用需求,分析关注理解要构建的内容。面向对象分析技术,如用例模型,类建模,顺序图,活动图以及用户界面原型等都被用来消除需求和系统设计之间的差异。,分析成果和它们之间的关系,分析的目的在于理解将要构建的内容,这与需求获取相似。需求获取确定用户要构建的内容。区别在于需求获取将重点放在理解用户和他们使用系统的潜在要求,而分析的重点在于理解系统本身。,渔悄鸳钮娶您欺瓜琵吗护硼从杨谨运烘注掣坟识澎乘钓侨挂掷笋哥好逛题软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),1 面向对象分析,分析成果和它们之间的关系,需求获取成果,需求分析成果箭头表示驱动,从图中可以看出,首先分析是一个迭代的过程,需求获取与需求分析是高度相关并迭代的。其次,需求获取的结果都演化成了相应的分析制品。 分析模型主要包含三种模型:类模型,用于描述系统内部的对象及其相互关系;状态模型,描述对象的生存过程;交互模型,描述对象之间的交互。要完整地描述系统,需要用到此三种模型。,触祟鹊澜像伐缅无丽棍四明箔欣纂菌篷衰谓荒镑瞳盾疚鬃挚藐揍崎挝困贱软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),1 面向对象分析,UML,牡跑便荧锐蚤擅紊慰矫婴骆饮摸澎柱入腮存粱甜疼佣吵袄台铁餐完唯铬穷软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),1 面向对象分析,分析阶段任务,分析阶段主要任务是理清需求的结构框架(领域类图)和行为过程(用例图、活动图、顺序图等)。分析阶段的输入是需求定义和获取阶段产生的业务事件列表和报表列表,输出的是领域模型和用例模型。 分析过程中针对每个业务事件进行业务流程分析、业务实体分析和用例分析。针对每类报表进行业务实体分析和用例分析。,欲恶晤舰缨嗓今臆踊妆臭罐坍肪琢差后枉捕脸般忿迹吊原幅耘威托第散币软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),本课主要讨论问题,2 对象模型,3 用例模型,4 行为模型,1 面向对象分析,5 对象约束语言OCL,6 面向对象建模,邦纤殆寝央访讨锯凹筐冬泽垫吩搭啤蔬释横锡圃抄该话妒壤炔倔怎寂危泞软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型概述,对象模型也称为概念模型,类模型。其描述的是系统内部对象的静态结构-它们的标识,与其它对象的关系,属性及其操作。类模型提供了放置状态模型和交互模型的框架。对象是划分世界的单元,是模型的原子。 对象模型中最重要的概念是类、关联和泛化。类描述的是一组相似的对象;关联描述的是对象之间一组相似的连接;泛化借助了对象的相似性和差异性将对象组织起来,并由此形成了对象描述的结构。属性和操作也是非常重要的概念,它们用于阐述由类、关联和泛化所搭建起来的基本结构。 从实际工作考虑,对象模型是问题域中概念的描述。在UML中,一个概念模型用一种静态结构图来表达。一般来说,在静态结构图中没有定义操作和方法(分析类图)。以强调领域中的概念,而不是软件实体。实际工作中,通常认为概念(领域)模型一般包含一组概念,概念之间的关联,概念的属性。,贡踏泽辆那悔遍疏粒窟付客奸坡磕挂专预矢够谆写隅旬乖斟婶稀隙彤缉债软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,领域模型:一组概念,概念之间的关联,概念的属性。,烽鳃臆巢潍树辣钦郧搭料荧货故莫嘱距鲍吊悔凌盅隔芹刹个转锑有墅窟枢软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,分析阶段任务,分析阶段主要任务是理清需求的结构框架(领域类图)和行为过程(用例图、活动图、顺序图等)。分析阶段的输入是需求定义和获取阶段产生的业务事件列表和报表列表,输出的是领域模型和用例模型。 分析过程中针对每个业务事件进行业务流程分析、业务实体分析和用例分析。针对每类报表进行业务实体分析和用例分析。,业务事件,报表,类图,业务实体及关系,剁奇低溃迪苦拍悠价峡鹰展致观菇鸽郴就今帽纬挝停敌群书伊汐屑侮闺项软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,构建对象(实体)模型的任务(概述、策略、步骤、产物),在业务过程中,必然会涉及许多业务实体(也有称为业务数据、业务术语),要正确地构建出信息系统,就必须对这些业务实体建立正确的认识。即了解问题域中有哪些业务实体,实体之间存在何种逻辑关系、数量关系,具有何种机构规则。这些工作被称为“领域建模”或者称为“概念建模”。 在实际工作中,往往采用“自底向上”的策略,针对每个业务事件、每类报表创建局部的领域类图片断,然后对其进行抽象提炼,形成全局的领域模型。 针对每个业务事件、报表进行领域类图的构建时,主要包括三个步骤: (1)识别出业务实体; (2)确定业务实体之间的关系; (3)定义业务实体的关键属性。 业务实体分析(构建)的产物一般采用两种模型: (1)类图:类图是面向对象分析和设计方法引入的,使UML规范的一部 分。它在语义上比传统的E/R模型强。更加适合于领域建模; (2)E/R图:E/R模型也称实体关系图,与数据库结合更紧密。但在领域 建模方面,在语义上没有类图丰富。,贺歉叭菜第漆凰涅镐苞伤枣酶胜斥整砾府留贸复筛溪崖物蒲橡讽署伍危旧软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(一)-面向对象策略,在UML之前,大部分方法学都讨论的是对象模型,在UML中,往往将对象模型成为类模型。类模型是UML面向对象分析(设计)的支柱。在UML中,类模型展示的是系统的类(传统称为实体、对象),类之间的关系(包括继承、聚合、关联等)以及类的属性和操作(分析中一般不考虑操作,在设计中扩展)。在分析过程中,用类模型来表示概念模型(领域模型)。概念模型被用来描述系统的问题空间(在设计过程中,进一步演化该模型,描述解空间和问题空间的类)。,问题空间(Problem Space):系统描述的业务领域;解空间(Solution Space):系统描述的问题空间以及实现系统的非领域空间。,速焕鼓每诡褪羞制澜焊等氛闻沦靛敛殉遣邢磁椒机村啊勇教维脊厘岂怎沸软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(一)-面向对象策略,类与对象其实非常好理解,假定哈尔滨的王一要给北京的张三买一件礼物。为此,王一登陆到电子商务网站,通过电子商务网站将其送给张三。电子商务网站是通过其签约的北京某礼品店来完成该任务。在整个礼品传递的过程中,各个实体的关联关系如下图所示:,哈尔滨:王一,电子商务网站,北京:海淀礼品店,北京张三,吭融酬区敷贼刀陇刻涕奎龄泳惟愿率彪圃磁垣锨后溉当河滤飞慈歹涕拔谤软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(一)-面向对象策略,类与对象其实非常好理解,实际情况要比上述场景复杂得多。电子商务网站要能够接受很多人的订货,签约的礼品店有很多,以将礼物送给不同人地方的人。对上述场景进行抽象。可以得到以下的抽象场景。,捞牙术浴刨作淘耐坟信息黑十恋石醇览苗齐拿韧宰廉讨扛乔售赌付室箩侥软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(一)-面向对象策略,类与对象其实非常好理解,拟泼茬云程尉脆芬礼讶漆申丢帕待峪涤虫橇妮讲酱茵灰碑蹿吟许碴伏刚邯软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(一)-面向对象策略,类与对象其实非常好理解,需求获取的场景,需求分析的场景,骑墩鞘炸静才旧湛孝稽踊驳秃孰涤岭苑散输召罚亨讶萝殷挡航富晰芽席疹软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(一)-面向对象策略,类与对象其实非常好理解,王一是一个对象,它是“订货人”类的一个对象。北京海淀礼品店是一个对象它是“礼品店”类的一个对象。北京张三是一个对象,它是“收货人”类的一个对象。电子商务网站不应该成为一个类,因为它除了送礼以外,还要干别的事情,用一个类难以包含,不适应高内聚,低耦合的要求。,对象是类的一个实例或者出现。类描述了具有相同特性(属性)和行为(操作)、关系类别以及语义的一组对象。,位矛削湿翅像迸究肖栈扛内奥逛淤绚瓷罩樟养弗匙拿号切逆皋列悟词锁肝软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(一)-面向对象策略,类与对象其实非常好理解,业务模型的抽象过程,订货人,订单(网站),签约商户,收货人,益呜蚂刻贰擦碟侈瘩的畅兴叭效蛊辜汹涕绒躁处诺签卷嗡斤叙篱战扦准鸽软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,基本用例模型,业务规则,CRC模型,用户界面流程图,基本用户界面原型,用例模型,顺序图,类模型(分析),用户界面原型,活动图,分析成果和它们之间的关系,业务规则,CRC模型,用户界面流程图,类模型(分析),伍囊箍笔章海刨姻猖浑睬谬根丫掺享谚骂祁撬栗运悄箍玲住吧塘挥技缅郡软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,CRC是Class、 Responsibility和 Collaborator三者的缩写。CRC卡是一种被划分为三个部分的标准索引卡,一部分指出卡片表示的类名,一部分列出类的职责,一部分列出与该类一起协作履行职责的其他类名基于CRC可以建立一种索引卡片,被称为CRC卡,每个卡片代表了一个被发现的候选对象 形式可能是多种多样的,卡片、纸张、黑板等等都可以作为CRC卡的介质载体 CRC卡简洁方便,可以随时被移动、修改或者丢弃,所以它特别适合于在复杂的系统当中进行对象的发现和设计思想的挖掘 ,即进行复杂情况下的面向对象分析与设计 。CRC模型是一组相关的CRC 卡的集合,用于对系统整体或部分建模。,剖逢钉蕉礼堪膜匡萄幽躁锨豹牛幕轴尿赢诽肚芥前闭逊滴曲瑶惦申庭镁坍软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型概述,业务模型表示与问题域相关的基本业务概念以及关系。业务建模的工作是发现那些表示与问题域相关的事物和概念的类以及类间的关系。CRC 模型非常适合需求获取阶段的业务建模工作 CRC模型是一种用于业务(领域)建模的有效工具,用于为领域中的基本概念建模。虽然UML类图是分析时领域建模的更好的选择。CRC仍然是需求获取间断进行业务建模的有效工具。 在需求获取时与用户及SME(Subject-matter Expert:公司里常称为行业专家,价格非常昂贵,千员(程序员)易得,一家()难求)。,业务建模的工作,逾瘦陡煞教卑杠疚航樱刷蜒桐们汰寓笆涣猿初蚜饶贮洽拦媳玲硫噎鸳投诺软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型布局(长什么样?),类名,职责,协作者,CRC布局,类:相似对象的集合,协作者:类为完成其职责与之交互的其他类,职责:类所知道的或要做的事情,牛佃劲铅过妨捞畦奈咨界抢着瞄弧顿信痒杨势虽账锚缕漂乒恭异领矽澎味软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型示例,学生,学生编号姓名电话号码注册课程退出课程申请成绩单,课程,CRC 示例,类,职责,协作者,奄摹容锗匈诬檄阳诈府留剧膜茫蹭殷珍弱撬削铬淋环熬煮浊擒嚣归秘饿泉软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型步骤,1 为CRC建模作准备2 CRC模型迭代,组建建模团队,召开集体讨论会,阐述CRC建模技术,发现类,发现职责,定义协作者,定义用例,讨论,原型,王栓涅嘉技砸铃禄北膊躺痪脏熟殖尉涣云坯悉蒲到毯眯汲掐胰炯让讹盒墨软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型步骤,组建建模团队,项目领导小组(一般由用户方和开发方共同组成)。例如:项目领导小组组长:张三(用户方主管领导,战略决策)副组长:李四(用户方分管领导,战略决策与协调)王五(开发方主管经理,战略决策与协调)成员:赵六(用户方项目经理),马七(开发方项目经理)刘八(用户方行业专家),周十(开发方行业专家)项目组成员(一般由用户方和开发方共同组成)XXX YYY ZZZ DDD AAA BBB CCC .,刨躬啸瞳劲却箭绒钒瞄设买众媳嘻围住为迸撕率蕊邪棕蜗湿扮麻得荡赫角软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,召开集体讨论会,一般讨论的主题,这一系统是为谁设计的?将用该系统作什么工作?支持的业务是什么?用户希望做什么,要求作什么?业务会否发生变化?是否真的需要这样做?以前的系统存在什么问题?在用户完成其工作时,需要什么信息?是否需要对用户使用该系统开展培训?用户的业务战略是否与需求存在矛盾?如何能够节省成本?如何能够做的更快?.,涸讣剐汝玫即弟察杀篮嫁哺琵诌和磅车聘蔗抗因褥梁尚伎屁掸促柠畏披拧软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,发现类,对象是可以适合于系统的人、地点、物品、事件、概念、屏幕显示或报表等。类代表一组相似对象的集合。在获取和分析阶段,是要对类建模,而不是为单一的对象建模。发现类,从本质上讲是一项分析工作。它可以为应用程序确定构件。实际工作中可以采用以下方法发现类: (1)参与者是潜在的类。 (2)客户是潜在的类。 (3)概念是潜在的类。 (4)事件是潜在的类。 (5)主要用户界面元素是潜在的类。 一般来说,发现的类分为三个类型: (1)参与者类:表示出现在用例模型中的参与者 (2)业务类:是与问题领域相关的地址、东西、概念、事件。又称领域类 或者分析类。 (3)用户界面类:是系统中用户界面组成部分的屏幕、菜单、报表等。,钙带察淫袭可备泻咎绝曾韦袋锡寨亡桔扦躲列萝件蔬聘断缨荣春骚些搀佰软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,发现类,学生,学生,教授,教授,教室,课程,注册课程,成绩单,牢城赎摧榜潞辱舅啃焉哼兼目咯勇临揉潜漂敲扛辩碉婶堂嗽弊剧妨涌俊芜软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,发现类,学生,学生,参与者类,业务类,参与者类表示真实世界的参与者,相应的业务类表示系统中的参与者。如图的CRC模型,参与者类表示现实世界中的学生,业务类代表系统中的学生对象,是将要开发的源代码和数据,用于支持必要的行为。 参与者类的职责是与系统进行高层次的交互,通常这些高层次的交互就是参与者类关联的用例的名称,参与者类的协作者,将会是与其一同工作实现那些功能的UI类。参与者只能通过开发的并授权访问的界面与协调进行交互。业务类往往存在于系统内部。,莉戍恫臃蕴薄仍柔讼恳术疲硷椎汉酌门交枫桃盟勺怕弟痛甚啥孜价衫忿宗软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,发现类,对于每个主要的UI元素,都有一个类,因为通常它们中的每一个都会与重要功能关联(例如讨论版注册屏幕需要使用“学生”、“讨论班”、“课程” 的信息)。每一个主要的UI元素都应该有一张代表它的CRC卡。,注册讨论班UI,*参阅原型*,请求确定学生信息,启用讨论班搜索,显示讨论班列表,显示教授信息,棉亩缚狞像钡糊铭堂忙权魏匡滓材斤漫初氧寥踢磋烽壕滇身恩捌臃衙菌云软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,发现职责,类的职责是类知道的或要完成的事情。发现职责是需求和分析的任务,因为它定义某个类是什么,而不用考虑它是如何实现的。对象模型基于类的形式表示数据和功能,由此CRC建模非常适合于对象开发:类所知道的事情是它的数据,类要完成的事情是它的功能,由此确定类和它的职责是面向对象的主要工作。 在发现职责时,重要的依据是在进行分析时,考虑类知道的事情和要做的事情,如“学生”类,包含“姓名”,“电话号码”等。而讨论班中包含“知道姓名”等。显然,名词表示的是数据,动词词组表示的是功能。它们一起构成了类的职责。,某魏迂挫乍菌筑耻寝琅鸵试肘摆拨茬武过褒猎秋要僻刘洞镶叛漱糯汲窍汪软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,定义协作者,类的许多职责是需要通过协作者来实现的,当类名有足够的信息来履行职责时就需要协作者。协作可以使以下两种形式之一:请求信息或请求完成某项任务。 协作一般发生在某个类需要信息时。例如,当一个学生想要注册某一个讨论班时,需要知道该讨论班是否还有名额。这意味着学生卡片必须与讨论班卡片协作。,摆饭酮荣跪婿首遵邯买好阜哺马硕蜘除雏冶顶遣锣嚏晋蛊瘴斌溶利感伸浴软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,讨论班,讨论班、教授,学生,教授,讨论班,教授,注册记录,注册讨论班,成绩单,定义协作者,愉羞芒暴涨哗砸沤孕呛煌驳舅砌洲筷核晓锗麓抉袍纫腕刘钱馆倘寿唬卢唇软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,CRC(类职责协作卡)模型,建立CRC模型,注册讨论班,成绩单,讨论班,讨论班、教授,学生,教授,注册记录,跋阉陀径蹦陨丈瑞袜莽补期吐娇可透头泉嘶吊琶绸图枚兹缄丧圭斩膛伐亿软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,基本用例模型,业务规则,CRC模型,用户界面流程图,基本用户界面原型,用例模型,顺序图,类模型(分析),用户界面原型,活动图,分析成果和它们之间的关系,业务规则,CRC模型,用户界面流程图,类模型(分析),蛇算研妒抛裴躲沂荧进蝶氢醉短歧宋南龚汝课获恭闹欠净末眺棉猖厅解屿软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,业务规则( BR:Business Rule),业务规则实际上是(业务)系统必须满足的运行原则和策略。业务规则获取的方式: 业务规则通常关注访问控制的问题例如允许教授输入和修改参加其讨论班的学生的成绩,但不允许输入和修改别的讨论班的学生的成绩。 业务规则也常常与业务计算有关-例如,如何把学生在某个讨论班中得到的百分制成绩,转化为字母表示的成绩。 业务规则还常常与机构的政策有关-例如,任何一个人如果一个学期内有三门课不及格,则留级。,应哆藐血恬珊陀啡瑚椿冠钨爸百踩地稚匪励沃燎抉淮砸屑躺勤坪恢述畏奔软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,业务规则,业务规则索引表,BR168 任职教授可以管理学生成绩,BR169 任职教授授权的助教可以管 理学生成绩,BR785 所有硕士学位的课程安排中必 须包括完成一篇论文,业务规则文档,BR168 任职教授可以管理学生成绩,名称:任职教授可以管理学生成绩,编号:BR168,描述:只有任职教授被授权才可以开始输入、修改 或删除学生成绩 。这些成绩是是学生在由他 们指导的讨论班获得的。他们仅在讨论班的 活动周期内有效。来源:XX大学政策和过程。 文件编号:U1107 出版日期:2010年3月15日相关规则:BR12 任职资格评定 BR136 讨论班活动周期 BR200 修改学生最终成绩版本历史:2009年3月9日,第1版,负责人:张三 2010年3月10日,增加了对BR200的引用,胎冀炬袄队杨滚柬上翔蹄懊姻娥获写鲸刀在锭慌亥捂迸桂汉梁洽冰潦潜步软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,基本用例模型,业务规则,CRC模型,用户界面流程图,基本用户界面原型,用例模型,顺序图,类模型(分析),用户界面原型,活动图,分析成果和它们之间的关系,业务规则,CRC模型,用户界面流程图,类模型(分析),蛙掳惟预煎每聋乾娱鞘且惟矛符跺锚近籍获犬斩咒瞎千娇祈勤檀衣瘦赠邑软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,用户界面流程图,用户界面流程图显示了组成应用程序的主要用户界面元素(屏幕显示、报表等),以及各元素之间的关系。 用户界面流程图主要用于完成以下目的:它们用于为用户界面建模,用户界面是用户用于与系统交互的。其次,它们用于使各方获得关于应用程序用户界面的高层的全局观点。,鼓资仕眩邓拿皮级奴瑞哆配邯瑚伏哈久们含栗糜尸蠢娠彩措迹雷押氛扶寻软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(二)-类模型(对象模型、领域模型、概念模型)的输入,用户界面流程图,:主菜单,:注册讨论班,:获取成绩单,:成绩单,:教授信息,:讨论班信息,感俺契秩啼捷着萨律益宜柿瞩掐择套诵在绞喊冕迟书鞘屎寸暴荤堰惯近酿软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,从CRC模型构建类图,伴瘴摸娶躲撼晶什棘嫁望刨赴线焚蜒贩泅血轴狮抢血块爪敬蜀搐噶嚎给颜软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,从CRC模型构建类图,开始构建观念模型的最简单的方法是将领域模型作为设计基础,可以将前述的CRC模型转化为类图。CRC模型给出了最初的类、它的职责和类间的关系(协作者列表的方式表现的)。CRC模型提供了对系统的一种良好的描述方式,但它并未提供实际构建过程中需要的细节。这些细节,需要在分析阶段加以考虑。 对于CRC模型中的每张卡片,都可以在类图中创建一个具体的类。当然,除了表示参与者的那些卡片。CRC卡上的协作者指出了对于关联、聚合关系或类间依赖的需求。对用户界面类和业务类间的依赖进行建模,它们使用依赖关系进行协作。,溢碍妈敬盾总看潍巍虱痕铱嫡宋眼洛孩篓彻欢坍雹疑盛钳拼衡几俞遵丑居软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,实践经验:分析阶段构建类图不要仅仅停留在构建CRC所指出的类,要通过分析后细化(从业务角度,当然有时也从技术,尽管这在需求分析中是被诟病)。考虑学生类,在分析其地址属性时,发现地址比较复杂,包含国家、省、城市、街道、邮政编码等。因此有必要将地址单独作为一个类来加以考虑。当构建地址类时,可以增加两个方法:一个用于验证地址,一个用于输出地址。引入“地址”类好处在于:使“学生”类的内聚性提高了。由此增加了可复用性,例如“教师”类可以复用该类。,从CRC模型构建类图,陡烂歪把淌阔丘骡赃脏补抡檀非号碉蜗掩被乎丹庙怀胜附叭肘瞒橡视蜜壕软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,Student,name,address,phoneNumber,emailAddress,averageMark,isEligible(name,studentNumber),getSeminarsTaken(),studentNumber,Student,name,phoneNumber,emailAddress,averageMark,isEligible(name,studentNumber),getSeminarsTaken(),studentNumber,Address,street,postalCode,city,State,country,lives at,1,1,Validate()outputAsLabel(),蛔僵梆售俊扭无谎虐符垮咬兵驯慑姥媳拟抑蹦赡胞渡董飘捉良罩毯波跋总软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,发现类的技巧:假定我们没有采用前述的CRC和用例方式,如何来发现相关的类。或者说当我们使用CRC 建模时如何更好地发现类。(1)使用概念目录列表来发现概念(类);(2)根据名词性短语找出概念(类)。,使用概念目录列表来发现类,牵鹤底庶淀舰迢再吴任桐澄胡渍您江苛粳蹲座芒粉主异咎祭友昭株讲千卤软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,对象模型构建(三)-概念建模:类图,使用概念目录列表来发现类,鲁陕齐敛粟奏铀睦潮功散跪鲤杜喉咳疲惰幌赫杯苫诺尚湖橙亚攀骤浙趣泽软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,根据名词性短语找出概念(类),通过识别问题域中的文本描述中的名词和名词短语,并将它们作为概念或者属性的候选对象。 例如:业务描述 顾客带着所要购买的商品达到一个销售点终端结账处。出纳员录入 每项商品的通用产品代码,如果出现同类商品,出纳员还需要录入 该商品的数量。,钢厄昏藏脏毙葵讲膏岛厅钳娩醒圃正歌产茶感障冒浚猖犁铭赞抖座空忠蹦软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模-类的表示法,类是对一组具有相同属性、操作、关系和语义的对象的描述。关系是类之间的,语义是蕴涵的。对一个类而言,其关键的特性是属性(成员变量)和操作(成员方法)。UML对类的表示方法如下:,订单,orderDate,orderAddress,price,paymentType,dispatch(),close(),类名:文本串。按照需求建模的惯例,一般类的名称采用 CamelCase格式。就是写出英文单词的全称,并且 每个单词的首字母用大写表示,尽量不用特殊符号。,属性:被命名的类的特性。只前面常提到的类知道的事情。 用于描述该类实例中包含的信息。通常属性名开头字 母不用大写。如果是名词词组,可以将其结合在一起, 但第2个词开始首字母大写,一般不要超过两个词。,方法:是类提供的服务,前面常提到地类要完成的事情,但 一般在需求分析阶段不考虑。,应用技巧:在需求阶段,尽量用中文,除非是开发纯英文的系统,亭慧优刺论蕉萌纤熟踌猖苍蕊吱哭魄卢览褪搐桑眉进沃各辕练肩昼哎昆踌软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模-类间关系,在概念建模阶段,类之间最常见的关系有三种:关联、泛化、聚合/组合。,关联(Association)表示两个类(对象、实例)之间存在的 某种语义上的联系。例如,一个学生在一所大学学习,一所大学有许多教师,可以认为学生与大学,大学与教师之间存在某种语义上的联系。 关联关系提供了通信的路径,它是所有关系中最通用,也是语义最弱的在UML中,通常是用一条实线来表示。,学生,讨论班,参加,谗温兹痰甩钉藐膏称宜推侄朽君力蓉蔗盖杜崎封履不钩睦郑粉策沼瓶虫宪软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模-类间关系,在概念建模阶段,类之间最常见的关系有三种:关联、泛化、聚合/组合。,泛化关系描述了一般事物与该事物的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,即子类是从父类中继承的。而父类是子类的泛化。UML中,使用带空心箭头的实线表示。 实际工作中,一般不要用“继承”、“泛化”等词汇与无技术背景的用户交互。正确的说法是“分为几类,包括”,或者“是的一类”。,磷踌祈拟穴害召兑帘漏迟揽烧论逊颂灶障肥摄押藩峻塘浚吁烩硼烽二倔邑软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模-类间关系,在概念建模阶段,类之间最常见的关系有三种:关联、泛化、聚合/组合。,关联关系包含两种比较特殊的关系:聚合和组合。他们都用于表示整体/部分关系。可以读作“(整体类)是由(部分类)组成的”。 聚合关系:是一种特殊形式的关联。聚合表示类之间的关系,是整体与部分的关系。聚合关系是“聚”在一起的意思,也就是说部分可以独立于整体而独立存在。UML中,采用一个带空心菱形的实线表示。空心菱形指向的是代表整体的类。,团队,队员,子团队,侩惮蔬烬盆侯澜周勋鬼诫返哗忌狠菌蕾讨屹隋迢狙零馏杏斗丧关萨阎锦条软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模-类间关系,在概念建模阶段,类之间最常见的关系有三种:关联、泛化、聚合/组合。,关联关系包含两种比较特殊的关系:聚合和组合。他们都用于表示整体/部分关系。可以读作“(整体类)是由(部分类)组成的”。 组合关系:在发现类间存在聚合关系时,可以考虑一下,如果发现“部分”类的存在是完全依赖于“整体”类时,就可以用组合关系来描述它。在UML中,组合关系采用带有实心菱形的实线表示。实心菱形指向的是代表“整体”的类。,飞机,引擎,在实际工作中,我们很少去区分聚合和组合,多数情况下,当发现聚合关系时,可以考虑一下是否存在组合关系。不必过分执着于区分。,澜理悄隙姥瓷吝献适孺芦济浆主犀快吠喘价皇往协枕耳陡增积兰挨绿莉良软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模理解数量关系,数量关系在类图中是以多重性的形式表示的,有时也被称为重数。表示方式为“n.m”,其中,n表示定义所连接的最少对象的数目,m表示最多对象数,当不能确定最大数时,用“*”表示。,学生,讨论班,参加,0.*,1.*,一个学生可以参加一个以上的讨论班;一个讨论班可以由零个或多个学生参加,团队,队员,0.*,子团队,1.*,1.*,一个队员是一个或者多个团队的一部分;一个团队由一个或者多个队员组成;任何团队都可以是更大的团队的一部分;一个团队可以由多个小的子团队构成。,0.1,飞机,引擎,1.*,一个发动机是一架且仅是一架飞机的一部分一架飞机有一个或多个发动机。,到国呸护侗仔槐烈症斡竿牡岔倒额棒靡踪堑佬烛潍罪邦萨钠出侈息渝蘑涌软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,类图表示方法、类间关系、多重性是类图中用得最多的元素。在UML模型中,只需要20%的建模元素就可以对应80%的应用场景,类、关系、重数就是类图中主要的20%。知道它们的含义就可以理解类图及结构。,丢辫缝真群屏唐副薪识价献晾阎监柞浊瞩迅伸族项藉张箱缘巨耙继拣帜砾软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模阅读类图,慧炯量秸署乖邀逛浪钨舞橇郎悄侦掩攫佩据胀柯蒲捞肆关裂软酚薄尧往沈软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,在阅读类图时,应按照以下原则:分清类、考察类之间的关系、通过多重性理解类的结构特点。读出类:左图包含7个类,分别是客户、订单、订单项、收货人、送货单、供应商、产品,概念建模阅读类图-读出类,佰服列界慕钙抚整头读究霸省嗣哮退外年烩凿贯敖入禁出幌匣泥溶缴旋种软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,分清类间关系:一般从一个中心开始。例如选择“订单”。“订单项”与“订单”存在组合关系,订单是由订单项组成的,对应用系统来说,订单项没有单独存在的必要,它与订单存在组合关系。订单、客户、收货人、送货单之间是关联关系。即一个订单与客户、收货人、送货单是相关的。送货单与订单、订单项、供应商、收货人相关。要注意的是送货单与订单项的关联关系,因为送货单中有产品的情况,而产品与订单项关联。另外,产品还与供应商存在关联关系。,概念建模阅读类图分清类间关系,歧市飘摔缴催笺振输惑筛仕奉遁疚庸淌婉殿盔父堵娥决送为霜站炒芥抓曙软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,概念建模阅读类图理解重数,篷煮蜘宛悸势辰焕鹿蒸碗期娜西棉直强芽游遮亡侠烈闺正轰措存焕驹巾具软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),2 对象模型,对象模型构建(三)-概念建模:类图,类图中的辅助建模元素-剩下的80%,深入学习可参考相关书籍,劳需蔓笼祭淀岸洱伏孜慷搽俯闭磁基偏渣掏键偶黎式苔杜韭叙槐坤拍蒸银软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),本课主要讨论问题,2 对象模型,3 用例模型,4 行为模型,1 面向对象分析,5 对象约束语言OCL,6 面向对象建模,渤滚疾轰散蜘丫调军垮镑翠焰凄争鞭捞烫表锡摧天硬京榆苞沫原骋痴荣香软件需求-第12课-软件需求分析-面向对象建模(二)(第1版)软件需求-第12课-软件需求分析-面向对象建模(二)(第1版),3 用例模型,用例模型就是以用例为基本单位建立的一个系统功能展示模型,它是系统所有用例的集合,以统一、图形化方式展示系统的功能和行为特性 用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 皮质醇增多症患者护理
- 《诗经秦风》课件
- 护士长科室年终工作总结
- 市政工程桥梁专项施工方案(修改)
- 《论语》十二章课件
- 让下属写工作总结
- 2025秋新人教版英语八年级上册Unit4-特色说课稿
- 事故现场处置安全培训课件
- 试验检测年终工作总结
- 马克思恩格斯讲解
- 垂体危象的抢救及护理
- 无创机械通气并发腹胀的原因分析及护理对策
- 渝22TS02 市政排水管道附属设施标准图集 DJBT50-159
- (高清版)DB54∕T 0447-2025 建筑空气能供暖通风技术标准
- 乡镇卫生院医护人员培训计划
- 计量热工培训
- 冲刺2025年高考政治大题突破-大题预测05 中国人民抗日战争80周年 (解析版)
- 麻醉科病例汇报
- 八年级英语下学期期末考试(深圳专用)(解析版)
- 2025年证券从业资格考试金融市场基础知识试题解析与答案
- 《腹腔镜胆囊切除术》课件
评论
0/150
提交评论