UML统一建模语言是一个通用的可视化的建模语言,并不是一种编程语言,它是面向对象分析和设计的一种标准化表示,用于对软件进行描述,可视化处理,构造和建立软件系统的文档。
1.UML用关系把事物结合在一起,主要有下列四种关系:
1)依赖(dependency):依赖是两个事物之间的语义关系。
2)关联(association):关联描述一组对象之间连接的结构关系。
3)泛化(generalization):泛化是一般化和特殊化的关系。
4)实现(realization):实现是类之间的语义关系。

2.UML2.0包括14种图,列举如下:
1)类图(class diagram):类图描述一组类、接口、协作和它们之间的关系。
2)对象图(objectdiagram):对象图描述一组对象及它们之间的关系。
3)构件图(component diagram):构件图描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。
4)组合结构图(composite structure diagram):组合结构图描述结构化类(例如, 构件或类)的内部结构,包括结构化类与系统其余部分的交互点。
5)用例图(use case diagram):用例图描述一组用例、参与者及它们之间的关系。
6)顺序图(sequence diagram,也称序列图):顺序图是一种交互图(interaction diagram),顺序图是强调消息的时间次序的交互图。
7)通信图(communication diagram):通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织。
8)定时图(timing diagram,也称计时图):定时图也是一种交互图,它强调消息跨越不同对象或参与者的实际时间。
9)状态图(state diagram):状态图描述一个状态机,它由状态、转移、事件和活动组成。
10) 活动图(activity diagram):活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。
11)部署图(deployment diagram):部署图描述对运行时的处理节点及在其中生存的构件的配置。
12)制品图(artifactdiagram):制品图描述计算机中一个系统的物理结构。
13)包图(package diagram):包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。
14)交互概览图(interaction overview diagram):交互概览图是活动图和顺序图的混合物。

UML视图
1)逻辑视图:逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
2)进程视图:进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
3)实现视图:实现视图对组成基于系统的物理代码的文件和构件进行建模。
4)部署视图:部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。5)用例视图:用例视图是最基本的需求分析模型。

面向对象分析

面向对象分析阶段的核心工作是建立系统的用例模型与分析模型
1)用例之间的关系主要有包含、扩展和泛化。
2)分析模型建立分析模型的过程大致包括定义概念类、确定类之间的关系、为类添加职责、建立交互图等,其中有学者将前三个步骤统称为CRC(Class-Responsibility-Collaborator,类-责任-协作者)建模。类之间的主要关系有关联、依赖、泛化、聚合、组合和实现等。(图1-10类之间的关系表示要背下来)1)关联关系2)依赖关系3)泛化关系4)共享聚集5)组合聚集6)实现关系
image.png
**

软件架构设计

1.软件架构风格软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格
1)数据流风格:数据流风格包括批处理序列和管道/过滤器两种风格。
2)调用/返回风格:调用/返回风格包括主程序/子程序、数据抽象和面向对象,以及层次结构。
3)独立构件风格:独立构件风格包括进程通信和事件驱动的系统
4)虚拟机风格:虚拟机风格包括解释器和基于规则的系统。
5)仓库风格:仓库风格包括数据库系统、黑板系统和超文本系统。

软件架构评估在架构评估过程中,评估人员所关注的是系统的质量属性。敏感点是一个或多个构件(和/或构件之间的关系)的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。软件架构评估技术是基于调查问卷(或检査表)的方式、基于场景的方式和基于度量的方式,基于场景的评估方式最为常用。基于场景的方式主要包括:架构权衡分析法,软件架构分析法,和成本效益分析法。

软件设计
1.结构化设计SD是一种面向数据流的方法,在SD中,需要遵循一个基本的原则:高内聚,低耦合。
2.面向对象设计OOD是OOA方法的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。如何同时提高软件的可维护性和可复用性,是OOD需要解决的核心问题之一。
3.设计模式设计模式包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素