软件工程:概要设计阶段的评审

📌目录



⚖️ 概要设计阶段的评审:确保设计质量的关键活动

概要设计评审是软件质量保证的重要活动,它通过对概要设计文档的正式审查,发现设计中的缺陷和问题,确保设计质量,为后续的详细设计和编码实现奠定基础。本文将详细介绍概要设计评审的目的、内容、方法和实施要点。

🎯 一、概要设计评审概述

(一)概要设计评审的定义

概要设计评审是对概要设计文档进行正式审查的过程,目的是发现设计中的缺陷,确保设计质量。

评审概念
#mermaid-svg-RYCeabdVCiPxITJ4{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-RYCeabdVCiPxITJ4 .error-icon{fill:#552222;}#mermaid-svg-RYCeabdVCiPxITJ4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-RYCeabdVCiPxITJ4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-RYCeabdVCiPxITJ4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-RYCeabdVCiPxITJ4 .marker.cross{stroke:#333333;}#mermaid-svg-RYCeabdVCiPxITJ4 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-RYCeabdVCiPxITJ4 p{margin:0;}#mermaid-svg-RYCeabdVCiPxITJ4 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-RYCeabdVCiPxITJ4 .cluster-label text{fill:#333;}#mermaid-svg-RYCeabdVCiPxITJ4 .cluster-label span{color:#333;}#mermaid-svg-RYCeabdVCiPxITJ4 .cluster-label span p{background-color:transparent;}#mermaid-svg-RYCeabdVCiPxITJ4 .label text,#mermaid-svg-RYCeabdVCiPxITJ4 span{fill:#333;color:#333;}#mermaid-svg-RYCeabdVCiPxITJ4 .node rect,#mermaid-svg-RYCeabdVCiPxITJ4 .node circle,#mermaid-svg-RYCeabdVCiPxITJ4 .node ellipse,#mermaid-svg-RYCeabdVCiPxITJ4 .node polygon,#mermaid-svg-RYCeabdVCiPxITJ4 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-RYCeabdVCiPxITJ4 .rough-node .label text,#mermaid-svg-RYCeabdVCiPxITJ4 .node .label text,#mermaid-svg-RYCeabdVCiPxITJ4 .image-shape .label,#mermaid-svg-RYCeabdVCiPxITJ4 .icon-shape .label{text-anchor:middle;}#mermaid-svg-RYCeabdVCiPxITJ4 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-RYCeabdVCiPxITJ4 .rough-node .label,#mermaid-svg-RYCeabdVCiPxITJ4 .node .label,#mermaid-svg-RYCeabdVCiPxITJ4 .image-shape .label,#mermaid-svg-RYCeabdVCiPxITJ4 .icon-shape .label{text-align:center;}#mermaid-svg-RYCeabdVCiPxITJ4 .node.clickable{cursor:pointer;}#mermaid-svg-RYCeabdVCiPxITJ4 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-RYCeabdVCiPxITJ4 .arrowheadPath{fill:#333333;}#mermaid-svg-RYCeabdVCiPxITJ4 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-RYCeabdVCiPxITJ4 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-RYCeabdVCiPxITJ4 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-RYCeabdVCiPxITJ4 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-RYCeabdVCiPxITJ4 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-RYCeabdVCiPxITJ4 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-RYCeabdVCiPxITJ4 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-RYCeabdVCiPxITJ4 .cluster text{fill:#333;}#mermaid-svg-RYCeabdVCiPxITJ4 .cluster span{color:#333;}#mermaid-svg-RYCeabdVCiPxITJ4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-RYCeabdVCiPxITJ4 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-RYCeabdVCiPxITJ4 rect.text{fill:none;stroke-width:0;}#mermaid-svg-RYCeabdVCiPxITJ4 .icon-shape,#mermaid-svg-RYCeabdVCiPxITJ4 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-RYCeabdVCiPxITJ4 .icon-shape p,#mermaid-svg-RYCeabdVCiPxITJ4 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-RYCeabdVCiPxITJ4 .icon-shape .label rect,#mermaid-svg-RYCeabdVCiPxITJ4 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-RYCeabdVCiPxITJ4 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-RYCeabdVCiPxITJ4 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-RYCeabdVCiPxITJ4 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 概要设计评审
评审对象
评审目的
评审方法
评审结果
概要设计文档
设计模型
发现缺陷
确保质量
达成共识
正式评审
技术评审
通过
修改后通过
不通过

(二)概要设计评审的意义

评审意义

意义 说明
早期发现缺陷 在早期阶段发现问题,降低修复成本
确保质量 保证设计的质量和完整性
达成共识 促进各方对设计的理解一致
降低风险 减少后期返工和项目风险
知识共享 促进团队成员间的知识交流
提高信心 增强项目相关方的信心

(三)概要设计评审的特点

评审特点

特点 说明
正式性 有规范的流程和标准
系统性 系统化的检查方法
协作性 多方参与协作
迭代性 可能需要多次评审
追溯性 问题可以追溯

📦 二、概要设计评审的目的

(一)评审目的

