风险驱动软件设计学习笔记
2021-11-14 11:13:21 0 举报
AI智能生成
登录查看完整内容
风险驱动软件设计
作者其他创作
大纲/内容
风险驱动的软件架构
软件架构
架构类型:推定架构(行业参考) 参考架构
风险驱动模型
风险预估:失败概率*失败的影响
架构的度:为架构付出的努力与失败的风险相称
概念模型
概述
代码模型:设计的实现
任何模型都有主模型:所有细节与主模型一致
领域模型
辅助手段:概念列表和定义
具体说明:功能场景描述
设计模型
内部模型:细节实现
代码模型
体现架构的编码
编码体现设计意图
模型
模型元素
部署元素
连接器
模型关系
投影关系(视图)
视图解决两个问题:规模和复杂性
视图即需求
主模型
分割关系
组合关系
由整体分割成更小的部分
分类关系
按着类型来分
泛化关系
一个类型归到另一个类型
指定关系
细化关系
同一个东西有高细节低细节划分
开放和封闭的细化语义
嵌套
绑定关系
依赖关系
一个的变化会导致另一个的变化
使用关系
软件建模设计
团队配合:让每个人理解架构
避免自顶向下(产生小问题)
软件模型
封装与分割
开发人员需要关心设计是否优雅
使用层级嵌套的方式来结构化系统
好处
更大规模
降低复杂性
手段
把系统分为分散的块
封装
帕纳斯模块
有可能变化的细节都被隐藏在模块内部
暴露数据结构是一个巨大的风险
模块和组件的边界或接口与内部的实现分开描述
创建封装
抽象数据类型ADT
系统拆分策略
端口分割
组件使用端口与其他组件通信
功能分割
相关功能组合到一起
质量属性与属性驱动分割
小型系统关注功能
大型系统更多关注质量属性
典型类型
例如:权限
正交抽象
吧组件的职责转换到一个不同的领域
组装拼图
架构风格
风格约束
风格约束集合
一致性和可理解性
沟通
设计重用
确保质量
风格分类
批量顺序处理
共享数据
对等
map-reduce
0 条评论
回复 删除
下一页