- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对象约束语言OCL
UML理论及实践 为了构造一个面向对象的软件系统必须考虑系统的逻辑和物理两个方面。 逻辑方面需要发现和描述对象类、接口、协同、交互和状态等事物,物理方面需要找出组件和节点。 UML提供了两种物理表示图形:组件图和配置图。 组件图表示系统中的不同物理组件及其联系,它表达的是系统代码本身的结构。 配置图由节点构成,节点代表系统的硬件,组件在节点上驻留并执行。配置图表示系统的软件组件与硬件之间的关系,它表达的是运行系统的结构。 组件图和配置图用于建立系统的实现模型。 对象约束语言(OCL)用于表达对模型元素的约束,是UML的重要组成部分。 组件 组件代表系统的一个物理实现块,代表逻辑模型元素如类、接口、协同等的物理打包。 组件本身遵从和提供一组接口的实现,用于对系统配置节点上的物理事物建立模型。 常见的组件有系统的配置组件,如COM+组件、Java Beans等。 组件也可以是软件开发过程中的产物,如软件代码(源码、二进制码和可执行码)等。 组件的图标是一个大矩形的左边嵌二个小矩形。组件必须有名字。 简单组件:只标出组件名。 在组件名之后或之下,可以用括在花括号中的文字(即标记值)说明组件的性质,如“{version=2.0}”等。 扩充组件:当需要了解组件所包含的模型元素时,则需要把每个模型元素的名字在组件的大矩形框里列出,这称为扩充的组件。 例:简单组件与扩充组件。 组件在很多方面与对象类相似,如都有名字,都有实例,都能实现接口,都存在着联系等。 组件的实例代表运行期间的可执行软件模块。例如,组件“mymailer:Mailer”就是组件“Mailer”的一个实例,它存在于运行期间。组件的实例只用于配置图中。 组件的性质的表示法与类相同。组件所包含的模型元素的可视性同样有“公共”、“保护”、“私用”等。 但是组件和类有实质性的区别: 组件代表物理事物,而类代表事物的逻辑抽象,因此组件可以用于配置图的节点中,而类不能。 一般组件只有操作,外界只能通过接口接触它们,而类可以直接有属性和操作。 组件是一组逻辑元素(如类、协同等)的物理实现。 组件和类的关系是一种依赖关系,组件依赖于类。 例:右图中的组件“Mailer”依赖于类“Mailbox”、“ RoutingList”和“MailQueue” 。 组件提供接口的实现,一个组件可以实现一个或多个接口。 例:在下图中的组件“字典”实现两个接口: “拼写检查”和“同义词”。 按照组件的作用可以把组件分为以下3种: 1.配置组件(Deployment Component) 配置组件是构成一个可执行的系统的必需的组件,如动态连接库(DLL)、执行程序(EXE)等。 2.工作产品组件(Work Product Component) 工作产品组件是在软件开发阶段使用的组件,它们包括源程序文件、数据文件等。 配置组件是根据工作产品组件建立的。 3.执行组件(Execution Component) 执行组件是执行系统的部件,如COM+的一个对象,它是一个动态连接库(DLL)的实例。 UML的所有扩展机制都可以用于组件。例如,可以在组件上加上标记值描述组件的性质,使用构造型规定组件的种类。 UML定义了以下5个用于组件的标准构造型: 1.executable executable说明一个组件可以在系统的节点上执行。 2.library library说明一个组件是一个静态的或动态的对象库。 3.table table说明一个组件代表的是一个数据库表。 4.file file说明一个组件代表的是一个文件,它包含的是源代码或数据。 5.document document说明一个组件代表的是一个文档。 组件之间可以有依赖联系。组件之间的依赖是指,一个组件的模型元素使用另一个组件的模型元素。 组件也可以通过接口实现依赖联系。 由一个组件实现的接口称为输出接口(Export Interface),意指该接口是组件提供给其他组件的服务。一个组件可以提供多个输出接口。 为一个组件所使用的接口称为输入接口(Import Interface),意指该组件遵从该接口,建立在该接口上。 一个组件可以遵从多个输入接口。一个组件可以既有输入接口,又有输出接口。 通过输入接口和输出接口所实现的组件之间的依赖称为输入依赖(Import Dependency)。 例:组件的依赖接口示例,如下图
文档评论(0)