第7章包面向对象分析与设计&UML27.1包的基本概念•在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间“阡陌交纵”的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。这也就是引入了“包”这种分组事物构造块。•包的作用是:1)对语义上相关的元素进行分组;2)定义模型中的“语义边界”;3)提供配置管理单元;4)在设计时,提供并行工作的单元;5)提供封装的命名空间,其中所有名称必须惟一面向对象分析与设计&UML37.1包的基本概念分解是软件开发中控制软件复杂性的重要手段.在OO方法中,需要考虑如何把相关的类放在一起.包是一个“容器”,可用于组织模型中的相关元素以便更容易理解.包中可以包含其他建模元素,如:类、接口、构件、结点、用例、包等.面向对象分析与设计&UML47.1包的基本概念名称:每个包都必须有一个与其它包相区别的名称包的命名有2种方式:简单包名和路径包名.简单包名:Vision路径包名:Sensors::Vision路径包名中位于前面的是外围包,后面的是内部包.注意包的嵌套层数不应过多.面向对象分析与设计&UML57.1包的基本概念•拥有的元素:在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它包或图面向对象分析与设计&UML67.1包的基本概念•包的可见性:可以用“+”来表示“public”,用“#”来表示“protected”,用“-”来表示“private”面向对象分析与设计&UML77.1包的基本概念包之间可以存在依赖关系.这种依赖关系没有传递性.包之间可以存在泛化关系.面向对象分析与设计&UML87.1包的基本概念•《use》关系:是一种默认的依赖关系,说明客户包(发出者)中的元素以某种方式使用提供者包(箭头指向的包)的公共元素,也就是说客户包依赖于提供者包•《import》关系:最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素•《access》关系:只想使用提供者包中的元素,而不想将其命名空间合并则应使用该关系•《trace》关系:想表示一个包到另一个包的历史发展,则需要使用《trace》关系来表示面向对象分析与设计&UML97.1包的基本概念•首先根据《use》关系,可以发现Client包使用Server包,Server包使用System.Data.SqlClient包,结合其元素,不难得知Client负责Order(订单)的输入,并通过Server来管理用户的登录(LoggingService)...