评审目的
#mermaid-svg-VtcuK8tdfd08LilA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-VtcuK8tdfd08LilA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-VtcuK8tdfd08LilA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-VtcuK8tdfd08LilA .error-icon{fill:#552222;}#mermaid-svg-VtcuK8tdfd08LilA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-VtcuK8tdfd08LilA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-VtcuK8tdfd08LilA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-VtcuK8tdfd08LilA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-VtcuK8tdfd08LilA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-VtcuK8tdfd08LilA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-VtcuK8tdfd08LilA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-VtcuK8tdfd08LilA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-VtcuK8tdfd08LilA .marker.cross{stroke:#333333;}#mermaid-svg-VtcuK8tdfd08LilA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-VtcuK8tdfd08LilA p{margin:0;}#mermaid-svg-VtcuK8tdfd08LilA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-VtcuK8tdfd08LilA .cluster-label text{fill:#333;}#mermaid-svg-VtcuK8tdfd08LilA .cluster-label span{color:#333;}#mermaid-svg-VtcuK8tdfd08LilA .cluster-label span p{background-color:transparent;}#mermaid-svg-VtcuK8tdfd08LilA .label text,#mermaid-svg-VtcuK8tdfd08LilA span{fill:#333;color:#333;}#mermaid-svg-VtcuK8tdfd08LilA .node rect,#mermaid-svg-VtcuK8tdfd08LilA .node circle,#mermaid-svg-VtcuK8tdfd08LilA .node ellipse,#mermaid-svg-VtcuK8tdfd08LilA .node polygon,#mermaid-svg-VtcuK8tdfd08LilA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-VtcuK8tdfd08LilA .rough-node .label text,#mermaid-svg-VtcuK8tdfd08LilA .node .label text,#mermaid-svg-VtcuK8tdfd08LilA .image-shape .label,#mermaid-svg-VtcuK8tdfd08LilA .icon-shape .label{text-anchor:middle;}#mermaid-svg-VtcuK8tdfd08LilA .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-VtcuK8tdfd08LilA .rough-node .label,#mermaid-svg-VtcuK8tdfd08LilA .node .label,#mermaid-svg-VtcuK8tdfd08LilA .image-shape .label,#mermaid-svg-VtcuK8tdfd08LilA .icon-shape .label{text-align:center;}#mermaid-svg-VtcuK8tdfd08LilA .node.clickable{cursor:pointer;}#mermaid-svg-VtcuK8tdfd08LilA .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-VtcuK8tdfd08LilA .arrowheadPath{fill:#333333;}#mermaid-svg-VtcuK8tdfd08LilA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-VtcuK8tdfd08LilA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-VtcuK8tdfd08LilA .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-VtcuK8tdfd08LilA .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-VtcuK8tdfd08LilA .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-VtcuK8tdfd08LilA .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-VtcuK8tdfd08LilA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-VtcuK8tdfd08LilA .cluster text{fill:#333;}#mermaid-svg-VtcuK8tdfd08LilA .cluster span{color:#333;}#mermaid-svg-VtcuK8tdfd08LilA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-VtcuK8tdfd08LilA .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-VtcuK8tdfd08LilA rect.text{fill:none;stroke-width:0;}#mermaid-svg-VtcuK8tdfd08LilA .icon-shape,#mermaid-svg-VtcuK8tdfd08LilA .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-VtcuK8tdfd08LilA .icon-shape p,#mermaid-svg-VtcuK8tdfd08LilA .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-VtcuK8tdfd08LilA .icon-shape .label rect,#mermaid-svg-VtcuK8tdfd08LilA .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-VtcuK8tdfd08LilA .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-VtcuK8tdfd08LilA .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-VtcuK8tdfd08LilA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 评审目的
发现缺陷
确保质量
达成共识
降低风险
建立基线
发现设计错误
发现设计遗漏
保证设计正确
保证设计完整
统一设计理解
明确设计范围
减少返工
降低项目风险
建立设计基线
作为开发依据

(二)评审目标

评审目标

目标 说明 衡量标准
发现缺陷 发现设计中的问题 缺陷发现率
确保质量 保证设计质量 质量特性满足度
达成共识 各方理解一致 共识达成度
建立基线 建立设计基线 基线建立

🌐 三、概要设计评审的内容

(一)评审内容

