假如你是架构师,你要做些什么 (2)

  类图是最常见的UML图形,用来描述类的特性和类之间的静态关系,一个类包含三个部分,类的名称,类的属性列表,类的方法列表之间有6种静态关系关联,关联,依赖,聚合,组合,继承,泛化,而相关的一组类及其关系,用一张图画出来就是类图,类图主要是在详细设计阶段化,如果内图已经设计出来了,那么开发工程师只需要按照内图实现代码就可以了,只要类的方法逻辑不是太复杂,不同的工程是实现出来的代码几乎是一样的,从而保证软件的规范统一。

  实践中通常不需要把一个软件所有的类都画出来,把核心的有代表性的,有一定技术难度的内画出来,一般就可以了,除了在详细设计阶段画类图,在需求分析阶段,也可以将关键的领域模型对象图,用例图画出来,这个阶段,关注的是领域对象的识别及其关系,所以通常用简化的类图来描述。

序列图

  

假如你是架构师,你要做些什么

  序列图描述类之间的关系,描述参与者自己的动态调用关系,每个参与者有一条垂直向下的生命线,用虚线表示,而参与者之间的消息,也从上到下表示其调用的前后顺序关系。

  每个生命线都有个结果,只有在参与者活动的时候才是激活的,序列图通常用于描述对象之间的交互,这个对象可以是类对象,也可以是更大粒度的参与者,比如组件,比如服务器,比如子系统。总之,只要描述不同参与者之间的交互的,都可以使用序列图,也就是说,在软件设计的各个阶段,都可以画序列图。

组件图

  

假如你是架构师,你要做些什么

  组件是更大粒度的设计元素,一个组件中通常包含多个类,组件图有时候和包的用途比较接近,组件可以描述逻辑上的组件,也可以描述物理上的组件,比如一个JAR,一个DLL的,因此组件图更灵活一点,实践中,用组件图而不是包图进行模块设计更常见一些。

  组件图描述中间之间的静态关系,主要是依赖关系,如果想要描述组件之间的动态调用关系,可以使用组件序列图,以组建作为参与者,描述组件之间的消息调用关系,因为组件的力度比较粗,通常用于描述设计软件的模块及其之间的关系,需要在设计早期阶段就画出来。

部署图

  

假如你是架构师,你要做些什么

  他是描述软件系统的最终部署情况,需要部署多少台服务器?关键组件都部署在哪些服务器上?部署图呈现的是系统最终物理呈现的蓝图。

根据部署图,所有相关者,客户,老板,工程师,都能够清晰的了解到最终运行的系统,物理上是什么样子?和现有系统服务器的关系,和第三方服务器的关系。

根据部署图,还可以估算出服务器和第三方软件的采购成本。

  因此,部署图是整个软件设计模型中比较宏观的一张图,在设计早期就需要画的一张模型图。根据部署,各方可以讨论是否对这个方案认可,只有对部署图达成共识,才能够继续后面的细节设计,部署图主要用在概要设计阶段。

用例图

  

假如你是架构师,你要做些什么

  主要在需求分析阶段,通过反映用户和软件系统之间的交互,描述软件的功能需求,图中小人物被称为角色,角色可以是人,也可以是其他的系统,系统的功能可能会很复杂,所以一个用例图,可能只包含其中一小部分功能,这些功能被一个巨型框框起来,这个巨型框被称为用力的边界,框里的椭圆,表示一个一个的功能,功能之间可以调用依赖,也可以进行功能扩展,因为用例图中功能描述比较简单,通常还需要对用例图配以文字说明,形成需求文档。

状态图

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyypsd.html