软件系统分析与设计 复习2
别问,问就是重修
数据库设计
范式
第一范式:消去重复组,每个表都是二维表。
第二范式:消去部分依赖,所有非主属性完全函数依赖于主属性。
第三范式:消去传递依赖,非主属性间不存在函数依赖。
ER图
外键:写着FK的一端,标注小黑点,另一端(PK)标注小白菱形。
继承:继承表的主键也标FK。
SQL语句
- 基础查询:
SELECT <colname> FROM <tablename>
- 条件查询:
WHERE <colname> <operator> <value>
,可用的比较运算符有大于小于等于以及LIKE(百分号表示任意字符),可以用AND和OR连接。 - 排序:
ORDER BY <colname>
,降序在后面跟DESC
- 部分显示:
LIMIT <limnum> OFFSET <offnum>
,从第offnum+1个开始显示,一共显示limnum个 - 聚合查询:
COUNT(),AVG(),MAX()
等,可以聚合后分组GROUP BY <colname>
- 插入:
INSERT INTO <tablename> (<colname1>,<colname2>) VALUES (<value1>,<value2>)
- 更新:
UPDATE <tablename> SET <colname1>=<value1>, <colname2>=<value2> WHERE ...
- 删除:
DELETE FROM <tablename> WHERE
RBAC:基于角色的权限访问控制
- 用户表(一般会被继承)
- 角色表
- 权限表:控制对象,操作
- 控制对象表
- 操作表
- 用户角色分配
- 角色权限分配
数据流分析
数据流图
- 外部项:图例是矩形,表系统数据的实体来源去处。
- 数据流:图例是箭头,表数据流动。
- 处理过程:图例是圆形,表数据处理过程。
- 数据存储:图例是右侧开口的矩形,表数据的逻辑存储。
分层
- 顶层数据流图
顶层数据流图的作用主要为确立系统的边界,描述整个系统的作用范围,其内容为对系统的总体功能、输入和输出进行的抽象,反映了系统和环境的关系。 - 第一层数据流图
第一层数据流图的主要目的是实现主要功能的细化。- 第二层数据流图
更加细化
- 第二层数据流图
数据字典
用于补充说明
面向对象设计
功能模型:用例图
事物
- 活动者
- 用例
关系
- 关联:参与者与用例的交互
- 包含:用例包含关系,必选
- 泛化:参与者之间的继承关系(is a)
用例描述
- 用例ID,
- 名称,
- 描述,
- 参与者,
- 前置用例,
- 触发器,
- 事件过程(参与者动作,系统响应),
- 结论,
- 后置用例。
动态模型:活动图
描述系统内部的活动执行流程。实际上相当于
事物
- 起点:大黑点
- 重点:大黑点外面有一个圈
- 活动:跑道形(?)
关系
- 活动转移:箭头
- 分支:菱形
- 分叉,结束分叉:三极管形(?)
示例
(这张图是xyz作业中的一张图,他的作业写的真的很好,清晰易懂)
动态模型:时序图
事物
示例
静态模型:类图
事物
- 类
- 接口
关系
- 关联:实线加箭头,双向关联省略箭头。聚合和组合都属于关联。
- 依赖:虚线加箭头。友元和绑定都属于依赖。
- 实现:虚线加白三角。
- 泛化:实线加白三角。即继承。
耦合度:泛化=实现>关联>依赖