评审内容
#mermaid-svg-ueqMMWCPfEGxhTc2{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ueqMMWCPfEGxhTc2 .error-icon{fill:#552222;}#mermaid-svg-ueqMMWCPfEGxhTc2 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ueqMMWCPfEGxhTc2 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .marker.cross{stroke:#333333;}#mermaid-svg-ueqMMWCPfEGxhTc2 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ueqMMWCPfEGxhTc2 p{margin:0;}#mermaid-svg-ueqMMWCPfEGxhTc2 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .cluster-label text{fill:#333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .cluster-label span{color:#333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .cluster-label span p{background-color:transparent;}#mermaid-svg-ueqMMWCPfEGxhTc2 .label text,#mermaid-svg-ueqMMWCPfEGxhTc2 span{fill:#333;color:#333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .node rect,#mermaid-svg-ueqMMWCPfEGxhTc2 .node circle,#mermaid-svg-ueqMMWCPfEGxhTc2 .node ellipse,#mermaid-svg-ueqMMWCPfEGxhTc2 .node polygon,#mermaid-svg-ueqMMWCPfEGxhTc2 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ueqMMWCPfEGxhTc2 .rough-node .label text,#mermaid-svg-ueqMMWCPfEGxhTc2 .node .label text,#mermaid-svg-ueqMMWCPfEGxhTc2 .image-shape .label,#mermaid-svg-ueqMMWCPfEGxhTc2 .icon-shape .label{text-anchor:middle;}#mermaid-svg-ueqMMWCPfEGxhTc2 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ueqMMWCPfEGxhTc2 .rough-node .label,#mermaid-svg-ueqMMWCPfEGxhTc2 .node .label,#mermaid-svg-ueqMMWCPfEGxhTc2 .image-shape .label,#mermaid-svg-ueqMMWCPfEGxhTc2 .icon-shape .label{text-align:center;}#mermaid-svg-ueqMMWCPfEGxhTc2 .node.clickable{cursor:pointer;}#mermaid-svg-ueqMMWCPfEGxhTc2 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .arrowheadPath{fill:#333333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ueqMMWCPfEGxhTc2 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ueqMMWCPfEGxhTc2 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ueqMMWCPfEGxhTc2 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ueqMMWCPfEGxhTc2 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ueqMMWCPfEGxhTc2 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ueqMMWCPfEGxhTc2 .cluster text{fill:#333;}#mermaid-svg-ueqMMWCPfEGxhTc2 .cluster span{color:#333;}#mermaid-svg-ueqMMWCPfEGxhTc2 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ueqMMWCPfEGxhTc2 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ueqMMWCPfEGxhTc2 rect.text{fill:none;stroke-width:0;}#mermaid-svg-ueqMMWCPfEGxhTc2 .icon-shape,#mermaid-svg-ueqMMWCPfEGxhTc2 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ueqMMWCPfEGxhTc2 .icon-shape p,#mermaid-svg-ueqMMWCPfEGxhTc2 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ueqMMWCPfEGxhTc2 .icon-shape .label rect,#mermaid-svg-ueqMMWCPfEGxhTc2 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ueqMMWCPfEGxhTc2 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ueqMMWCPfEGxhTc2 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ueqMMWCPfEGxhTc2 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 评审内容
需求覆盖
架构合理性
模块独立性
接口清晰性
数据完整性
可行性
可维护性
覆盖所有需求
架构合理
模块独立
接口清晰
数据完整
技术可行
易于维护

(二)质量特性检查

质量特性检查

质量特性 检查要点 问题示例
需求覆盖 设计是否覆盖所有需求 遗漏功能
架构合理性 架构是否合理 架构混乱
模块独立性 模块是否独立 耦合度高
接口清晰性 接口是否清晰 接口不明确
数据完整性 数据设计是否完整 数据遗漏
可行性 设计是否可行 技术不可行
可维护性 设计是否易于维护 难以维护

(三)详细检查内容

详细检查

检查项 检查内容 检查方法
系统架构 架构是否合理 架构评审
模块划分 模块划分是否合理 模块评审
模块接口 接口是否清晰 接口评审
数据设计 数据设计是否完整 数据评审
运行设计 运行设计是否合理 运行评审
出错处理 出错处理是否完善 出错评审

📊 四、概要设计评审的方法

(一)评审方法

评审方法

方法 说明 适用场景
正式评审 严格的评审流程 关键设计
技术评审 技术人员评审 技术设计
走查 逐步审查 日常检查
检视 结构化评审 重要文档
审查 正式审查会议 基线建立

(二)正式评审

正式评审流程
#mermaid-svg-jTsYARMdZuOXEX0i{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-jTsYARMdZuOXEX0i .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-jTsYARMdZuOXEX0i .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-jTsYARMdZuOXEX0i .error-icon{fill:#552222;}#mermaid-svg-jTsYARMdZuOXEX0i .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-jTsYARMdZuOXEX0i .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-jTsYARMdZuOXEX0i .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-jTsYARMdZuOXEX0i .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-jTsYARMdZuOXEX0i .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-jTsYARMdZuOXEX0i .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-jTsYARMdZuOXEX0i .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-jTsYARMdZuOXEX0i .marker{fill:#333333;stroke:#333333;}#mermaid-svg-jTsYARMdZuOXEX0i .marker.cross{stroke:#333333;}#mermaid-svg-jTsYARMdZuOXEX0i svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-jTsYARMdZuOXEX0i p{margin:0;}#mermaid-svg-jTsYARMdZuOXEX0i .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-jTsYARMdZuOXEX0i .cluster-label text{fill:#333;}#mermaid-svg-jTsYARMdZuOXEX0i .cluster-label span{color:#333;}#mermaid-svg-jTsYARMdZuOXEX0i .cluster-label span p{background-color:transparent;}#mermaid-svg-jTsYARMdZuOXEX0i .label text,#mermaid-svg-jTsYARMdZuOXEX0i span{fill:#333;color:#333;}#mermaid-svg-jTsYARMdZuOXEX0i .node rect,#mermaid-svg-jTsYARMdZuOXEX0i .node circle,#mermaid-svg-jTsYARMdZuOXEX0i .node ellipse,#mermaid-svg-jTsYARMdZuOXEX0i .node polygon,#mermaid-svg-jTsYARMdZuOXEX0i .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jTsYARMdZuOXEX0i .rough-node .label text,#mermaid-svg-jTsYARMdZuOXEX0i .node .label text,#mermaid-svg-jTsYARMdZuOXEX0i .image-shape .label,#mermaid-svg-jTsYARMdZuOXEX0i .icon-shape .label{text-anchor:middle;}#mermaid-svg-jTsYARMdZuOXEX0i .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-jTsYARMdZuOXEX0i .rough-node .label,#mermaid-svg-jTsYARMdZuOXEX0i .node .label,#mermaid-svg-jTsYARMdZuOXEX0i .image-shape .label,#mermaid-svg-jTsYARMdZuOXEX0i .icon-shape .label{text-align:center;}#mermaid-svg-jTsYARMdZuOXEX0i .node.clickable{cursor:pointer;}#mermaid-svg-jTsYARMdZuOXEX0i .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-jTsYARMdZuOXEX0i .arrowheadPath{fill:#333333;}#mermaid-svg-jTsYARMdZuOXEX0i .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-jTsYARMdZuOXEX0i .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-jTsYARMdZuOXEX0i .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jTsYARMdZuOXEX0i .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-jTsYARMdZuOXEX0i .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jTsYARMdZuOXEX0i .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-jTsYARMdZuOXEX0i .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-jTsYARMdZuOXEX0i .cluster text{fill:#333;}#mermaid-svg-jTsYARMdZuOXEX0i .cluster span{color:#333;}#mermaid-svg-jTsYARMdZuOXEX0i div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-jTsYARMdZuOXEX0i .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-jTsYARMdZuOXEX0i rect.text{fill:none;stroke-width:0;}#mermaid-svg-jTsYARMdZuOXEX0i .icon-shape,#mermaid-svg-jTsYARMdZuOXEX0i .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jTsYARMdZuOXEX0i .icon-shape p,#mermaid-svg-jTsYARMdZuOXEX0i .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-jTsYARMdZuOXEX0i .icon-shape .label rect,#mermaid-svg-jTsYARMdZuOXEX0i .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jTsYARMdZuOXEX0i .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-jTsYARMdZuOXEX0i .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-jTsYARMdZuOXEX0i :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是

