组件图与部署图潘正军pzj@sise.com.cn13928748182第一页,共五十五页。回顾•状态图–适合描述跨越多个用例的单个对象的行为,不适合描述多个对象之间的协作行为–研究类、参与者、子系统或构件的复杂行为–建立类对象的生命周期模型来描述对象随时间变化的状态行为•活动图–主要用于描述某一方法、机制或用例的内部行为–适合描述多个对象跨越多个用例时的总面貌第二页,共五十五页。结构模型视图用户视图用户视图用例图用例图实现视图实现视图结构视图结构视图行为视图行为视图环境视图环境视图类图类图对象图对象图顺序图顺序图协作图协作图状态图状态图活动图活动图组件图组件图部署图部署图第三页,共五十五页。架构建模•包与接口•构件图•部署图•小结与试验第四页,共五十五页。包(Package)•包可以把众多的图素按其逻辑功能分组,以便理解、反映它们之间的层级关系。这时的包叫子系统。包是纯概念性的,只存在于软件系统的开发阶段。–表示法--文件夹形式,并标识名称。包名第五页,共五十五页。包(Package)2•包里面可以拥有其它元素,类、接口、构件、节点、协作、用例和图,也可有其它包第六页,共五十五页。包的关系依赖:包中的元素需要访问另一个包中的元素,包件的访问依赖关系就产生了。一个包中的元素可以通过导入(import)包来访问另一个包中的元素泛化:第七页,共五十五页。包依赖图第八页,共五十五页。包的使用原则•需要将功能分派到包,使“设计元素”更有秩序,包内高内聚,包间低耦合•将功能相关性非常强的类或者接口放在同一包内第九页,共五十五页。包内元素的分配将和主导参与者关联的边界类所对应的类放在一个包里,有时称为用户界面包将和被动参与者关联的边界类对应的类放在一个包里,有时称为系统接口包将系统要使用的其它工具方面的类放在一个包里,称工具包第十页,共五十五页。包图•包图主要用来表示一个系统的一个适当的逻辑分割,每一个包就像是一个对象的集合,包图利用逻辑阶层的观念,去分解整个系统。•每个包通常放全部内部相关信息,减少外部相关的信息。每个包有相当好的管理内部元素能力,利用其本身的指示和需求去协助个人或团队第十一页,共五十五页。包图第十二页,共五十五页。接口(Interface)•接口是在没有给出对象的实现和状态的情况下对对象行为的描述–表法法--带名称的圆求一元二次方程根第十三页,共五十五页。接口(Interface)•接口包含操作但不包含属性,并且它没有对外界可见的关联。一个或多个类或构件可以实现一个接口,并且每个类都可以实现接口中的操作•接口很少单独存在,而是依附于实现它的类或组件第十四页,共五十五页。接口使用场合•声明一个需要在多个类中多次实现的方法•透露一个对象的程序设计接口而又不透露对象的类•在无关类之间得到相关性,而又不强迫类之间建立某种关系•接口解决了Java的单继承问题,实现和表示分离•接口本身可以多继承第十五页,共五十五页。组件图组件组件33组件组件11组件组件22组件组件44组件组件77组件组件55组件组件1010组件组件99组件组件88组件组件66第十六页,共五十五页。组件/构件(Component)•组件是保存在计算机上的逻辑单元,是定义了良好接口的物理实现单元•它是系统中可替换的部分。•每个构件体现了系统设计中特定类的实现表示法--带有小方框的矩形。第十七页,共五十五页。组件/构件(Component)•良好定义的构件不直接依赖于其他构件而依赖于构件所支持的接口。–在这种情况下,系统中的一个构件可以被支持正确接口的其他构件所替代。第十八页,共五十五页。组件/构件•组件是一个可重用软件构件–一个预先构建的封装的代码模块,它能够与其他组件或是硬编码一道很快生成定制的应用程序•组件单独开发作为软件单元使用,它具有明确的接口,软件通过接口调用组件所提供的服务•多种组件可以联合起来组成更大型的组件,直接建立整个系统。第十九页,共五十五页。组件/构件•组件必须是自包含的,组件设计中必须包括需求、源代码和可执行代码、接口规范、分析和设计模型、测试和其他同类术语•组件必须支持一种或多种用户所...