- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、行为者代表一种角色—例如,在自动售货机系统中,使用售货功能的人既可以是张三(买矿泉水)也可以是李四(买可乐),但是不能把张三或李四这样的个体对象称为行为者。 2、一个具体的人可以充当多种不同角色—例如,某个人既可以为售货机添加商品(执行供货功能),又可以把售货机中的钱取走(执行取货款功能)。 * * * * * * * * * * 1、多态性:在C++语言中,多态性是通过虚函数来实现的。在类等级不同层次中可以说明名字、参数特征和返回值类型都相同的虚拟成员函数,而不同层次的类中的虚函数实现算法各不相同。虚函数机制使得程序员能在一个类等级中使用相同函数的多个不同版本,在运行时刻才根据接收消息的对象所属于的类,决定到底执行哪个特定的版本,这称为动态联编,也叫滞后联编。 2、重载:在C++语言中函数重载是通过静态联编(也叫先前联编)实现的,也就是在编译时根据函数变元的个数和类型,决定到底使用函数的哪个实现代码;对于重载的运算符,同样是在编译时根据被操作数的类型,决定使用该算符的哪种语义。 * * * * * * 类的名字应该是富于描述性的、简洁的而且无二义性的。 * * * * 1、关联---例如,作家使用计算机,人们就认为在作家和计算机之间存在某种语义连接,因此,在类图中应该在作家类和计算机类之间建立关联关系。 * * * 在上图中,查找一个文件的方法就是,首先定下目录,然后在该目录内查找指定的文件名。 * * * * 普通泛化与9.2.2节中讲过的继承基本相同。 * * 上图给出一个比较复杂的类图示例,这个例子综合应用了前面讲过的许多概念和图示符号。上图表明,一幅工程蓝图由许多图形组成,图形可以是直线、圆、多边形或组合图,而多边形由直线组成,组合图由各种线型混合而成。 * * * 依赖关系:例如,一个类使用另一个类的对象作为操作的参数,一个类用另一个类的对象作为它的数据成员,一个类向另一个类发消息等,这样的两个类之间都存在依赖关系。 * * * * * * * * * * 9.6 功能模型 3.行为者 行为者是指与系统交互的人或其他系统,它代表外部实体。使用用例并且与系统交互的任何人或物都是行为者。 行为者代表一种角色,而不是某个具体的人或物。一个具体的人可以充当多种不同角色。 在用例图中用直线连接行为者和用例,表示两者之间交换信息,称为通信联系。行为者触发(激活)用例,并与用例交换信息。单个行为者可与多个用例联系;一个用例也可与多个行为者联系。 可以把行为者分成主行为者和副行为者,还可分成主动行为者和被动行为者。 9.6.1 用例图 9.6 功能模型 4.用例之间的关系 UML用例之间主要有扩展和使用两种关系,它们是泛化关系的两种不同形式。 (1) 扩展关系 向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。 (2) 使用关系 当一个用例使用另一个用例时,这两个用例之间就构成了使用关系。一般说来,如果在若干个用例中有某些相同的动作,则可以把这些相同的动作提取出来单独构成一个用例(称为抽象用例)。这样,当某个用例使用该抽象用例时,就好像这个用例包含了抽象用例中的所有动作。 9.6.1 用例图 9.6 功能模型 4.用例之间的关系 右图为含扩展和使用关系的用例图。 注意扩展与使用之间的异同: 这两种关系都意味着从几个用例中抽取那些公共的行为并放入一个单独的用例中。通常在描述一般行为的变化时采用扩展关系;在两个或多个用例中出现重复描述又想避免这种重复时,可以采用使用关系。 9.6.1 用例图 9.6.2 用例建模 9.6 功能模型 9.6.2.用例建模 一个用例模型由若干幅用例图组成。创建用例模型的工作包括:定义系统,寻找行为者和用例,描述用例,定义用例之间的关系,确认模型。其中,寻找行为者和用例是关键。 1.寻找行为者 为获取用例首先要找出系统的行为者,可通过请系统的用户回答一些问题来发现行为者。下述问题有助于发现行为者。 谁将使用系统的主要功能(主行为者)? 谁需要借助系统的支持来完成日常工作? 谁来维护和管理系统(副行为者)? 系统控制哪些硬件设备? 系统需要与哪些其他系统交互? 哪些人或系统对本系统产生的结果(值)感兴趣? 9.6 功能模型 2.寻找用例 一旦找到了行为者,就可以通过请每个行为者回答下述问题来获取用例。 行为者需要系统提供哪些功能?行为者自身需要做什么? 行为者是否需要读取、创建、删除、修改或存储系统中的某类信息? 系统中发生的事件需要通知行为者吗?行为者需要通知系统某些事情吗?从功能观点看,这些
文档评论(0)