评审准备
预审
评审会议
问题记录
修改
复审
通过?
批准

评审步骤

步骤 任务 负责人 产出
准备 确定评审范围、组建评审组 评审组长 评审计划
分发 分发评审材料 评审组长 评审材料
预审 个人预审 评审成员 问题列表
会议 召开评审会议 评审组长 会议记录
修改 修改文档 文档作者 修改后文档
复审 复审修改结果 评审组长 评审结论

(三)评审技术

评审技术

技术 说明 适用场景
检查表法 使用检查清单 标准化检查
追踪法 需求追踪 完整性检查
接口分析 分析接口 接口评审
原型法 使用原型 界面评审
场景法 使用使用场景 设计评审

📋 五、概要设计评审的流程

(一)评审流程

评审流程
#mermaid-svg-5PpUIMRHGlpCgU4P{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-5PpUIMRHGlpCgU4P .error-icon{fill:#552222;}#mermaid-svg-5PpUIMRHGlpCgU4P .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5PpUIMRHGlpCgU4P .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5PpUIMRHGlpCgU4P .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5PpUIMRHGlpCgU4P .marker.cross{stroke:#333333;}#mermaid-svg-5PpUIMRHGlpCgU4P svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5PpUIMRHGlpCgU4P p{margin:0;}#mermaid-svg-5PpUIMRHGlpCgU4P .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-5PpUIMRHGlpCgU4P .cluster-label text{fill:#333;}#mermaid-svg-5PpUIMRHGlpCgU4P .cluster-label span{color:#333;}#mermaid-svg-5PpUIMRHGlpCgU4P .cluster-label span p{background-color:transparent;}#mermaid-svg-5PpUIMRHGlpCgU4P .label text,#mermaid-svg-5PpUIMRHGlpCgU4P span{fill:#333;color:#333;}#mermaid-svg-5PpUIMRHGlpCgU4P .node rect,#mermaid-svg-5PpUIMRHGlpCgU4P .node circle,#mermaid-svg-5PpUIMRHGlpCgU4P .node ellipse,#mermaid-svg-5PpUIMRHGlpCgU4P .node polygon,#mermaid-svg-5PpUIMRHGlpCgU4P .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5PpUIMRHGlpCgU4P .rough-node .label text,#mermaid-svg-5PpUIMRHGlpCgU4P .node .label text,#mermaid-svg-5PpUIMRHGlpCgU4P .image-shape .label,#mermaid-svg-5PpUIMRHGlpCgU4P .icon-shape .label{text-anchor:middle;}#mermaid-svg-5PpUIMRHGlpCgU4P .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-5PpUIMRHGlpCgU4P .rough-node .label,#mermaid-svg-5PpUIMRHGlpCgU4P .node .label,#mermaid-svg-5PpUIMRHGlpCgU4P .image-shape .label,#mermaid-svg-5PpUIMRHGlpCgU4P .icon-shape .label{text-align:center;}#mermaid-svg-5PpUIMRHGlpCgU4P .node.clickable{cursor:pointer;}#mermaid-svg-5PpUIMRHGlpCgU4P .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-5PpUIMRHGlpCgU4P .arrowheadPath{fill:#333333;}#mermaid-svg-5PpUIMRHGlpCgU4P .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5PpUIMRHGlpCgU4P .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5PpUIMRHGlpCgU4P .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5PpUIMRHGlpCgU4P .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-5PpUIMRHGlpCgU4P .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5PpUIMRHGlpCgU4P .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-5PpUIMRHGlpCgU4P .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5PpUIMRHGlpCgU4P .cluster text{fill:#333;}#mermaid-svg-5PpUIMRHGlpCgU4P .cluster span{color:#333;}#mermaid-svg-5PpUIMRHGlpCgU4P div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-5PpUIMRHGlpCgU4P .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-5PpUIMRHGlpCgU4P rect.text{fill:none;stroke-width:0;}#mermaid-svg-5PpUIMRHGlpCgU4P .icon-shape,#mermaid-svg-5PpUIMRHGlpCgU4P .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5PpUIMRHGlpCgU4P .icon-shape p,#mermaid-svg-5PpUIMRHGlpCgU4P .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-5PpUIMRHGlpCgU4P .icon-shape .label rect,#mermaid-svg-5PpUIMRHGlpCgU4P .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5PpUIMRHGlpCgU4P .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-5PpUIMRHGlpCgU4P .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-5PpUIMRHGlpCgU4P :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 评审计划
评审准备
评审执行
问题处理
评审结论
基线建立

