软考系统架构设计师(十):案例分析下午题
- 陈大剩
- 2023-04-03 08:45:48
- 706
需求分析-结构化需求分析(SA)
数据流图
组成元素
数据流图平衡原则
答题技巧
一、补充实体
实体可能是:
- 人物角色:如客户、管理员、主管、经理、老师、学生
- 组织机构:如银行、供应商、募捐机构
- 外部系统:如银行系统、工资系统、后台数据库(当要开发的是中间件时)
二、补充存储
存储的文字方面特征: “文件” “表” “库” “清单” “档案”
三、补充数据流
- 数据平衡原则
- 顶层图与0层图对比,是否有顶层图有,但0层图无的数据流,或反之。
- 检查图中每个加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。
- 按题目说明与图进行匹配
说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出纰漏。
四、补充加工名
加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找“动词+名词”的结构,分析是否可作为加工。
“动词+名词”如:生成报告、发出通知、批改作业、记录分数,当然这只是普遍情况,也有例外,如物流跟踪、用户管理。
需求分析-UML图
用例图
- 用例图描述一组用例、参与者及它们之间的关系;
- 用户角度描述系统功能;
- 参与者是外部触发因素;(包括用户、组织、外部系统,时间)
- 用例是功能单元;
关系包含
包含关系、扩展关系、泛化关系
包含关系(include)
其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。
扩展关系(extend)
如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。
泛化关系(泛化关系)
当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。
用例建模的流程
- 识别参与者(必须)
- 合并需求获得用例(必须)
- 细化用例描述(必须)
- 调整用例模型(可选)
类图与对象图
类图(class diagram)
类图描述─组类、接口、协作和它们之间的关系。
对象图(object diagram)
对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。
属性
- 类名,方法名,属性名
- 多重度
- 关系
关系
- 依赖
对类 B 进行修改会影响到类 A 。 - 关联
对象 A 知道对象 B。类 A 依赖于类 B。 - 聚合
对象 A 知道对象 B 且由 B 构成。类 A 依赖于类 B。 - 组合
对象 A 知道对象 B、由 B 构成而且管理着 B 的生命周期。类 A 依赖于类 B。 - 实现
类 A 定义的方法由接口 B 声明。对象 A 可被视为对象B。类 A 依赖于类 B。 - 继承
类 A 继承类 B 的接口和实现, 但是可以对其进行扩展。对象 A 可被视为对象 B。类 A 依赖于类 B。
顺序图
顺序图(sequence diagram,序列图)。顺序图是一种交互图(interactiondiagram) ,它强调对象之间消息发送的顺序,同时显示对象之间的交互。
通信图(协作图)
通信图(communication diagram)。通信图也是一种交互图,它强调对象之间存在的消息收发关系,而不专门突出这些消息发送的时间顺序。
状态图
状态图(state diagram)是对类描述的补充。用于展现此类对象所具有的可能状态,以及某些事件发生时其状态转移情况。【线条是事件,节点是状态】
活动图
活动图(activity diagram)是一种特殊的状态图。活动图描述—个操作中要进行的各项活动的执行流程。同时,也常被用来描述一个用例的处理流程或者某种交互流程。
活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。它强调对象间的控制流程。
定时图
定时图也叫计时图,也是一种交互图,用于展示交互过程中的真实时间信息,具体描述对象状态变化的时间点以及维持特定状态的时间段。
构件图与包图
构件图(component diagram)。构件图描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。
包图,包的图标像是一个带标签的文件夹,包的基本思想是把共同工作的元素放到一个文件夹中。
例:多个类或构件组成了一个子系统,就可以将它们放到一个包中。
部署图
部署图(deployment diagram)。部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。