# 案例专题

# 案例主题1:软件工程

1. 需求分析
2. 面向对象设计
# 数据流图DFD答题技巧
  1. 补充实体
  2. 补充存储
  3. 补充数据流
  4. 补充加工名
# UML图
  • 静态图(结构图)
    • 类图
  • 动态图(行为图)
    • 用例图
    • 顺序图:强调时间顺序
    • 通信图:协作图,强调消息收发关系,而不突出时间顺序
    • 状态图:状态转换变迁
    • 活动图:类似程序流程图,并行行为
# UML关系
  • 依赖关系:一个事物发生影响另一个关系

  • 泛化关系:特殊/一般关系

  • 关联关系

    • 聚合关系:整体与部门生命周期不通。eg:汽车和轮子
    • 组合关系:整体与部分生命周期相同。eg:公司和部门
  • 实现关系:接口与类的关系

# 类的三种类型&每种类型的主要职责
  • 实体类
  • 控制类
  • 边界类

# 案例主题2:架构设计

1. 软件架构风格
2. 质量属性与架构评估
3. Web架构综合考查
# 软件架构风格
  • 数据流风格:
    • 批处理:大量整体数据、无需用户交互
    • 管道过滤器:流式数据、弱用户交互
  • 调用/返回风格:
    • 主程序/子程序
    • 面向对象
    • 层次结构
  • 独立构件风格:
    • 进程通信
    • 事件驱动系统(隐式调用):windows图形界面、断点回调
  • 虚拟机风格:
    • 解释器:适用于需要“自定义规则”的场合
    • 规则系统:适用于专家系统
  • 仓库风格:
    • 数据库系统、
    • 黑板系统:语音识别、知识推理、模式识别、知识推理
    • 超文本系统
# 质量属性
  • 性能
  • 可用性
  • 可修改性
  • 安全性
# 架构评估
  • 敏感点
  • 权衡点
  • 风险点
  • 非风险
# 负载均衡
  • 硬件:F5
  • 软件:LVS、Nginx、HAproxy
# session共享机制
  1. 携带session的cookie
  2. 服务器同步session
  3. 将session存入redis
# 有状态与无状态
  • 无状态是指对单次请求对处理,不依赖其他请求
  • 有状态是指自身保存一些数据
# web相关技术
  • 持久化技术-ORM:Hibernate、Mybatis、
  • 数据库主从分离:主库写、从库写、一主多从
  • 常用缓存:MemCache、Redis、Squid
  • Redis集群分片方式:客户端分片、中间件实现分片、客户端服务端协作分片
  • Redis分布式存储方式:主从模式、哨兵模式、集群模式
  • Redis数据分片方案:范围分片、哈希分片、一致性哈希分片
  • Redis持久化技术:RDB-快照思想、AOF-日志思想
  • Redis常用问题:缓存雪崩、缓存穿透、缓存预热

# 案例主题3:数据库设计

1. 规范化与反规范化
2. 分布式数据库
3. NoSQL
4. 内存数据库
5. 其他数据库扩展知识
# 视图的优点
  1. 视图能简化用户的操作
  2. 视图机制可以使用户以不同的方式查询同一数据
  3. 视图对数据库重构提供了一定程度的逻辑独立性
  4. 视图可以对机密的数据提供安全保护
# 反规范化

反规范化优点:提高统计、查询效率

反规范化缺点:增加了数据冗余,浪费存储空间,增、删、改操作的效率降低,可能导致数据不一致,可能产生添加、修改、删除异常

  • 增加派生性冗余列
  • 增加冗余列
  • 重新组表
  • 分割表

# 案例主题4:其他

1. 时间管理与成本管理
2. 系统安全性
3. 系统可靠性
上次更新: 7/27/2022, 6:03:55 PM