流程详解

阶段 任务 产出
评审计划 制定评审计划 评审计划
评审准备 准备评审材料 评审材料
评审执行 执行评审活动 问题列表
问题处理 处理评审问题 修改后文档
评审结论 得出评审结论 评审报告
基线建立 建立设计基线 设计基线

(二)评审组织

评审组织
#mermaid-svg-GslIVTBFJKEWnceA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-GslIVTBFJKEWnceA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-GslIVTBFJKEWnceA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-GslIVTBFJKEWnceA .error-icon{fill:#552222;}#mermaid-svg-GslIVTBFJKEWnceA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GslIVTBFJKEWnceA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-GslIVTBFJKEWnceA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GslIVTBFJKEWnceA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GslIVTBFJKEWnceA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-GslIVTBFJKEWnceA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GslIVTBFJKEWnceA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GslIVTBFJKEWnceA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GslIVTBFJKEWnceA .marker.cross{stroke:#333333;}#mermaid-svg-GslIVTBFJKEWnceA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GslIVTBFJKEWnceA p{margin:0;}#mermaid-svg-GslIVTBFJKEWnceA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-GslIVTBFJKEWnceA .cluster-label text{fill:#333;}#mermaid-svg-GslIVTBFJKEWnceA .cluster-label span{color:#333;}#mermaid-svg-GslIVTBFJKEWnceA .cluster-label span p{background-color:transparent;}#mermaid-svg-GslIVTBFJKEWnceA .label text,#mermaid-svg-GslIVTBFJKEWnceA span{fill:#333;color:#333;}#mermaid-svg-GslIVTBFJKEWnceA .node rect,#mermaid-svg-GslIVTBFJKEWnceA .node circle,#mermaid-svg-GslIVTBFJKEWnceA .node ellipse,#mermaid-svg-GslIVTBFJKEWnceA .node polygon,#mermaid-svg-GslIVTBFJKEWnceA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GslIVTBFJKEWnceA .rough-node .label text,#mermaid-svg-GslIVTBFJKEWnceA .node .label text,#mermaid-svg-GslIVTBFJKEWnceA .image-shape .label,#mermaid-svg-GslIVTBFJKEWnceA .icon-shape .label{text-anchor:middle;}#mermaid-svg-GslIVTBFJKEWnceA .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-GslIVTBFJKEWnceA .rough-node .label,#mermaid-svg-GslIVTBFJKEWnceA .node .label,#mermaid-svg-GslIVTBFJKEWnceA .image-shape .label,#mermaid-svg-GslIVTBFJKEWnceA .icon-shape .label{text-align:center;}#mermaid-svg-GslIVTBFJKEWnceA .node.clickable{cursor:pointer;}#mermaid-svg-GslIVTBFJKEWnceA .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-GslIVTBFJKEWnceA .arrowheadPath{fill:#333333;}#mermaid-svg-GslIVTBFJKEWnceA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GslIVTBFJKEWnceA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GslIVTBFJKEWnceA .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GslIVTBFJKEWnceA .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-GslIVTBFJKEWnceA .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GslIVTBFJKEWnceA .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-GslIVTBFJKEWnceA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GslIVTBFJKEWnceA .cluster text{fill:#333;}#mermaid-svg-GslIVTBFJKEWnceA .cluster span{color:#333;}#mermaid-svg-GslIVTBFJKEWnceA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-GslIVTBFJKEWnceA .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-GslIVTBFJKEWnceA rect.text{fill:none;stroke-width:0;}#mermaid-svg-GslIVTBFJKEWnceA .icon-shape,#mermaid-svg-GslIVTBFJKEWnceA .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GslIVTBFJKEWnceA .icon-shape p,#mermaid-svg-GslIVTBFJKEWnceA .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-GslIVTBFJKEWnceA .icon-shape .label rect,#mermaid-svg-GslIVTBFJKEWnceA .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GslIVTBFJKEWnceA .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-GslIVTBFJKEWnceA .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-GslIVTBFJKEWnceA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 评审组织
评审组长
评审成员
记录人员
文档作者
主持评审
做出结论
参与评审
提出问题
记录问题
整理纪要
解释文档
修改文档

