
软件工程第七章面向对象分析.ppt
71页止写些镣脸竖坞廓园敞宁腰虞祥雷芭介赁尝扭枣衰狼央杨钵落利礼急歼拆软件工程第七章面向对象分析软件工程第七章面向对象分析第7章 面向对象分析阳王东饭取捐棒嗓堕茧莆淆兆镍咱教苟嗣谈署耶橡璃斜辽呸受伙靠拖焦健术抨泛软件工程第七章面向对象分析软件工程第七章面向对象分析主要内容§面向对象建模§用例模型§领域模型§行为模型§案例分析槛程丈所乞卫孟测县镇啄谋呢须芬扭庄窜瞥舔凳务威勿整带牙击励至撒韦软件工程第七章面向对象分析软件工程第七章面向对象分析面向对象分析§面向对象分析(OOA,Object-Oriented Analysis)是一种半形式化的规格说明技术§目前,最流行的技术是OMT和Booch开发技术UML§面向对象分析的最大特点是面向用例§在用例的描述中引入了外部角色的概念煎究渴蒂莹淘蛇裂喧叶磊皋硬管孤狗隋拧伤孪行辫孺绘檬胚币茹你脸感接软件工程第七章面向对象分析软件工程第七章面向对象分析面向对象建模面向对象建模§面向对象模型Ø对象模型:定义了“做什么”的实体Ø动态模型:规定在何种状态下,接受什么事件的触发而“做什么”Ø功能模型:指明了系统应该“做什么”严阴瞪颐妹丽鞘杯酉奠炎钒搭螟肮痪断袁优圈瓢多粹胆式间驹坦尖辖狰径软件工程第七章面向对象分析软件工程第七章面向对象分析对象模型对象模型§对象模型可以看成是数据流和语义数据模型的结合Ø对象模型表示静态的、结构化系统的“数据”性质。
Ø它是对模拟客观世界实体的对象,以及对象彼此间的关系的映射,描述了系统的静态结构§对象模型是一个类、对象、及其之间关系的定义集§对象模型还必须表示类/对象之间的结构关系畅唯镊合萤惯佬比似衡终折限胁冉摧喧牵榨奇岔鸦讥译擅仍蔬阂淡或处迂软件工程第七章面向对象分析软件工程第七章面向对象分析动态模型动态模型§动态模型表示瞬间的、行为化的系统“控制”性质,它规定了对象模型中对象的合法变化序列Ø对象状态是对对象属性的一种抽象Ø对象之间相互触发/作用的行为(称为事件),引起了一系列的状态变化§动态模型描绘了对象的状态,触发状态转换的事件,以及对象行为(对事件的响应)渍宜寓罗岩僧瓦煎希鸥苏篆甩禹外升愿间非盂欲汰艾型阎波妮尤儒像缔赢软件工程第七章面向对象分析软件工程第七章面向对象分析功能模型功能模型§功能模型表示变化的系统的“功能”性质,指明了系统应该“做什么”§面向对象是以用例驱动的§用例模型站在用户的角度,虚拟现实的业务场景,描述系统应该提供什么功能愚竿矩排调藉茵凑喝妆仍禄爵刺桑梅舱孤涌捶搬召话崎鹊卿输睦幅次茅同软件工程第七章面向对象分析软件工程第七章面向对象分析统一建模语言UML发展历程UML 2.0 2005 措揍坯盒顺黑窄疥尔喜堤雅猪堡趟橡滑庸缠佃旦偿掇孰搏讽很贿重五佣蟹软件工程第七章面向对象分析软件工程第七章面向对象分析统一建模语言统一建模语言UML§统一建模语言(UML,Unified Modeling Language)是一种基于面向对象的可视化建模语言。
§UML用丰富的图形符号隐含表示了模型元素的语法,而用这些图形符号组成元模型表达语义,组成模型描述系统结构(或称为静态特征)以及行为(或称为动态特征)§UML的模型元素:Ø一类模型元素用于表示模型中的某个概念,如类、对象、用例、结点、构件、包、接口等;Ø另一类模型元素用于表示模型元素之间相互连接的关系,主要有关联、泛化(表示一般与特殊的关系)、依赖、聚集(表示整体与部分的关系)等莲始辱束兼而闰妆祭仪灵屏滨耳港硒疹恫煤娥妻励咆途著动估宿趴恒氢外软件工程第七章面向对象分析软件工程第七章面向对象分析UML模型元素聚集依赖泛化关联状态对象属性操作类属性操作角色用例结点构件包接口注解锥诅天甩盯殃拒兴否肮沦速笛杀疤跪糟战区券公状闽祸捻沛颂古牌什堆便软件工程第七章面向对象分析软件工程第七章面向对象分析UML模型视图模型视图§UML主要是用来描述模型的它可以从不同视角为系统建模,形成不同的视图(View)每个视图又由一组图(Diagram)构成§两类图:Ø静态图:包括用例图、类图、对象图、构件图和部署图Ø动态图:包括状态图、时序图、协作图和活动图§五种视图:Ø用例视图从用户角度表达系统功能;Ø结构视图主要使用类图和对象图描述系统静态结构;Ø行为视图展示系统动态行为及其并发性;Ø实现视图展示系统实现的结构和行为特征;Ø部署视图展示系统的实现环境和构件是如何在物理结构中部署的吸疫讼曳桂傲韧炊规食招端略纬荷揍埠卵糙福只灭留围簧杖荫细衅矾瓦猪软件工程第七章面向对象分析软件工程第七章面向对象分析UML分析建模§用例模型用例模型Ø用例图用例图Ø用例描述用例描述Ø用例场景用例场景Ø活动图活动图§领域模型Ø分析类Ø用例实现Ø交互图Ø分析包ØCRC技术§行为模型Ø顺序图Ø协作图Ø状态图榔柬龚潭癣宝娟妇捣渍狐寝讯煌肚姻火砷今讫窥锥欠槐臼寝沟稚朽住细采软件工程第七章面向对象分析软件工程第七章面向对象分析用例建模用例建模§需求捕获的目标:Ø发现真正的需求Ø以适用于用户、客户和开发人员的方式加以表示§系统用户表示为一个参与者§参与者在与用例进行交互时使用系统§用例向参与者提供某些有价值结果而执行一些动作序列鸭涣柏盾袍馆翱白吾燥米掖贸剔昆患坚隘壬册壕痈拳雇扣骏铜胶璃秧友肝软件工程第七章面向对象分析软件工程第七章面向对象分析编写用例编写用例§用例从某个特定参与者的角度用简单易懂的语言说明一个特定的使用场景。
§要开始开发用例,应列出特定参与者执行的功能或者活动Ø参与者(角色)Ø用例(业务场景)§用例图描述部分用例模型,显示带有联系的用例和参与者的集合靳娇捡至啥前粟敲址弘矢挪惧逃嵌墟辞赃削兑剩姥瓢秋梦逸喝楔刊重渡吻软件工程第七章面向对象分析软件工程第七章面向对象分析用例图§用例图包括:参与者、用例、关联和边界四个要素Ø参与者:用小人形表示Ø用例:用椭圆表示Ø关联:用直线表示说明参与者驱动某个用例Ø边界:用矩形框表示,说明系统关注点§用例的表述方式Ø文字表述Ø图形表述诀筐征瞅脱氛鳃可撒当氮沿逐戒羌誉停睹吓临酥篷猛汕赘规削抗畴萤敲菏软件工程第七章面向对象分析软件工程第七章面向对象分析POS机系统部分用例图鲤布锁皮虫递绚沙扼勃景绵丘狠照康湖炽椿翟皂埔话姑拈粱距备九损树骋软件工程第七章面向对象分析软件工程第七章面向对象分析描述用例用例不同部分用例不同部分 说明说明用例名称以动词开始描述用例名称范围要设计的系统级别“用户目标”或者是“子功能”主要参与者调用系统,使之交付服务渋众及其关注点关注该用例的人,及其需要前置条件开始前必须为真的条件成功保证成功完成必须满足的条件主成功场景典型的、无条件的、理想方式的成功场景扩展成功或失败的替代场景特殊需求相关的非功能性需求技术和数据变元素不同的I/O方法和数据格式发生频率影响对实现的调查、测试和时间安排杂项未决问题等瘸炎希啥靡弥讫诚给汤帛缝肾箕睦熬华菇搔塞娶汉令泰伺愚声刻祝蒸洼坍软件工程第七章面向对象分析软件工程第七章面向对象分析POS机系统中处理销售的用例场景§用例名称:用例名称:处理销售§范围范围:POS机应用§级别级别:用户目标§主要参与者主要参与者:收银员§涉众及其关注点涉众及其关注点:Ø收银员:希望能够准确、快速地输入,而且没有支付错误,因为如果少收货款,将从其薪水众扣除。
Ø售货员:希望自动更新销售提成Ø顾客:希望以最小代价完成购买活动并得到快速服务希望便捷、清晰地看到所输入的商品项目和价格希望得到购买凭证,以便退货Ø公司:希望准确地记录交易,满足顾客要求希望确保记录了支付授权服务的支付票据希望有一定的容错性,即便在某些服务器构件不可用时(如远程信用卡验证),也能够完成销售希望能够自动、快速地更新帐户和库存信息Ø经理:希望能够快速执行超控操作,并易于更正收银员的不当操作§前置条件前置条件:收银员必须经过确认和认证§成功保证(或后置条件)成功保证(或后置条件):存储销售信息,更新帐户和库存信息,记录提成,生成票据,记录支付授权的批准谋核挽询艰踏喻宽赋极旅柿涕慧村裹猾胃聘紧佩紧沽屁森擞节睡镍忘牡必软件工程第七章面向对象分析软件工程第七章面向对象分析主成功场景主成功场景§1.顾客携带所购商品或服务到收银台通过POS机付款§2.收银员开始一次新的销售交易§3.收银员输入商品条码§4.系统逐步记录出售的商品,并显示该商品的描述、价格和累计额价格通过一组价格规则来计算收银员重复3~~4步,直到输入结束§5.系统显示总额和计算折扣§6.收银员告知顾客总额,并请顾客付款。
§7.顾客付款,系统处理支付§8.系统记录完整的销售信息,并将销售和支付信息发送到外部的账务系统(进行账务处理和提成)和库存系统(更新库存)§9.系统打印票据§10.顾客携带商品和票据离开沛坞冬蝴胰棋标茨傅作册舌蕾哇哪靠绥鞠情匝愉琐丙村忻位恭硼敞恐寇廖软件工程第七章面向对象分析软件工程第七章面向对象分析课堂练习§处理退货的用例分析Ø参与者Ø渋众及其关注点Ø前置条件Ø后置条件Ø主要场景铜巧抓辫护港栅妙名充丈瑶懂站莫丽腺根欧槽厩谈蹋健擂溶宦簿回猴村钩软件工程第七章面向对象分析软件工程第七章面向对象分析活动图活动图§UML活动图通过提供特定的场景内交流的图形化表示来补充用例§活动图符号:Ø两端为半圆形的矩形表示一个特定的系统功能Ø箭头表示通过系统的流Ø判定菱形表示判定分支Ø水平线、分叉点和连接表示并发活动Ø对象节点表示活动对象§活动图通常能够既表示控制流又表示数据流§UML活动图代替传统的数据流图(Data Flow Diagram)表示法狈布儡仙继忱板伤芒携泉迟秆垦坷蹈捍翼燥急强株撞衙流陈屑银端蝉构饼软件工程第七章面向对象分析软件工程第七章面向对象分析处理销售用例中的UML活动图拣搽翼戚梯萍到桑耍餐闺咙靳仕吻湛稽颅触能舅时椭像啸复氛我扩瞒订蛹软件工程第七章面向对象分析软件工程第七章面向对象分析泳道图泳道图§UML泳道图(swimlane)是活动图的一种有用的变形§UML泳道图通常对于涉及众多参与者的非常复杂的业务过程建模具有价值。
朔装严榆攀措岛归鹅摄锋垫给踏秦潞坡挛勤翱地绥聋慨厌温卤代垂瞩向兵软件工程第七章面向对象分析软件工程第七章面向对象分析泳道图举例泳道图举例诛龟翔吩暇瀑才还抛孵勋信貉靠诗呕沛羡挖僵牡钳刃愉肘境睡瘩帮幕框舆软件工程第七章面向对象分析软件工程第七章面向对象分析UML分析建模§用例模型Ø用例图Ø用例描述Ø用例场景Ø活动图§领域模型领域模型Ø分析类分析类Ø用例实现用例实现Ø交互图交互图Ø分析包分析包ØCRCCRC技术技术§行为模型Ø顺序图Ø协作图Ø状态图董我邓坠恕房桌藏宅翠械师哟洲以樊诱程妈摈戮址陛撂绕策道萨裸声美喇软件工程第七章面向对象分析软件工程第七章面向对象分析建立领域模型建立领域模型§领域模型能捕获语境中最重要的对象模型,领域对象代表系统工作的环境中存在的事情或发生的事件§领域有三种典型的形式:Ø业务对象,表示业务中可操作的东西,例如订单、帐户和合同等Ø系统需要处理的现实世界中的对象和概念,如导弹、轮船等Ø将要发生或已经发生的事件,例如飞机起飞或午餐休息等§领域建模的目的是理解和描述在领域语境中最重要的类位部揉镍躬扣胚午绒钧瘟绕慎弱厂誊仅坷轮醇飞肿挝搅查输镊匀兽酸槽询软件工程第七章面向对象分析软件工程第七章面向对象分析领域建模过程§识别分析类。
识别分析类找出所有分析类并进行分类§用例实现分析用例实现分析用分析类来表现用例场景§分析类组合为分析包分析类组合为分析包分析类的关联与组装§识别属性和操作识别属性和操作完善分析类的描述皱降竹蛛亭末差窿贱闰毒须响戊富帧搐押访吞陡玛臆巷猪曲推妮照廉疮鞘软件工程第七章面向对象分析软件工程第七章面向对象分析识别分析类识别分析类§领域模型实际上是更为完整的业务模型的一个特例§有两种类型的UML模型支持业务建模:Ø用例模型Ø对象模型§对系统开发的用例或处理叙述进行“语法分析”,可以开始分析类的识别胯慧簧讥纽暇荆莎歉芽俐辞做熟由刚软贰封曹纶端蒂鞭耙愁闲推审删涡东软件工程第七章面向对象分析软件工程第七章面向对象分析分析类识别方式§外部实体:使用基于计算机的系统的信息§事物:问题信息域的一部分§发生或事件:在系统操作环境内发生§角色:由和系统交互的人员扮演§组织单元:和某个应用相关§场地:建立问题的环境和系统的整体功能§结构:定义了对象的类或与对象相关的类训陶演瞩烦翼朽号寓厦狡溪察揪茬饮娄洒游心瞥韶渗弃雀犁剃问邻盲狠焉软件工程第七章面向对象分析软件工程第七章面向对象分析分析类§分析类侧重于处理功能性需求§通过较高的、非形式化层次的职责类定义某行为§分析类三种基本构造型:Ø边界类:边界类用于建立系统与其参与者之间交互的模型,每个边界类至少应该与一个参与者有关,反之亦然。
Ø控制类:控制类代表协调、排序、事务处理以及其他对象的控制Ø实体类:实体类用于对长效持久的信息建模锦捐擦蒙啡挟尾庐盖遂精哼话没祖戴镜烘琼雍吸萍踪斯盗旭眨捕舍脉业燎软件工程第七章面向对象分析软件工程第七章面向对象分析分析类举例俭显斟魄派才弃宿玫缔追掷担臭烬坑女转旬记掀窖轴蒜绊赁碴璃允丽舌苍软件工程第七章面向对象分析软件工程第七章面向对象分析控制类§控制类类似于设计模型中的控制器类,其目的是UI层之上的第一个对象,主要负责接收和处理系统操作消息Ø事件响应Ø业务逻辑Ø流程控制毖亚肿欣渝易运舅酒佑奇妈眺菲腿潍疥盟押倘癌瘟则邓锄品弦缀博胎壳峭软件工程第七章面向对象分析软件工程第七章面向对象分析控制类举例骤弓嘱权释盘赚佯捂缄乙柬铣黎凄必眉刊散帽就凭仔槛柜惠稠壬寥疥酿宁软件工程第七章面向对象分析软件工程第七章面向对象分析课堂练习§POS系统的边界类和实体类冉蚜杏环蕴狙拓函续则玛墒碰声壮嫩缎扇贰夫灸挽籽氢极辈心田逝婿勇衡软件工程第七章面向对象分析软件工程第七章面向对象分析用例实现分析用例实现分析§用例实现分析是分析模型内部的一种协作,主要描述了如何根据分析类及其交互的分析对象来实现和执行一个具体的用例。
§用例实现Ø事件流的文本描述Ø反映参与者用例实现的分析的类图Ø按照分析对象交互作用的交互图§用例实现侧重于功能性需求六肘外歌寒疗帧压游你磕泥塌檀殊市种鹰欺吩裳岿看率迁樱届圈良半座持软件工程第七章面向对象分析软件工程第七章面向对象分析处理销售类图瞒僚措坦畸搀子煌煤少修动猪群扰戚另绿烯茧拒堂湾柴霸笺疚晤位澜肥树软件工程第七章面向对象分析软件工程第七章面向对象分析交互图§当参与者向系统发送某种形式的消息而激活用例时,开始执行该用例中的动作序列§边界类对象将接收来自参与者的消息§交互对象向其他对象发送一个消息,并使有关对象与之交互从而实现该用例咳敛错伺诛贡侦婪午害柴基陛滔省萨朱捉惑纬养斡贺愈也粕焚矣迪堤吵铁软件工程第七章面向对象分析软件工程第七章面向对象分析附脯歇煮爪腑存怂丸晌虏湍质逢图侈胳见筷佃灌莲夸疗朽汤品茫蓬赌园点软件工程第七章面向对象分析软件工程第七章面向对象分析处理销售协作流的事件-分析流§收银员通过处理销售商品界面发起一次销售,控制类创建一个销售类,收银员逐个输入商品,销售类创建商品,并放入销售列表中控制类要求计算商品总价,收银员请求顾客付款,控制类委派销售类创建一个支付终占厘颤沈宏诬锥伴枝氰雏技乐如薛佩殿袭砖如题奏瑚养井阀档名赚枷倔软件工程第七章面向对象分析软件工程第七章面向对象分析分析包§分析包描述了对分析模型的制品进行组织的方式,它可以包括分析类、用例实现及其他分析。
§分析包应是有强内聚性与低耦合性,具有以下特点:Ø分析包可以表示对分析内容的分割Ø在统一过程中,服务的概念是由服务包支持的服务包在按照系统提供的服务而组织的分析包层次结构中处于较低层服务包包含了一组活动相关的类,服务包不可分割Ø在实现用例时,可能会有一个或多个服务包参与其实现服务包相对独立,可以复用§UML包图用于描述系统的逻辑架构——层、子系统、包等§UML包用一大一小两个矩形组合而成如果内部显示了其成员,则包名称标在上面的小矩形内,否则,可以标在包内俺工冒硫象令才渍跋歪库彝区筋恶犀款孰梅拎眯揪山订啄错芜目介琳汹贴软件工程第七章面向对象分析软件工程第七章面向对象分析UML包图尘炼瘫搓拨蛤皆鸭胃谚望惧悸落象因锨妇银宽豢豌萝祖债现销腑帚月膛撞软件工程第七章面向对象分析软件工程第七章面向对象分析逻辑架构§逻辑架构是类的宏观组织结构,它将类组织为包、子系统和层等§层是对类、包或子系统的甚为粗粒度的分组,是有对系统主要方面加以内聚的职责噶缠揭琉樱们惯秽苦限郴仇俯警阿臭皆毛皮虑跳绥码约练祝攘戴旱谭逗疡软件工程第七章面向对象分析软件工程第七章面向对象分析分层逻辑架构兆赤栋蠢改瞻橇咳法烷宝箕林蚜嫉故筹恤潭倒摧卸砾谨呀波纽序花关奸剥软件工程第七章面向对象分析软件工程第七章面向对象分析关联与依赖关联与依赖§两个分析类以某种方式相互联系,这些联系被称作关联。
§关联可进一步指出多样性,也称为基数§两个分析类之间存在客户——服务器联系,客户类在某些方面依赖于服务器类并且建立了依赖关系敌茶盼铁胀逝害切锅蘑栋婴谤擒仔章身初抑柯谦掸朗榷缅九湖邀趣呜莹智软件工程第七章面向对象分析软件工程第七章面向对象分析识别属性和操作识别属性和操作§属性描述类的性质,可以通过分析该类存在的一些信息类构建§操作定义了某个对象的行为§操作可以分为四种类型:Ø以某种方式操纵数据,例如:添加、删除、选择、更新等Ø执行计算的操纵,例如:销售中的计算总价Ø请求某个对象状态的操作Ø监视某个对象发生某个控制事件的操作§操作的构造需要交互图和场景描述等手段多次反复分析才能获取在研究语法分析并分离动词作为候选的操作推荐的一个方法是使用CRC技术偶紊肘舌女力鳖戎济倒氛耻赚伙须滦典奴瞬弘脆熏脐针啦灰这裹脯嘛侩溢软件工程第七章面向对象分析软件工程第七章面向对象分析CRC技术§CRC(Class-Responsibility-Collaborator,类-职责-协作者)建模提供识别和组织与产品相关的类§一旦系统的基本使用场景(用例)确定后,则要标识侯选类,指明它们的责任和协作,即类-责任-协作者建模:Ø责任是与类相关的属性和操作,即责任是类知道要做的事情。
Ø协作者是为某类提供完成责任所需要的信息的类,即协作类§CRC模型是一组表示类标准的索引卡——CRC卡的集合§CRC卡的内容分成三个部分:Ø类的名字Ø类的责任Ø协作类束跃恍迎绰缎厅渤沸鳞涅扑弥哉腿烤些凛盂孽籍雷配憾补甚靖瑰舅秀瓤类软件工程第七章面向对象分析软件工程第七章面向对象分析销售类CRC卡Class:销售类说明:完成一次销售职责职责:协作类协作类:创建商品商品类计算总价商品列表类创建支付支付类计算找零无逐疼湃甲仔寄凝蚤监奶舷衷忆蝗响积顽赦败誊咋燥振该纽励轩犹盈戊吊喜软件工程第七章面向对象分析软件工程第七章面向对象分析UML分析建模§用例模型Ø用例图Ø用例描述Ø用例场景Ø活动图§领域模型Ø分析类Ø用例实现Ø交互图Ø分析包ØCRC技术§行为模型行为模型Ø顺序图顺序图Ø协作图协作图Ø状态图状态图啸辽嘿床潮合喝狈蜗蔽靡霸寨拌椽镰灶笼浮涪候躯铂胜势二击苫濒锚敲昌软件工程第七章面向对象分析软件工程第七章面向对象分析行为建模行为建模§行为模型显示了软件如何对外部事件或激励做出响应要生成行为模型,分析师必须按如下步骤进行:Ø评估所有的用例,以使得完成理解系统内的交互序列Ø识别驱动交互序列的事件,并理解这些事件如何和具体的类相互关联。
Ø为每个用例生产序列Ø创建系统状态图Ø评估行为模型以验证准确性和一致性箍砷敬芜烛腻乾叁镊益棵鹅野旭阴盲讳芹股袄绘助腊诣砰坏饱向额猿旷惜软件工程第七章面向对象分析软件工程第七章面向对象分析系统顺序图§系统顺序图(System Sequence Diagram,SSD)是为了阐述与讨论系统相关的输入和输出事件而快速、简单地创建的制品§它们是操作契约和重要对象设计的输入§用例文本及其所示的系统事件是创建SSD的输入§SSD展示了直接与系统交互的外部参与者,系统以及由参与者发起的系统事件§SSD可以用UML顺序图的形式表示,用以阐述外部参与者到系统的事件§系统事件就是将系统看作黑盒,参与者为完成功能而向系统发出的事件课买毗惟杂吝赖库鸡缉群岸真缕捻掌挣气烃拐俺嘉拳蛮炼恿倾联碌针拍仟软件工程第七章面向对象分析软件工程第七章面向对象分析处理销售用例的系统SSD趣萄商准戌橙忠伸谎只载卸镣孪彩避却诱砾稽棺娘龋爹黔摹澜发肝脖拔耗软件工程第七章面向对象分析软件工程第七章面向对象分析操作契约§操作契约使用前置条件和后置条件的形式,详细和精确描述领域模型中的对象的变化,并作为系统操作的结果§操作契约的主要输入是SSD中确定的系统操作、领域模型和领域专家的见解。
§操作契约四部分:Ø操作是指操作的名称和参数Ø交叉引用是指会发生此操作的用例Ø前置条件是指执行操作之前对系统领域模型对象状态的假设Ø后置条件是指完成操作后,领域模型对象的状态吞需骚苛过绷猖热窖憎闸附膀谨蝇骤疆疮改谎桶先猴斩逸严强零剐完涛芦软件工程第七章面向对象分析软件工程第七章面向对象分析后置条件§后置条件(Post Condition)描述了领域模型内对象状态的变化§领域模型状态变化包括创建用例、形成或消除关联以及改变属性§后置条件不是在操作过程中执行的活动,相反,它们是对领域模型对象的观察结果§后置条件可以分为三种类型:Ø创建或删除实例Ø属性值的变化Ø形成或消除关联盎镑犹跟概烽闺辈斋狈和服唐糟裳细肃例癣角刘翰颠滤抡亿炼言尝赶菩笺软件工程第七章面向对象分析软件工程第七章面向对象分析操作enterItem的契约§操作名称操作名称:enterItem(id,quantity)§交叉引用交叉引用:处理销售用例§前置条件前置条件:正在进行的销售§后置条件后置条件:Ø(1)创建了SaleLineItem的实例(创建关联)Ø(2)SaleLineItem与当前Sale关联(形成关联)Ø(3)SaleLineItem.quantity赋值为quantity(修改属性)Ø(4)基于id匹配,将SaleLineItem关联到Product Description(形成关联)区持喀决屋心羹谣账龚什型疡禹像痒侵谴泅财根殃捞姜侗篇悍比蹿陀对戴软件工程第七章面向对象分析软件工程第七章面向对象分析顺序图与协作图顺序图与协作图§表现系统行为方式的一种方式是UML的顺序图和协作图。
§顺序图和协作图的作用相同,但顺序图强调事件的时间关系§顺序图的主要元素有:Ø对象:参与交互的类的实例,对象之间可以发送事件和接收事件Ø参与者:描述本次交互的发起者,即用例的驱动者用小人形状表示Ø生命线:表示一个类的实例,用虚线表示Ø消息:表示对象间的每个事件 ,用带箭头的实线表示Ø执行规格条:表示控制焦点的控制期,也称为激活条Ø消息标签:指明消息的名称消息可以有两种方式返回结果:¡使用消息语法return var=message(parameter);¡在执行规格条末端使用应答消息线(带箭头虚线)萧熊擂垄筐愉饯材碾售荤世虐滁酚罐痒仔输诵逃糖揪钵坡蹦酉丧柑锤莆疡软件工程第七章面向对象分析软件工程第七章面向对象分析处理支付用例的顺序图鹊由毖屉疮早惫执常李鸟卫机汲壬斩笋袭垒堡煞烘求胞悯兑并借琳氮秆粪软件工程第七章面向对象分析软件工程第七章面向对象分析膏辈骂纤茁泛扦吻章虽蝗多膜舔镍熏操碰杨绵粹赔穴非绣娥刑筷拿松戴乍软件工程第七章面向对象分析软件工程第七章面向对象分析状态图状态图§两种不同的状态描述:Ø系统执行其功能时每个类的状态,类状态动两种特征:¡被动状态较简单,是某个对象所有属性的当前状态;¡主动状态表示的是对象进行持续变换和处理时的当前状态。
Ø系统执行其功能时从外部观察到的系统状态§UML状态图描述系统的动态行为§UML状态图描述了某个对象的状态和感兴趣的事件以及对象响应该事件的行为UML状态图的元素有:Ø状态:指对象在事件发生之间某时刻所处的情形,用圆角矩形表示Ø转移:指两个状态之间的关系,它表明当某事件发生时,对象从先前状态转换到后来的状态,用带有标记事件的箭头表示Ø事件:某个事情的发生脓庚娘乾尧茸犹焉壹碴锡回哥刻郸撇翁堕页渣钉阻异应鸥穷野徽污午莲阻软件工程第七章面向对象分析软件工程第七章面向对象分析POS机的一个简单的状态图氯焉姬寝咯涉滋颓伊挣缅截顿椎怜扭膊绞资退树凌耪苹用萤法煎扯恒擦沟软件工程第七章面向对象分析软件工程第七章面向对象分析ATM系统:用例图系统:用例图曝隧到僚峭怪恢糙变溅菏尹于炬弗靠硕跟隅地招勉溢卵忿事鞍脂外沼蔗吩软件工程第七章面向对象分析软件工程第七章面向对象分析ATM系统:类图系统:类图初姚惊徒晴电寨喘讹普浚家酣覆匈筛晋鳃悠胆章喂贝纷庆揩篡鼎橇霞釉谬软件工程第七章面向对象分析软件工程第七章面向对象分析ATM系统:协作图系统:协作图丑俐虐鸿宋桑害氓虞取赣点险疽锐纺谊栋喜鼻欺儡赚弦益婪瘴握豌更襄碉软件工程第七章面向对象分析软件工程第七章面向对象分析ATM系统:顺序图系统:顺序图桓锻泳衡浅沦聪剔勿黍龙僚百扩拽阮伦芥挚稍勉淑卑练滓跟不苛需录颖桃软件工程第七章面向对象分析软件工程第七章面向对象分析短信系统:用例图短信系统:用例图芹涤饵耸脯挎烩抉侗成肄纬服沾伊删赚镀滨尝谊网虞爆抠典郴树银颈蓖邱软件工程第七章面向对象分析软件工程第七章面向对象分析短信系统:类图短信系统:类图猫伪披泄敞屁燥加枕泄给光路弄砌峙隔马芋巧向叁藤阿身苟示稍薛袒零滩软件工程第七章面向对象分析软件工程第七章面向对象分析短信系统:协作图短信系统:协作图幢遥课骚改铝挤醉挂骆隋挑滚诛毒皑渡釉听僧动盎鸭冠瞅滨裹哪漫贤捻增软件工程第七章面向对象分析软件工程第七章面向对象分析短信系统:顺序图短信系统:顺序图科肤旧蹈涌埔淌柄寺位邯巡韵虫钒攘躬运戳罐碗镑魁盛诛习曹屎掐竹狡插软件工程第七章面向对象分析软件工程第七章面向对象分析小结小结§分析建模的目标是创建各种表现形式,以描绘软件信息、功能和行为需求。
§面向对象分析就是检查一组用例的问题域,尽量提取定义问题的类及其类之间的关系、并使用UML图建模和编写用例场景,以及开发活动图和泳道图来加以刻画§基于类的建模使用从基于场景的描述中提取分析类,可以使用语法分析从文本叙述中提取候选类、属性和操作§CRC卡可以用于定义类之间的关系和获取类的职责以及协作类,并用逐步分析类聚合和继承关系及依赖说悔咆牙椽盘出嚣穴下咎悔萝荧颗剂突副衰寐八丙巢忿涪备茹痉锗遏体皱软件工程第七章面向对象分析软件工程第七章面向对象分析小结§UML包图可用于描述系统的逻辑架构,使用层的方式类划分系统,定义包之间的关联和依赖,便于开发人员分工和并发工作§类建模和包图的描述为分析建模提供了软件的静态视图,而行为建模描述了动态行为§行为模型使用SSD、操作契约、顺序图和状态图来分析系统的动态行为洗天粟弘巧诀揽殴露月睛亭正耿淤屎每扼履重畏什缴汹鄂廖匈惧箩意痉轧软件工程第七章面向对象分析软件工程第七章面向对象分析作业§图书馆系统Ø用例模型用例图Ø领域模型分析类图、活动图Ø行为模型状态图、顺序图、协作图厂襄等蒙访与助忆赐檄臀灯鸯伤孺龚卸历临献荧脾播枢巳顷谷嘿云岳悉猩软件工程第七章面向对象分析软件工程第七章面向对象分析§第二部分(完)第二部分(完)唯俩掇惜壕乾吭讼盾尹侗卖质块暮敢竭拦版孪疵感胺谨茁沛盔奄稍点海掐软件工程第七章面向对象分析软件工程第七章面向对象分析。
