软件系统分析与设计 复习2

别问,问就是重修

数据库设计

范式

第一范式:消去重复组,每个表都是二维表。
第二范式:消去部分依赖,所有非主属性完全函数依赖于主属性。
第三范式:消去传递依赖,非主属性间不存在函数依赖。

ER图

外键:写着FK的一端,标注小黑点,另一端(PK)标注小白菱形。
软件系统分析与设计 复习2
继承:继承表的主键也标FK。
软件系统分析与设计 复习2

SQL语句

  1. 基础查询: SELECT <colname> FROM <tablename>
  2. 条件查询: WHERE <colname> <operator> <value> ,可用的比较运算符有大于小于等于以及LIKE(百分号表示任意字符),可以用AND和OR连接。
  3. 排序:ORDER BY <colname> ,降序在后面跟DESC
  4. 部分显示:LIMIT <limnum> OFFSET <offnum>,从第offnum+1个开始显示,一共显示limnum个
  5. 聚合查询:COUNT(),AVG(),MAX()等,可以聚合后分组GROUP BY <colname>
  6. 插入:INSERT INTO <tablename> (<colname1>,<colname2>) VALUES (<value1>,<value2>)
  7. 更新:UPDATE <tablename> SET <colname1>=<value1>, <colname2>=<value2> WHERE ...
  8. 删除:DELETE FROM <tablename> WHERE

RBAC:基于角色的权限访问控制

  1. 用户表(一般会被继承)
  2. 角色表
  3. 权限表:控制对象,操作
  4. 控制对象表
  5. 操作表
  6. 用户角色分配
  7. 角色权限分配
    软件系统分析与设计 复习2

数据流分析

数据流图

  1. 外部项:图例是矩形,表系统数据的实体来源去处。
  2. 数据流:图例是箭头,表数据流动。
  3. 处理过程:图例是圆形,表数据处理过程。
  4. 数据存储:图例是右侧开口的矩形,表数据的逻辑存储。

分层

  1. 顶层数据流图
    顶层数据流图的作用主要为确立系统的边界,描述整个系统的作用范围,其内容为对系统的总体功能、输入和输出进行的抽象,反映了系统和环境的关系。
    软件系统分析与设计 复习2
  2. 第一层数据流图
    第一层数据流图的主要目的是实现主要功能的细化。
    软件系统分析与设计 复习2
    1. 第二层数据流图
      更加细化

数据字典

用于补充说明
软件系统分析与设计 复习2

面向对象设计

功能模型:用例图

事物

  1. 活动者
    软件系统分析与设计 复习2
  2. 用例
    软件系统分析与设计 复习2

关系

  1. 关联:参与者与用例的交互
    软件系统分析与设计 复习2
  2. 包含:用例包含关系,必选
    软件系统分析与设计 复习2
  3. 泛化:参与者之间的继承关系(is a)
    软件系统分析与设计 复习2

用例描述

  1. 用例ID,
  2. 名称,
  3. 描述,
  4. 参与者,
  5. 前置用例,
  6. 触发器,
  7. 事件过程(参与者动作,系统响应),
  8. 结论,
  9. 后置用例。

动态模型:活动图

描述系统内部的活动执行流程。实际上相当于

事物

  1. 起点:大黑点
  2. 重点:大黑点外面有一个圈
  3. 活动:跑道形(?)
    软件系统分析与设计 复习2

关系

  1. 活动转移:箭头
  2. 分支:菱形
  3. 分叉,结束分叉:三极管形(?)
    软件系统分析与设计 复习2

示例

(这张图是xyz作业中的一张图,他的作业写的真的很好,清晰易懂)
软件系统分析与设计 复习2

动态模型:时序图

事物

软件系统分析与设计 复习2

示例

软件系统分析与设计 复习2

静态模型:类图

事物


  1. 软件系统分析与设计 复习2
  2. 接口
    软件系统分析与设计 复习2

关系

软件系统分析与设计 复习2

  1. 关联:实线加箭头,双向关联省略箭头。聚合和组合都属于关联。
  2. 依赖:虚线加箭头。友元和绑定都属于依赖。
  3. 实现:虚线加白三角。
  4. 泛化:实线加白三角。即继承。

耦合度:泛化=实现>关联>依赖