评审人员

角色 人员 职责
评审组长 资深专家 主持评审、做出结论
技术专家 相关领域专家 技术审查
用户代表 最终用户 需求确认
开发人员 开发团队成员 技术可行性
测试人员 测试团队成员 可测试性
质量保证 QA人员 过程合规性

(三)评审会议

会议议程

时间 内容 负责人
5分钟 开场介绍 评审组长
10分钟 文档概述 文档作者
60分钟 逐段评审 全体
15分钟 问题汇总 记录人
10分钟 结论讨论 评审组长

会议规则

规则 说明
对事不对人 针对文档,不针对个人
聚焦问题 聚焦发现的问题
记录问题 详细记录所有问题
不做决策 评审会不做修改决策

💡 六、概要设计评审的检查清单

(一)系统架构检查清单

系统架构检查

序号 检查项 检查内容 结果
1 架构合理 架构是否合理 □是 □否
2 技术可行 技术是否可行 □是 □否
3 性能满足 性能是否满足 □是 □否
4 可扩展性 是否易于扩展 □是 □否
5 安全性 安全是否保障 □是 □否

(二)模块设计检查清单

模块设计检查

序号 检查项 检查内容 结果
1 模块完整 模块是否完整 □是 □否
2 功能明确 功能是否明确 □是 □否
3 内聚性高 内聚性是否高 □是 □否
4 耦合性低 耦合性是否低 □是 □否
5 模块独立 模块是否独立 □是 □否

(三)接口设计检查清单

接口设计检查

序号 检查项 检查内容 结果
1 接口完整 接口是否完整 □是 □否
2 接口清晰 接口是否清晰 □是 □否
3 参数明确 参数是否明确 □是 □否
4 异常处理 异常是否处理 □是 □否
5 协议明确 协议是否明确 □是 □否

(四)数据设计检查清单

数据设计检查

序号 检查项 检查内容 结果
1 数据完整 数据是否完整 □是 □否
2 结构合理 结构是否合理 □是 □否
3 命名规范 命名是否规范 □是 □否
4 约束明确 约束是否明确 □是 □否
5 关系清晰 关系是否清晰 □是 □否

(五)总体检查清单

总体检查

序号 检查项 检查内容 结果
1 需求覆盖 设计是否覆盖所有需求 □是 □否
2 设计正确 设计是否正确 □是 □否
3 设计完整 设计是否完整 □是 □否
4 设计一致 设计是否一致 □是 □否
5 设计可行 设计是否可行 □是 □否
6 可维护性 设计是否易于维护 □是 □否
7 可测试性 设计是否易于测试 □是 □否
8 文档规范 文档是否规范 □是 □否

📝 七、概要设计评审的注意事项

(一)常见问题

常见问题

问题 表现 解决方法
评审流于形式 走过场,不深入 严格评审流程
问题记录不全 遗漏重要问题 使用检查清单
修改不彻底 修改不到位 复审验证
评审效率低 会议时间长 充分预审
参与不充分 人员缺席 强调重要性
范围蔓延 评审范围扩大 控制评审范围

(二)注意事项

注意事项
#mermaid-svg-rgCKrFcESb0J2qPp{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-rgCKrFcESb0J2qPp .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-rgCKrFcESb0J2qPp .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-rgCKrFcESb0J2qPp .error-icon{fill:#552222;}#mermaid-svg-rgCKrFcESb0J2qPp .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-rgCKrFcESb0J2qPp .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-rgCKrFcESb0J2qPp .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-rgCKrFcESb0J2qPp .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-rgCKrFcESb0J2qPp .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-rgCKrFcESb0J2qPp .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-rgCKrFcESb0J2qPp .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-rgCKrFcESb0J2qPp .marker{fill:#333333;stroke:#333333;}#mermaid-svg-rgCKrFcESb0J2qPp .marker.cross{stroke:#333333;}#mermaid-svg-rgCKrFcESb0J2qPp svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-rgCKrFcESb0J2qPp p{margin:0;}#mermaid-svg-rgCKrFcESb0J2qPp .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-rgCKrFcESb0J2qPp .cluster-label text{fill:#333;}#mermaid-svg-rgCKrFcESb0J2qPp .cluster-label span{color:#333;}#mermaid-svg-rgCKrFcESb0J2qPp .cluster-label span p{background-color:transparent;}#mermaid-svg-rgCKrFcESb0J2qPp .label text,#mermaid-svg-rgCKrFcESb0J2qPp span{fill:#333;color:#333;}#mermaid-svg-rgCKrFcESb0J2qPp .node rect,#mermaid-svg-rgCKrFcESb0J2qPp .node circle,#mermaid-svg-rgCKrFcESb0J2qPp .node ellipse,#mermaid-svg-rgCKrFcESb0J2qPp .node polygon,#mermaid-svg-rgCKrFcESb0J2qPp .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-rgCKrFcESb0J2qPp .rough-node .label text,#mermaid-svg-rgCKrFcESb0J2qPp .node .label text,#mermaid-svg-rgCKrFcESb0J2qPp .image-shape .label,#mermaid-svg-rgCKrFcESb0J2qPp .icon-shape .label{text-anchor:middle;}#mermaid-svg-rgCKrFcESb0J2qPp .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-rgCKrFcESb0J2qPp .rough-node .label,#mermaid-svg-rgCKrFcESb0J2qPp .node .label,#mermaid-svg-rgCKrFcESb0J2qPp .image-shape .label,#mermaid-svg-rgCKrFcESb0J2qPp .icon-shape .label{text-align:center;}#mermaid-svg-rgCKrFcESb0J2qPp .node.clickable{cursor:pointer;}#mermaid-svg-rgCKrFcESb0J2qPp .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-rgCKrFcESb0J2qPp .arrowheadPath{fill:#333333;}#mermaid-svg-rgCKrFcESb0J2qPp .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-rgCKrFcESb0J2qPp .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-rgCKrFcESb0J2qPp .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-rgCKrFcESb0J2qPp .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-rgCKrFcESb0J2qPp .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-rgCKrFcESb0J2qPp .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-rgCKrFcESb0J2qPp .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-rgCKrFcESb0J2qPp .cluster text{fill:#333;}#mermaid-svg-rgCKrFcESb0J2qPp .cluster span{color:#333;}#mermaid-svg-rgCKrFcESb0J2qPp div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-rgCKrFcESb0J2qPp .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-rgCKrFcESb0J2qPp rect.text{fill:none;stroke-width:0;}#mermaid-svg-rgCKrFcESb0J2qPp .icon-shape,#mermaid-svg-rgCKrFcESb0J2qPp .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-rgCKrFcESb0J2qPp .icon-shape p,#mermaid-svg-rgCKrFcESb0J2qPp .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-rgCKrFcESb0J2qPp .icon-shape .label rect,#mermaid-svg-rgCKrFcESb0J2qPp .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-rgCKrFcESb0J2qPp .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-rgCKrFcESb0J2qPp .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-rgCKrFcESb0J2qPp :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 注意事项
充分准备
聚焦问题
记录完整
跟踪闭环
持续改进
提前分发材料
对事不对人
详细记录
跟踪修改
总结经验

