[最新]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第1页
[最新]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第2页
[最新]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第3页
[最新]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第4页
[最新]软件需求-第12课-软件需求剖析-面向对象建模(二)(第1版)_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论