注意事项详解

注意事项 说明
充分准备 提前分发材料,预留预审时间
聚焦问题 针对文档内容,不针对个人
记录完整 详细记录所有发现的问题
跟踪闭环 跟踪问题修改,确保闭环
持续改进 总结经验,持续改进评审过程
控制范围 控制评审范围,避免范围蔓延
时间控制 控制会议时间,提高效率

(三)评审度量

度量指标

指标 说明 计算方式
评审效率 单位时间发现的问题数 问题数/评审时间
缺陷密度 每页/每功能点的问题数 问题数/规模
评审准备率 预审参与率 参与人数/应参与人数
问题关闭率 问题解决比例 已解决/总问题
返工率 需要复审的比例 复审次数/评审次数

📊 八、概要设计评审实例

(一)评审背景

项目:电商系统概要设计评审

评审对象:概要设计说明书V1.0

(二)评审准备

评审计划

项目 内容
评审时间 2024-04-01
评审地点 会议室A
评审组长 张三(资深架构师)
评审成员 李四、王五、赵六、钱七
评审范围 系统架构、模块设计、接口设计、数据设计

(三)评审执行

评审过程
#mermaid-svg-lMwSNJGZ33WlVgNX{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-lMwSNJGZ33WlVgNX .error-icon{fill:#552222;}#mermaid-svg-lMwSNJGZ33WlVgNX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lMwSNJGZ33WlVgNX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lMwSNJGZ33WlVgNX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lMwSNJGZ33WlVgNX .marker.cross{stroke:#333333;}#mermaid-svg-lMwSNJGZ33WlVgNX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lMwSNJGZ33WlVgNX p{margin:0;}#mermaid-svg-lMwSNJGZ33WlVgNX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-lMwSNJGZ33WlVgNX .cluster-label text{fill:#333;}#mermaid-svg-lMwSNJGZ33WlVgNX .cluster-label span{color:#333;}#mermaid-svg-lMwSNJGZ33WlVgNX .cluster-label span p{background-color:transparent;}#mermaid-svg-lMwSNJGZ33WlVgNX .label text,#mermaid-svg-lMwSNJGZ33WlVgNX span{fill:#333;color:#333;}#mermaid-svg-lMwSNJGZ33WlVgNX .node rect,#mermaid-svg-lMwSNJGZ33WlVgNX .node circle,#mermaid-svg-lMwSNJGZ33WlVgNX .node ellipse,#mermaid-svg-lMwSNJGZ33WlVgNX .node polygon,#mermaid-svg-lMwSNJGZ33WlVgNX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lMwSNJGZ33WlVgNX .rough-node .label text,#mermaid-svg-lMwSNJGZ33WlVgNX .node .label text,#mermaid-svg-lMwSNJGZ33WlVgNX .image-shape .label,#mermaid-svg-lMwSNJGZ33WlVgNX .icon-shape .label{text-anchor:middle;}#mermaid-svg-lMwSNJGZ33WlVgNX .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-lMwSNJGZ33WlVgNX .rough-node .label,#mermaid-svg-lMwSNJGZ33WlVgNX .node .label,#mermaid-svg-lMwSNJGZ33WlVgNX .image-shape .label,#mermaid-svg-lMwSNJGZ33WlVgNX .icon-shape .label{text-align:center;}#mermaid-svg-lMwSNJGZ33WlVgNX .node.clickable{cursor:pointer;}#mermaid-svg-lMwSNJGZ33WlVgNX .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-lMwSNJGZ33WlVgNX .arrowheadPath{fill:#333333;}#mermaid-svg-lMwSNJGZ33WlVgNX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-lMwSNJGZ33WlVgNX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-lMwSNJGZ33WlVgNX .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lMwSNJGZ33WlVgNX .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-lMwSNJGZ33WlVgNX .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lMwSNJGZ33WlVgNX .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-lMwSNJGZ33WlVgNX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-lMwSNJGZ33WlVgNX .cluster text{fill:#333;}#mermaid-svg-lMwSNJGZ33WlVgNX .cluster span{color:#333;}#mermaid-svg-lMwSNJGZ33WlVgNX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-lMwSNJGZ33WlVgNX .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-lMwSNJGZ33WlVgNX rect.text{fill:none;stroke-width:0;}#mermaid-svg-lMwSNJGZ33WlVgNX .icon-shape,#mermaid-svg-lMwSNJGZ33WlVgNX .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lMwSNJGZ33WlVgNX .icon-shape p,#mermaid-svg-lMwSNJGZ33WlVgNX .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-lMwSNJGZ33WlVgNX .icon-shape .label rect,#mermaid-svg-lMwSNJGZ33WlVgNX .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lMwSNJGZ33WlVgNX .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-lMwSNJGZ33WlVgNX .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-lMwSNJGZ33WlVgNX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 开场介绍
文档概述
逐段评审
问题汇总
结论讨论

发现的问题

序号 问题描述 严重程度 位置
1 缺少缓存设计 系统架构
2 模块耦合度高 模块设计
3 接口参数不明确 接口设计
4 数据库索引缺失 数据设计
5 缺少日志设计 运行设计

(四)问题处理

问题处理

序号 问题 处理措施 责任人 完成时间
1 缺少缓存设计 增加Redis缓存设计 架构师 2024-04-05
2 模块耦合度高 重构模块,降低耦合 设计师 2024-04-05
3 接口参数不明确 明确接口参数定义 设计师 2024-04-05
4 数据库索引缺失 添加必要索引 DBA 2024-04-05
5 缺少日志设计 增加日志设计 架构师 2024-04-05

(五)评审结论

评审结论

结论 说明
评审结果 修改后通过
修改要求 修改5个问题
复审时间 2024-04-08
基线建立 复审通过后建立

📝 总结

概要设计评审是确保设计质量的关键活动。

🎯 评审意义:早期发现缺陷,降低修复成本;确保设计质量;促进各方达成共识;降低项目风险。

📦 评审内容:检查需求覆盖、架构合理性、模块独立性、接口清晰性、数据完整性、可行性、可维护性;检查系统架构、模块设计、接口设计、数据设计、运行设计等。

🌐 评审方法:采用正式评审、技术评审、走查、检视等方法;使用检查表法、追踪法、接口分析等评审技术。

📋 评审流程:评审计划→评审准备→评审执行→问题处理→评审结论→基线建立。

💡 关键要点:充分准备,提高评审效率;聚焦问题,对事不对人;使用检查清单,确保全面性;跟踪闭环,确保问题解决;持续改进,不断提高评审质量。


核心启示:概要设计评审是软件质量保证的重要手段,"预防胜于治疗"。通过评审发现的设计问题,修复成本远低于后期发现。据统计,在设计阶段发现并修复一个错误的成本,可能只有在测试阶段修复成本的1/50。因此,必须重视概要设计评审工作:第一,建立规范的评审流程,不要流于形式;第二,充分准备,预留预审时间;第三,使用检查清单,确保评审全面性;第四,跟踪闭环,确保问题得到解决;第五,持续改进,不断提高评审质量。概要设计评审不是找茬,而是帮助团队发现问题、改进质量。良好的评审文化是项目成功的重要保障。通过系统化的概要设计评审,我们可以确保设计的质量,为后续的详细设计和编码实现奠定坚实的基础。


相关推荐
zhaoshuzhaoshu8 小时前
软件需求工程:需求开发详解
软件工程
梁辰兴1 天前
软件工程:面向数据结构的设计方法
数据结构·软件工程·梁辰兴·面向数据结构的设计方法·jackson方法·warnier方法·方法比较
jufeng13071 天前
【系列:MiniKV 原理剖析 · 第 6 篇】
linux·软件工程·个人开发·makefile
__zRainy__1 天前
软件开发工程化 · 入门篇:什么是工程化
软件工程·工程化
jufeng13071 天前
【系列:MiniKV 原理剖析 · 第 5 篇】
linux·网络·c++·软件工程
jufeng13071 天前
【系列:MiniKV 原理剖析 · 第 8 篇(完结篇)】
linux·c++·log4j·软件工程·makefile
梁辰兴2 天前
软件工程:软件结构设计
软件工程·设计文档·设计方法·梁辰兴·设计定义·设计优化·软件结构设计
jufeng13072 天前
【系列:MiniKV 原理剖析 · 第 2 篇】
linux·c++·软件工程
lincats2 天前
智能体工程 vs 软件工程:计算机系那套课程,还能适应 AI 时代吗?
人工智能·软件工程·原型模式·vibecoding·claudecode·grillme