<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="https://huanglian.top/blog/rss.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <atom:link href="https://huanglian.top/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <title>黄炼wiki</title>
    <link>https://huanglian.top/blog/</link>
    <description>欢迎来到黄炼的个人博客</description>
    <language>zh-CN</language>
    <pubDate>Mon, 05 Oct 2026 08:52:02 GMT</pubDate>
    <lastBuildDate>Mon, 05 Oct 2026 08:52:02 GMT</lastBuildDate>
    <generator>@vuepress/plugin-feed</generator>
    <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
    <item>
      <title>数据流图</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/</guid>
      <source url="https://huanglian.top/blog/rss.xml">数据流图</source>
      <description>数据流图 1. 课程内容提要 6gYtm9 学习目录</description>
      <pubDate>Tue, 29 Sep 2026 05:32:44 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 课程内容提要</h2>
<p></p>
<h2>学习目录</h2>
<ul>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html" target="_blank">数据流图的基本概念</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E6%95%B0%E6%8D%AE%E5%B9%B3%E8%A1%A1%E5%8E%9F%E5%88%99.html" target="_blank">数据平衡原则</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E8%A7%A3%E9%A2%98%E6%8A%80%E5%B7%A7.html" target="_blank">解题技巧</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E5%AE%9E%E6%88%98%E6%BC%94%E7%BB%83.html" target="_blank">实战演练</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>实战演练</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E5%AE%9E%E6%88%98%E6%BC%94%E7%BB%83.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E5%AE%9E%E6%88%98%E6%BC%94%E7%BB%83.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">实战演练</source>
      <description>实战演练 1. 题目一 1.1 题目 BhIUG6 【问题1】 （3分） 根据【说明】，将图11-3中的E1～E3填充完整。 【问题2】 （3分） 图11-3中缺少三条数据流，根据【说明】，分别指出这三条数据流的起点和终点。（注：数据流的起点和终点均采用图中的符号和描述） 【问题3】 （5分） 图11-4中有两条数据流是错误的，请指出这两条数据流的名称...</description>
      <pubDate>Wed, 30 Sep 2026 07:13:04 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 题目一</h2>
<h3>1.1 题目</h3>
<blockquote>
<p></p>
<p><strong>【问题1】</strong> （3分）</p>
<p>根据【说明】，将图11-3中的E1～E3填充完整。</p>
<p><strong>【问题2】</strong> （3分）</p>
<p>图11-3中缺少三条数据流，根据【说明】，分别指出这三条数据流的起点和终点。（注：数据流的起点和终点均采用图中的符号和描述）</p>
<p><strong>【问题3】</strong> （5分）</p>
<p>图11-4中有两条数据流是错误的，请指出这两条数据流的名称，并改正。（注：数据流的起点和终点均采用图中的符号和描述）</p>
<p><strong>【问题4】</strong> （4分）</p>
<p>根据【说明】，将图11-4中P1～P4的处理名称填充完整。</p>
<ul>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>问题1</strong>：补充外部实体，从人物角色、组织机构、外部系统中找。</li>
<li><strong>问题2</strong>：补充缺失数据流，依据数据平衡原则和题目说明匹配。</li>
<li><strong>问题3</strong>：找出错误数据流并改正，注意父图与子图平衡、加工输入输出是否合理。</li>
<li><strong>问题4</strong>：补充加工名，找“动词+名词”结构。</li>
</ul>
</li>
</ul>
</blockquote>
<h3>1.2 问题1</h3>
<blockquote>
<p>根据【说明】，将图11-3中的E1～E3填充完整。</p>
</blockquote>
<p><strong>答案：</strong> E1:非信用卡客户；E2:信用卡客户；E3:银行。</p>
<h3>1.3 问题2</h3>
<blockquote>
<p>图11-3中缺少三条数据流，根据【说明】，分别指出这三条数据流的起点和终点。（注：数据流的起点和终点均采用图中的符号和描述）</p>
</blockquote>
<p><strong>答案：</strong>​<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>E</mi><mn>1</mn></msub><mo>→</mo><msub><mi>P</mi><mn>0</mn></msub><mo>:</mo><mtext>信用卡申请表</mtext></mrow><annotation encoding="application/x-tex">E_1 \to P_0 : \text{信用卡申请表}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0576em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">信用卡申请表</span></span></span></span></span>；<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>E</mi><mn>2</mn></msub><mo>→</mo><msub><mi>P</mi><mn>0</mn></msub><mo>:</mo><mtext>激活请求</mtext></mrow><annotation encoding="application/x-tex">E_2 \to P_0 : \text{激活请求}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0576em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">激活请求</span></span></span></span></span>；<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>E</mi><mn>2</mn></msub><mo>←</mo><msub><mi>P</mi><mn>0</mn></msub><mo>:</mo><mtext>交易信息</mtext></mrow><annotation encoding="application/x-tex">E_2 \gets P_0 : \text{交易信息}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0576em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">←</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">交易信息</span></span></span></span></span>。</p>
<h3>1.4 问题3</h3>
<blockquote>
<p>图11-4中有两条数据流是错误的，请指出这两条数据流的名称，并改正。（注：数据流的起点和终点均采用图中的符号和描述</p>
</blockquote>
<p><strong>答案：</strong></p>
<ul>
<li>
<p>错误的数据流：</p>
<ul>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>E</mi><mn>1</mn></msub><mo>←</mo><msub><mi>P</mi><mn>4</mn></msub><mo>:</mo><mtext>信用卡申请表</mtext></mrow><annotation encoding="application/x-tex">E_1 \gets P_4 : \text{信用卡申请表}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0576em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">←</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">信用卡申请表</span></span></span></span></span></li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>P</mi><mn>3</mn></msub><mo>←</mo><msub><mi>P</mi><mn>4</mn></msub><mo>:</mo><mtext>激活请求</mtext></mrow><annotation encoding="application/x-tex">P_3 \gets P_4 : \text{激活请求}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">←</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">激活请求</span></span></span></span></span></li>
</ul>
</li>
<li>
<p>修改正确：</p>
<ul>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>E</mi><mn>1</mn></msub><mo>→</mo><msub><mi>P</mi><mn>4</mn></msub><mo>:</mo><mtext>信用卡申请表</mtext></mrow><annotation encoding="application/x-tex">E_1 \to P_4 : \text{信用卡申请表}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0576em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">信用卡申请表</span></span></span></span></span></li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>E</mi><mn>2</mn></msub><mo>→</mo><msub><mi>P</mi><mn>3</mn></msub><mo>:</mo><mtext>激活请求</mtext></mrow><annotation encoding="application/x-tex">E_2 \to P_3 : \text{激活请求}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0576em;">E</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0576em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">激活请求</span></span></span></span></span></li>
</ul>
</li>
</ul>
<h3>1.5 问题4</h3>
<blockquote>
<p>根据【说明】，将图11-4中P1～P4的处理名称填充完整。</p>
</blockquote>
<p><strong>答案：</strong> P4:信用卡申请；P3：信用卡激活；P2:信用卡客户信息管理；P1:交易信息查询。</p>
<h2>2. 题目二</h2>
<h3>2.1 题目</h3>
<blockquote>
<p>阅读下列说明，回答问题1至问题4，将答案填入对应栏内。</p>
<p><strong>【说明】</strong></p>
<p>某医疗护理机构为老年人或有护理需求者提供专业护理，现欲开发一基于Web的医疗管理系统，以改善医疗护理效率。该系统的主要功能如下：</p>
<ol>
<li><strong>通用信息查询</strong>。客户提交通用信息查询请求，查询通用信息表，返回查询结果。</li>
<li><strong>医生聘用</strong>。医生提出应聘/辞职申请，交由主管进行聘用/解聘审批，更新医生表，并给医生反馈聘用/解聘结果；删除解聘医生的出诊安排。</li>
<li><strong>预约处理</strong>。医生安排出诊时间，存入医生出诊时间表；根据客户提交的预约查询请求，查询在职医生及其出诊时间等预约所需数据并返回；创建预约，提交预约请求，在预约表中新增预约记录，更新所约医生出诊时间并给医生发送预约通知；给客户反馈预约结果。</li>
<li><strong>药品管理</strong>。医生提交处方，根据药品名称从药品数据中查询相关药品库存信息，开出药品，更新对应药品的库存以及预约表中的治疗信息；给医生发送“药品已开出”反馈。</li>
<li><strong>报表创建</strong>。根据主管提交的报表查询请求（报表类型和时间段），从预约数据、通用信息、药品库存数据、医生以及医生出诊时间中进行查询，生成报表返回给主管。</li>
</ol>
<p></p>
<p></p>
<p><strong>【问题1】</strong> （3分）</p>
<p>使用说明中的词语，给出图1-1中的实体E1～E3的名称。</p>
<p><strong>【问题2】</strong> （5分）</p>
<p>使用说明中的词语，给出图1-2中的数据存储D1～D5的名称。</p>
<p><strong>【问题3】</strong> （4分）</p>
<p>使用说明和图中术语，补充图1-2中缺失的数据流及其起点和终点。</p>
<p><strong>【问题4】</strong> （3分）</p>
<p>使用说明中的词语，说明“预约处理”可以分解为哪些子加工，并说明建模图1-1和图1-2是如何保持数据流图平衡。</p>
<p><strong>核心总结</strong>：</p>
<ul>
<li>系统主要功能：通用信息查询、医生聘用、预约处理、药品管理、报表创建。</li>
<li>补充实体时关注：客户、医生、主管等人物角色。</li>
<li>补充数据存储时关注：通用信息表、医生表、医生出诊时间表、预约表、药品数据等。</li>
<li>补充加工名时关注：查询、聘用、审批、预约、开出药品、生成报表等“动词+名词”结构。</li>
</ul>
</blockquote>
<h3>2.2 问题1</h3>
<blockquote>
<p>使用说明中的词语，给出图1-1中的实体E1～E3的名称。</p>
</blockquote>
<p><strong>答案：</strong> E1:客户；E2:医生；E3:主管。</p>
<h3>2.3 问题2</h3>
<blockquote>
<p>使用说明中的词语，给出图1-2中的数据存储D1～D5的名称。</p>
</blockquote>
<p><strong>答案：</strong> D1:通用信息表；D2:预约表；D3:医生表；D4:医生出诊时间表；D5:药品库存表。</p>
<h4>2.3.1 问题3</h4>
<blockquote>
<p>使用说明和图中术语，补充图1-2中缺失的数据流及其起点和终点。</p>
</blockquote>
<p><strong>答案：</strong></p>
<ul>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>P</mi><mn>4</mn></msub><mo>→</mo><msub><mi>D</mi><mn>2</mn></msub><mo>:</mo><mtext>更新预约表中的治疗信息</mtext></mrow><annotation encoding="application/x-tex">P_4 \to D_2 : \text{更新预约表中的治疗信息}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">D</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">更新预约表中的治疗信息</span></span></span></span></span></li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>P</mi><mn>3</mn></msub><mo>→</mo><msub><mi>D</mi><mn>4</mn></msub><mo>:</mo><mtext>更新所约医生出诊时间</mtext></mrow><annotation encoding="application/x-tex">P_3 \to D_4 : \text{更新所约医生出诊时间}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">D</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">更新所约医生出诊时间</span></span></span></span></span></li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>P</mi><mn>2</mn></msub><mo>→</mo><msub><mi>D</mi><mn>4</mn></msub><mo>:</mo><mtext>删除解聘医生的出诊安排</mtext></mrow><annotation encoding="application/x-tex">P_2 \to D_4 : \text{删除解聘医生的出诊安排}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">→</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">D</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">删除解聘医生的出诊安排</span></span></span></span></span></li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>P</mi><mn>4</mn></msub><mo>←</mo><msub><mi>D</mi><mn>5</mn></msub><mo>:</mo><mtext>相关药品信息</mtext></mrow><annotation encoding="application/x-tex">P_4 \gets D_5 : \text{相关药品信息}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">4</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">←</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">D</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">5</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">相关药品信息</span></span></span></span></span></li>
</ul>
<h3>2.4 问题4</h3>
<blockquote>
<p>使用说明中的词语，说明“预约处理”可以分解为哪些子加工，并说明建模图1-1和图1-2是如何保持数据流图平衡。</p>
</blockquote>
<p><strong>正确答案</strong>：</p>
<ul>
<li>
<p><strong>“预约处理”可以分解为</strong>：安排出诊、预约查询、创建预约、预约反馈。</p>
</li>
<li>
<p><strong>如何保持数据流图平衡</strong>：</p>
<ul>
<li>即保持父图与子图之间的平衡：父图中某个加工的输入输出数据流必须与其子图的输入输出数据流在数量上和名字上相同。</li>
<li>父图的一个输入（或输出）数据流对应于子图中几个输入（或输出）数据流，而子图中组成的这些数据流的数据项全体正好是父图中的这一个数据流。</li>
</ul>
</li>
</ul>
<p>‍</p>
]]></content:encoded>
    </item>
    <item>
      <title>数据平衡原则</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E6%95%B0%E6%8D%AE%E5%B9%B3%E8%A1%A1%E5%8E%9F%E5%88%99.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E6%95%B0%E6%8D%AE%E5%B9%B3%E8%A1%A1%E5%8E%9F%E5%88%99.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">数据平衡原则</source>
      <description>数据平衡原则 1. 考点：父图与子图之间的平衡 父图与子图之间平衡是指任何一张 DFD 子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据流保持一致。 pnDXki 如果父图中某个加工的一条数据流对应于子图中的几条数据流，而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流，那么它们仍然是平衡的。 GXry3T 2. 考点：子图内...</description>
      <pubDate>Wed, 30 Sep 2026 05:59:36 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：父图与子图之间的平衡</h2>
<ul>
<li>父图与子图之间平衡是指任何一张 DFD 子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据流保持一致。</li>
</ul>
<p></p>
<ul>
<li>如果父图中某个加工的一条数据流对应于子图中的几条数据流，而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流，那么它们仍然是平衡的。</li>
</ul>
<p></p>
<h2>2. 考点：子图内平衡</h2>
<p></p>
<ul>
<li><strong>黑洞</strong>：加工只有输入没有输出。</li>
<li><strong>奇迹</strong>：加工只有输出没有输入。</li>
<li><strong>灰洞</strong>：加工中输入不足以产生输出。</li>
</ul>
<p>‍</p>
]]></content:encoded>
    </item>
    <item>
      <title>数据流图的基本概念</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">数据流图的基本概念</source>
      <description>数据流图的基本概念 1. 考点：数据流图介绍 Q0ru1E 1.1 元素说明 Id7A8J 核心总结： 数据字典会对数据流图中元素进行定义说明，​除开外部实体。 数据流必须和加工相关，不能是数据源与数据存储之间的直接流动。 加工描述输入到输出的变换，数据存储用于暂存数据，外部实体在系统之外。 1.2 数据流图实例 uNiV8D 1.3 数据流图（DFD...</description>
      <pubDate>Tue, 29 Sep 2026 06:28:45 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：数据流图介绍</h2>
<p></p>
<h3>1.1 元素说明</h3>
<p></p>
<p>|元素|说明|图元|
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>解题技巧</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E8%A7%A3%E9%A2%98%E6%8A%80%E5%B7%A7.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE/%E8%A7%A3%E9%A2%98%E6%8A%80%E5%B7%A7.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">解题技巧</source>
      <description>解题技巧 1. 考点：详细分析试题说明 1.1 补充实体 实体可能是： 人物角色：如客户、管理员、主管、经理、老师、学生 组织机构：如银行、供应商、募捐机构 外部系统：如银行系统、工资系统、后台数据库（当要开发的是中间件时） 1.2 补充存储 存储的文字方面特征：“文件”、“表”、“库”、“清单”、“档案”。 核心总结： 补充实体：从人物角色、组织机构...</description>
      <pubDate>Wed, 30 Sep 2026 06:33:50 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：详细分析试题说明</h2>
<h3>1.1 <strong>补充实体</strong></h3>
<p>实体可能是：</p>
<ol>
<li><strong>人物角色</strong>：如客户、管理员、主管、经理、老师、学生</li>
<li><strong>组织机构</strong>：如银行、供应商、募捐机构</li>
<li><strong>外部系统</strong>：如银行系统、工资系统、后台数据库（当要开发的是中间件时）</li>
</ol>
<h3>1.2 <strong>补充存储</strong></h3>
<p>存储的文字方面特征：“<em>文件</em>”、“<em>表</em>”、“<em>库</em>”、“<em>清单</em>”、“<em>档案</em>”。</p>
<ul>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>补充实体</strong>：从人物角色、组织机构、外部系统三个方向找。</li>
<li><strong>补充存储</strong>：看到“文件、表、库、清单、档案”等字眼，通常就是数据存储。</li>
</ul>
</li>
</ul>
<h3>1.3 <strong>补充加工名</strong></h3>
<p>加工是用于处理数据流的，所以要补充加工名，可以把该加工涉及到的数据流在说明中标识出来，再在数据流名称所在的句子中，找“​<strong>动词+名词</strong>”的结构，分析是否可作为加工的条件。</p>
<p>“动词+名词”如：生成报告、发出通知、批改作业、记录分数等，当然这只是普遍情况，也有例外（“​<strong>名词+动词</strong>”），如物流跟踪、用户管理。</p>
<ul>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>补充加工名</strong>​：找“​<strong>动词+名词</strong>”结构。</li>
<li>常见示例：生成报告、发出通知、批改作业、记录分数。</li>
<li>例外情况：“​<strong>名词+动词</strong>”，如物流跟踪、用户管理。</li>
</ul>
</li>
</ul>
<h2>2. 考点：利用数据平衡原则</h2>
<h3>2.1 <strong>补充数据流</strong></h3>
<p><strong>1、数据平衡原则</strong></p>
<ul>
<li>（1）顶层图与0层图对比，是否有顶层图有，但0层图无的数据流，或反之。</li>
<li>（2）检查图中每个加工，是否存在只有入没有出，或只有出没有入，或根据输入的数据无法产生对应的输出的情况。</li>
</ul>
<p><strong>2、按题目说明与图进行匹配</strong></p>
<p>说明中的每一句话，都能与图中有对应关系，当把说明中的实体与数据流标识出来之后，容易缩小对应范围，找出纰漏。</p>
<ul>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>补充数据流</strong>​：依据<strong>数据平衡原则</strong>和​<strong>题目说明与图匹配</strong>。</li>
<li>数据平衡原则：检查父图与子图的数据流是否一致，检查每个加工是否存在黑洞、奇迹、灰洞。</li>
<li>题目说明与图匹配：说明中每句话都应在图中有对应，标识实体和数据流后可缩小范围、找出纰漏。</li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>项目管理</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/</guid>
      <source url="https://huanglian.top/blog/rss.xml">项目管理</source>
      <description>项目管理 1. 知识点分布 QhbWlu 2. 历年考试分布 rdTZ5Q 学习目录</description>
      <pubDate>Mon, 28 Sep 2026 05:25:44 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 知识点分布</h2>
<p></p>
<h2>2. 历年考试分布</h2>
<p></p>
<h2>学习目录</h2>
<ul>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E8%BF%9B%E5%BA%A6%E7%AE%A1%E7%90%86.html" target="_blank">进度管理</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E6%88%90%E6%9C%AC%E7%AE%A1%E7%90%86.html" target="_blank">成本管理</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86.html" target="_blank">风险管理</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E6%B2%9F%E9%80%9A%E7%AE%A1%E7%90%86.html" target="_blank">沟通管理</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>成本管理</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E6%88%90%E6%9C%AC%E7%AE%A1%E7%90%86.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E6%88%90%E6%9C%AC%E7%AE%A1%E7%90%86.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">成本管理</source>
      <description>成本管理 1. 考点：成本管理 58weON 项目估算​：主要是需要估算出所需的​成本、规模和工作量，而并不是对类型进行估算。 1.1 COCOMO II 模型 应用组装模型： 对象点 早期设计阶段模型： 功能点 代码行 体系结构阶段模型： 代码行 核心总结： 项目估算的对象：成本、规模、工作量。 COCOMO II 模型分为三种： 应用组装模型 → ...</description>
      <pubDate>Mon, 28 Sep 2026 08:00:08 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：成本管理</strong></h2>
<p></p>
<ul>
<li><strong>项目估算</strong>​：主要是需要估算出所需的​<strong>成本、规模和工作量</strong>，而并不是对类型进行估算。</li>
</ul>
<h3>1.1 <strong>COCOMO II 模型</strong></h3>
<ul>
<li>
<p><strong>应用组装模型</strong>：</p>
<ul>
<li>对象点</li>
</ul>
</li>
<li>
<p><strong>早期设计阶段模型</strong>：</p>
<ul>
<li>功能点</li>
<li>代码行</li>
</ul>
</li>
<li>
<p><strong>体系结构阶段模型</strong>：</p>
<ul>
<li>代码行</li>
</ul>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li>
<p><strong>项目估算</strong>的对象：成本、规模、工作量。</p>
</li>
<li>
<p><strong>COCOMO II 模型</strong>分为三种：</p>
<ul>
<li><strong>应用组装模型</strong> → 用<strong>对象点</strong>估算。</li>
<li><strong>早期设计阶段模型</strong> → 用<strong>功能点</strong>或<strong>代码行</strong>估算。</li>
<li><strong>体系结构阶段模型</strong> → 用<strong>代码行</strong>估算。</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p><strong>题目：</strong>  工作量估算模型 COCOMO II 的层次结构中，估算选择不包括（ ）。</p>
<ul>
<li>A、对象点</li>
<li>B、功能点</li>
<li>C、用例数</li>
<li>D、源代码行</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：C</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 C（用例数）</strong> ​：COCOMO II 模型的估算选择中​<strong>不包括用例数</strong>。用例数通常用于其他估算方法（如用例点估算），但不是 COCOMO II 的层次结构中的估算选择。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、对象点</strong>​：属于 COCOMO II 中<strong>应用组装模型</strong>的估算选择。</li>
<li><strong>B、功能点</strong>​：属于 COCOMO II 中<strong>早期设计阶段模型</strong>的估算选择。</li>
<li><strong>D、源代码行</strong>​：属于 COCOMO II 中<strong>体系结构阶段模型</strong>的估算选择，同时也出现在早期设计阶段模型中。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：C（用例数）。</strong></p>
]]></content:encoded>
    </item>
    <item>
      <title>沟通管理</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E6%B2%9F%E9%80%9A%E7%AE%A1%E7%90%86.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E6%B2%9F%E9%80%9A%E7%AE%A1%E7%90%86.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">沟通管理</source>
      <description>沟通管理 1. 考点：无主程序员 ie9Et5 基本概念： 无主程序员团队（民主式团队）强调团队成员地位平等，没有绝对的技术专制或单一领导。 团队成员之间需要进行高度的协作和​两两沟通。 核心公式（沟通路径计算） ： 设团队总人数为 n，由于每两个程序员之间都需要建立一条沟通路径，因此总沟通路径数的计算公式为： Path=2n(n−1)​ （即 1+2...</description>
      <pubDate>Mon, 28 Sep 2026 08:02:37 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：无主程序员</h2>
<p></p>
<ul>
<li>
<p><strong>基本概念</strong>：</p>
<ul>
<li>无主程序员团队（民主式团队）强调团队成员地位平等，没有绝对的技术专制或单一领导。</li>
<li>团队成员之间需要进行高度的协作和​<strong>两两沟通</strong>。</li>
</ul>
</li>
<li>
<p><strong>核心公式（沟通路径计算）</strong> ：</p>
<ul>
<li>设团队总人数为 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span>，由于每两个程序员之间都需要建立一条沟通路径，因此总沟通路径数的计算公式为：</li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>P</mi><mi>a</mi><mi>t</mi><mi>h</mi><mo>=</mo><mfrac><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">Path = \frac{n(n-1)}{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.1389em;">P</span><span class="mord mathnormal">a</span><span class="mord mathnormal">t</span><span class="mord mathnormal">h</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span> （即 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>1</mn><mo>+</mo><mn>2</mn><mo>+</mo><mn>3</mn><mo>+</mo><mo>⋯</mo><mo>+</mo><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">1 + 2 + 3 + \dots + (n-1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">2</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">3</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="minner">⋯</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">1</span><span class="mclose">)</span></span></span></span> 的等差数列求和）</li>
</ul>
</li>
<li>
<p><strong>核心结论与考点总结</strong>：</p>
<ul>
<li><strong>平方级增长</strong>：沟通路径数随团队人数 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> 的增加呈​<strong>平方级增长</strong>。</li>
<li><strong>成本剧增</strong>：随着团队规模扩大，沟通路径会呈爆炸式膨胀，导致协调成本过高、效率显著下降。</li>
<li><strong>适用场景</strong>​：该模式由于沟通开销大，​<strong>不适合大型团队</strong>，通常适用于小型、高凝聚力、需要深度技术探讨的攻坚团队。</li>
</ul>
</li>
</ul>
<h2>2. 考点：有主程序员</h2>
<p></p>
<ul>
<li>
<p><strong>基本概念</strong>：</p>
<ul>
<li>主程序员团队（主程序员制）设立一个核心的​<strong>主程序员（Chief Programmer）</strong> ，由其负责系统的大部分设计、核心编码和统筹协调工作。</li>
<li>其他普通程序员围绕主程序员展开协同工作。</li>
</ul>
</li>
<li>
<p><strong>核心公式（沟通路径计算）</strong> ：</p>
<ul>
<li><strong>沟通路径数</strong>：由于普通程序员之间通常不直接进行复杂的横向沟通，所有成员主要与主程序员单线联系，因此沟通路径数大幅减少。</li>
<li><strong>路径公式</strong>：若团队总人数为 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span>（1个主程序员 + <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">n-1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span> 个普通程序员），则总沟通路径数为 ​**<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">n - 1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span>**。</li>
</ul>
</li>
<li>
<p><strong>核心结论与考点总结</strong>：</p>
<ul>
<li><strong>线性增长</strong>：相比于无主程序员团队呈平方级增长 (<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">\frac{n(n-1)}{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>) 的沟通成本，主程序员团队的沟通路径呈​<strong>线性增长</strong>（<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>−</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">n-1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span>）。</li>
<li><strong>优缺点</strong>：大大降低了沟通成本，提高了决策和开发效率；但对主程序员个人的技术与管理能力要求极高，容易产生“关键人风险”（主程序员离职或过载会导致项目瘫痪）。</li>
</ul>
</li>
</ul>
<h2>3. 经典例题</h2>
<h3>3.1 题目一</h3>
<blockquote>
<p><strong>题目：</strong>  在进行软件开发时，采用无主程序员的开发小组，成员之间相互平等；而主程序员负责制的开发小组，由一个主程序员和若干成员组成，成员之间没有沟通。在一个由 8 名开发人员构成的小组中，无主程序员组和主程序员组的沟通路径分别是（ ）。</p>
<ul>
<li>A、32和8</li>
<li>B、32和7</li>
<li>C、28和8</li>
<li>D、28和7</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：D</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>无主程序员组</strong>：</p>
<ul>
<li>成员之间相互平等，两两之间都需要沟通。</li>
<li>沟通路径数为 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mrow><mi>n</mi><mo stretchy="false">(</mo><mi>n</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">\frac{n(n-1)}{2}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">n</span><span class="mopen mtight">(</span><span class="mord mathnormal mtight">n</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span>。</li>
<li>当 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi><mo>=</mo><mn>8</mn></mrow><annotation encoding="application/x-tex">n=8</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">8</span></span></span></span> 时，<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mfrac><mrow><mn>8</mn><mo>×</mo><mo stretchy="false">(</mo><mn>8</mn><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mn>2</mn></mfrac><mo>=</mo><mfrac><mrow><mn>8</mn><mo>×</mo><mn>7</mn></mrow><mn>2</mn></mfrac><mo>=</mo><mn>28</mn></mrow><annotation encoding="application/x-tex">\frac{8 \times (8-1)}{2} = \frac{8 \times 7}{2} = 28</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.355em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.01em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.485em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">8</span><span class="mbin mtight">×</span><span class="mopen mtight">(</span><span class="mord mtight">8</span><span class="mbin mtight">−</span><span class="mord mtight">1</span><span class="mclose mtight">)</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1.1901em;vertical-align:-0.345em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.8451em;"><span style="top:-2.655em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">2</span></span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.394em;"><span class="pstrut" style="height:3em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">8</span><span class="mbin mtight">×</span><span class="mord mtight">7</span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.345em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">28</span></span></span></span>。</li>
</ul>
</li>
<li>
<p><strong>主程序员组</strong>：</p>
<ul>
<li>由一个主程序员和若干成员组成，成员之间没有沟通。</li>
<li>所有成员都只与主程序员沟通，沟通路径数等于成员数。</li>
<li>当总人数为 8 时，主程序员 1 人，成员 7 人，沟通路径数为 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>8</mn><mo>−</mo><mn>1</mn><mo>=</mo><mn>7</mn></mrow><annotation encoding="application/x-tex">8-1=7</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">8</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">7</span></span></span></span>。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：D（28和7）。</strong></p>
]]></content:encoded>
    </item>
    <item>
      <title>进度管理</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E8%BF%9B%E5%BA%A6%E7%AE%A1%E7%90%86.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E8%BF%9B%E5%BA%A6%E7%AE%A1%E7%90%86.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">进度管理</source>
      <description>进度管理 1. 考点：Gantt图（甘特图） hVEEDt 示例： 优点： Gantt图能够清晰地描述每个任务从何时开始，到何时结束，任务的进程情况以及各个任务之间的并行关系。 缺点： Gantt图不能清晰地反映出各任务之间的依赖关系，难以确定整个项目的关键所在，也不能反映计划中有潜力的部分。 核心总结： Gantt图（甘特图） ：横轴为时间，纵轴为任...</description>
      <pubDate>Mon, 28 Sep 2026 05:30:12 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：<strong>Gantt图（甘特图）</strong></h2>
<p></p>
<ul>
<li><strong>示例</strong>：</li>
</ul>
<p>|工作编号|工作名称|工作时间（M）|1|2|3|4|5|6|7|8|9|10|
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>风险管理</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">风险管理</source>
      <description>风险管理 1. 考点：基础概念 88UmRN 1.1 风险分类与特征 风险分类： 项目风险 技术风险 商业风险 风险两大特性： 不确定性 损失性 风险管理关注点： 关心未来 关心变化 关心选择 1.2 风险曝光度（Risk Exposure） 计算方法：风险出现的概率 × 风险可能造成的损失。 示例： 假设正在开发的软件项目可能存在一个未被发现的错误，...</description>
      <pubDate>Mon, 28 Sep 2026 07:48:25 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：基础概念</h2>
<p></p>
<h3>1.1 <strong>风险分类与特征</strong></h3>
<ul>
<li>
<p><strong>风险分类</strong>：</p>
<ul>
<li>项目风险</li>
<li>技术风险</li>
<li>商业风险</li>
</ul>
</li>
<li>
<p><strong>风险两大特性</strong>：</p>
<ul>
<li>不确定性</li>
<li>损失性</li>
</ul>
</li>
<li>
<p><strong>风险管理关注点</strong>：</p>
<ul>
<li>关心未来</li>
<li>关心变化</li>
<li>关心选择</li>
</ul>
</li>
</ul>
<h3>1.2 <strong>风险曝光度（Risk Exposure）</strong></h3>
<ul>
<li>
<p><strong>计算方法</strong>：风险出现的概率 × 风险可能造成的损失。</p>
</li>
<li>
<p><strong>示例</strong>：</p>
<ul>
<li>假设正在开发的软件项目可能存在一个未被发现的错误，而这个错误出现的概率是 0.5%，给公司造成的损失将是 1000000 元。</li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mtext>风险曝光度</mtext><mo>=</mo><mn>1000000</mn><mo>×</mo><mn>0.5</mn><mi mathvariant="normal">%</mi><mo>=</mo><mn>5000</mn><mtext> 元</mtext></mrow><annotation encoding="application/x-tex">\text{风险曝光度} = 1000000 \times 0.5\% = 5000\ \text{元}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord text"><span class="mord cjk_fallback">风险曝光度</span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">1000000</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.8056em;vertical-align:-0.0556em;"></span><span class="mord">0.5%</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord">5000</span><span class="mspace"> </span><span class="mord text"><span class="mord cjk_fallback">元</span></span></span></span></span>。</li>
</ul>
</li>
</ul>
<h3>1.3 <strong>风险管理步骤</strong></h3>
<ol>
<li>风险识别</li>
<li>风险预测</li>
<li>风险评估</li>
<li>风险控制</li>
</ol>
<ul>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li>风险分类：​<strong>项目风险、技术风险、商业风险</strong>。</li>
<li>风险两大特性：​<strong>不确定性、损失性</strong>。</li>
<li>风险管理关注：​<strong>未来、变化、选择</strong>。</li>
<li>风险曝光度：​<strong>概率 × 损失</strong>。</li>
<li>风险管理步骤：​<strong>识别 → 预测 → 评估 → 控制</strong>。</li>
</ul>
</li>
</ul>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p><strong>题目：</strong>  以下叙述中，（ ）不是一个风险。</p>
<ul>
<li>A、由另一个小组开发的子系统可能推迟交付，导致系统不能按时交付客户</li>
<li>B、客户不清楚想要开发什么样的软件，因此开发小组开发原型帮助其确定需求</li>
<li>C、开发团队可能没有正确理解客户的需求</li>
<li>D、开发团队核心成员可能在系统开发过程中离职</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：B</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 B（客户不清楚想要开发什么样的软件，因此开发小组开发原型帮助其确定需求）</strong> ：</p>
<ul>
<li>这描述的是一种​<strong>应对措施或解决方案</strong>，而不是风险本身。</li>
<li>风险指的是​<strong>可能发生的不利事件</strong>​（具有不确定性和损失性）。选项 B 中“开发原型帮助确定需求”是开发小组采取的​<strong>主动行动</strong>，目的是消除或降低风险，所以它不是一个风险。</li>
</ul>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、由另一个小组开发的子系统可能推迟交付，导致系统不能按时交付客户</strong>​：这是​<strong>项目风险</strong>，可能发生且会造成损失。</li>
<li><strong>C、开发团队可能没有正确理解客户的需求</strong>​：这是​<strong>技术风险/项目风险</strong>，可能导致返工或交付失败。</li>
<li><strong>D、开发团队核心成员可能在系统开发过程中离职</strong>​：这是​<strong>人员风险</strong>，属于项目风险，可能导致进度延误或知识流失。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：B（客户不清楚想要开发什么样的软件，因此开发小组开发原型帮助其确定需求）。</strong></p>
<h3>2.2 题目三</h3>
<blockquote>
<p><strong>题目：</strong>  下列关于风险的叙述中，不正确的是（ ）。</p>
<ul>
<li>A、风险是可能发生的事件</li>
<li>B、如果能预测到风险，则可以避免其发生</li>
<li>C、风险是可能会带来损失的事件</li>
<li>D、对于风险进行干预，以期减少损失</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：B</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 B（如果能预测到风险，则可以避免其发生）</strong> ​：说法不正确。风险具有​<strong>不确定性</strong>​，即使能够预测到风险，也​<strong>不能完全避免其发生</strong>​。预测风险的目的是为了提前制定应对措施，从而​<strong>降低风险发生的概率或减少风险带来的损失</strong>，而不是彻底避免。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、风险是可能发生的事件</strong>：正确，风险具有不确定性。</li>
<li><strong>C、风险是可能会带来损失的事件</strong>：正确，风险具有损失性。</li>
<li><strong>D、对于风险进行干预，以期减少损失</strong>：正确，风险管理的目的是减少损失。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：B（如果能预测到风险，则可以避免其发生）。</strong></p>
<p>‍</p>
]]></content:encoded>
    </item>
    <item>
      <title>McCabe复杂度计算</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/McCabe%E5%A4%8D%E6%9D%82%E5%BA%A6%E8%AE%A1%E7%AE%97.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/McCabe%E5%A4%8D%E6%9D%82%E5%BA%A6%E8%AE%A1%E7%AE%97.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">McCabe复杂度计算</source>
      <description>McCabe复杂度计算 1. 考点精要：McCabe 复杂度（圈复杂度） 核心作用：用于衡量计算机程序的逻辑复杂度。 6c42zC 1.1 核心计算方法 公式法：V(G)=m−n+2 m：有向图中的有向弧数（边数） n：图中的节点数 秒杀技巧​：​最小独立闭环数 + 1（考试中最推荐、最高效的计算方式） 1.2 避坑指南与注意事项 流程图转换：当把程序...</description>
      <pubDate>Sun, 27 Sep 2026 06:41:52 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点精要：McCabe 复杂度（圈复杂度）</h2>
<blockquote>
<p><strong>核心作用</strong>：用于衡量计算机程序的逻辑复杂度。</p>
</blockquote>
<p></p>
<h3>1.1 核心计算方法</h3>
<ul>
<li>
<p><strong>公式法</strong>：<span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>V</mi><mo stretchy="false">(</mo><mi>G</mi><mo stretchy="false">)</mo><mo>=</mo><mi>m</mi><mo>−</mo><mi>n</mi><mo>+</mo><mn>2</mn></mrow><annotation encoding="application/x-tex">V(G) = m - n + 2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.2222em;">V</span><span class="mopen">(</span><span class="mord mathnormal">G</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">m</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">2</span></span></span></span></p>
<ul>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">m</span></span></span></span>：有向图中的有向弧数（边数）</li>
<li><span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span>：图中的节点数</li>
</ul>
</li>
<li>
<p><strong>秒杀技巧</strong>​：​<strong>最小独立闭环数 + 1</strong>（考试中最推荐、最高效的计算方式）</p>
</li>
</ul>
<h3>1.2 避坑指南与注意事项</h3>
<ul>
<li><strong>流程图转换</strong>：当把程序流程图转换为控制流图（节点图）时，若线条在途中<strong>相交</strong>，必须在<strong>相交位置补充一个节点</strong>，否则直接套用公式会导致计算错误。</li>
</ul>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p></p>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：C</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>统计结点数 n</strong>​<em><strong>n</strong></em>​：图中节点编号为 1 到 10，共 n=10<em>n</em>=10 个节点。</p>
</li>
<li>
<p><strong>统计有向弧数 m</strong>​<em><strong>m</strong></em>：</p>
<ul>
<li>1 → 2</li>
<li>2 → 3</li>
<li>3 → 4</li>
<li>4 → 5</li>
<li>5 → 6</li>
<li>6 → 7</li>
<li>7 → 8</li>
<li>4 → 10</li>
<li>5 → 9</li>
<li>9 → 6</li>
<li>8 → 4</li>
<li>共 m=11<em>m</em>=11 条有向弧。</li>
</ul>
</li>
<li>
<p><strong>代入公式计算</strong>​：V(G)=m−n+2=11−10+2=3<em>V</em>(<em>G</em>)=<em>m</em>−<em>n</em>+2=11−10+2=3。</p>
</li>
</ul>
</li>
<li>
<p><strong>技巧验证</strong>：最小独立闭环数 + 1。</p>
<ul>
<li>
<p>图中有 <strong>2 个</strong>独立闭环：</p>
<ol>
<li>4 → 5 → 6 → 7 → 8 → 4</li>
<li>5 → 9 → 6 → 7 → 8 → 4 → 5（与第一个共享部分路径，但独立闭环为 2 个）</li>
</ol>
</li>
<li>
<p>2+1=32+1=3，与公式计算结果一致。</p>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：C（3）。</strong></p>
<h3>2.2 题目二</h3>
<blockquote>
<p><strong>题目：</strong>  若用白盒测试方法测试以下代码，并满足条件覆盖，则至少需要（ ）个测试用例。采用 McCabe 度量法算出该程序的环路复杂度为（ ）。</p>
<div class="language-c line-numbers-mode" data-highlighter="shiki" data-ext="c" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code class="language-c"><span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">int</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF"> find_max</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> (</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">int</span><span style="--shiki-light:#383A42;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic"> i</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF">,</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD"> int</span><span style="--shiki-light:#383A42;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic"> j</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF">,</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD"> int</span><span style="--shiki-light:#383A42;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic"> k</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF">) {</span></span>
<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">    int</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> max;</span></span>
<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">    if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> (i </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">></span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> j) then</span></span>
<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">        if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> (i </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">></span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> k) then max </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">=</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> i;</span></span>
<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">    	else</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> max </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">=</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> k;</span></span>
<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">    else</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD"> if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> (j </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">></span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> k) then max </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">=</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> j;</span></span>
<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">    else</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> max </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD">=</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF"> k;</span></span>
<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>第一组选项：</strong></p>
<ul>
<li>A、3</li>
<li>B、4</li>
<li>C、5</li>
<li>D、6</li>
</ul>
<p><strong>第二组选项：</strong></p>
<ul>
<li>A、1</li>
<li>B、2</li>
<li>C、3</li>
<li>D、4</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<p></p>
<ul>
<li>
<p><strong>正确答案：第一空选 B，第二空选 D。</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>第一空：满足条件覆盖，至少需要（ B ）个测试用例。</strong></p>
<ul>
<li>
<p>题目要求满足​<strong>条件覆盖</strong>，即每个判定中的每个条件的真假取值都至少出现一次。</p>
</li>
<li>
<p>代码中共有 3 个判定条件：</p>
<ol>
<li><strong>判定1</strong>​：​<code>i &gt; j</code></li>
<li><strong>判定2</strong>​：​<code>i &gt; k</code></li>
<li><strong>判定3</strong>​：​<code>j &gt; k</code></li>
</ol>
</li>
<li>
<p>需要让这 3 个条件的真假取值都出现。至少需要 <strong>4 个</strong>测试用例，例如：</p>
<ul>
<li>用例1：​<code>i&gt;j</code>​ 为真，​<code>i&gt;k</code>​ 为真（如 i=3, j=1, k=2）</li>
<li>用例2：​<code>i&gt;j</code>​ 为真，​<code>i&gt;k</code>​ 为假（如 i=2, j=1, k=3）</li>
<li>用例3：​<code>i&gt;j</code>​ 为假，​<code>j&gt;k</code>​ 为真（如 i=1, j=3, k=2）</li>
<li>用例4：​<code>i&gt;j</code>​ 为假，​<code>j&gt;k</code>​ 为假（如 i=1, j=2, k=3）</li>
</ul>
</li>
<li>
<p>因此，至少需要 <strong>4 个</strong>测试用例。</p>
</li>
</ul>
</li>
<li>
<p><strong>第二空：采用 McCabe 度量法算出该程序的环路复杂度为（ D ）个。</strong></p>
<ul>
<li>
<p>根据右侧控制流图：</p>
<ul>
<li>
<p><strong>节点数 n</strong>​<em><strong>n</strong></em>​：图中节点编号为 1 到 10，共 n=10<em>n</em>=10 个节点。</p>
</li>
<li>
<p><strong>有向弧数 m</strong>​<em><strong>m</strong></em>：</p>
<ul>
<li>1 → 2</li>
<li>2 → 3</li>
<li>3 → 4</li>
<li>3 → 5</li>
<li>4 → 6</li>
<li>4 → 7</li>
<li>5 → 8</li>
<li>5 → 9</li>
<li>6 → 10</li>
<li>7 → 10</li>
<li>8 → 10</li>
<li>9 → 10</li>
<li>共 m=12<em>m</em>=12 条有向弧。</li>
</ul>
</li>
<li>
<p>代入公式：V(G)=m−n+2=12−10+2=4<em>V</em>(<em>G</em>)=<em>m</em>−<em>n</em>+2=12−10+2=4。</p>
</li>
</ul>
</li>
<li>
<p>技巧验证：“最小独立闭环数 + 1”。</p>
<ul>
<li>
<p>图中有 <strong>3 个</strong>独立闭环：</p>
<ol>
<li>3 → 4 → 7 → 10 → ...（经判定链回环）</li>
<li>3 → 5 → 8 → 10 → ...</li>
<li>3 → 4 → 6 → 10 → ...（与判定链构成闭环）</li>
</ol>
</li>
<li>
<p>3+1=43+1=4，与公式计算结果一致。</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：第一空 B（4），第二空 D（4）。</strong></p>
<p>‍</p>
]]></content:encoded>
    </item>
    <item>
      <title>系统开发基础</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/</guid>
      <source url="https://huanglian.top/blog/rss.xml">系统开发基础</source>
      <description>系统开发基础 1. 知识点分布 iJoZyW 2. 历年考试分布 CepiNc ZwJHkK 学习目录</description>
      <pubDate>Thu, 24 Sep 2026 07:43:24 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 知识点分布</h2>
<p></p>
<h2>2. 历年考试分布</h2>
<p></p>
<p></p>
<h2>学习目录</h2>
<ul>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E6%A6%82%E8%BF%B0.html" target="_blank">软件工程概述</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E5%BC%80%E5%8F%91%E6%A8%A1%E5%9E%8B.html" target="_blank">开发模型</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E5%BC%80%E5%8F%91%E6%96%B9%E6%B3%95.html" target="_blank">开发方法</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90.html" target="_blank">需求分析</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1.html" target="_blank">系统设计</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%A8%A1%E5%9D%97%E8%AE%BE%E8%AE%A1.html" target="_blank">模块设计</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E4%BA%BA%E6%9C%BA%E7%95%8C%E9%9D%A2%E8%AE%BE%E8%AE%A1.html" target="_blank">人机界面设计</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E6%96%87%E6%A1%A3.html" target="_blank">软件文档</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F%E4%BF%9D%E8%AF%81.html" target="_blank">软件质量保证</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E6%B5%8B%E8%AF%95%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%8E%9F%E5%88%99.html" target="_blank">系统测试的基本原则</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E9%98%B6%E6%AE%B5%E5%88%92%E5%88%86.html" target="_blank">测试的阶段划分</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E5%88%86%E7%B1%BB.html" target="_blank">测试的分类</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/McCabe%E5%A4%8D%E6%9D%82%E5%BA%A6%E8%AE%A1%E7%AE%97.html" target="_blank">McCabe复杂度计算</a></li>
<li><a href="/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E7%BB%B4%E6%8A%A4.html" target="_blank">系统维护</a></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>人机界面设计</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E4%BA%BA%E6%9C%BA%E7%95%8C%E9%9D%A2%E8%AE%BE%E8%AE%A1.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E4%BA%BA%E6%9C%BA%E7%95%8C%E9%9D%A2%E8%AE%BE%E8%AE%A1.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">人机界面设计</source>
      <description>人机界面设计 考点：人机界面设计的黄金三准则 置于用户控制之下 减少用户的记忆负担 保持界面的一致性 核心总结： 人机界面设计的黄金三准则：​用户控制、减轻记忆、界面一致。 经典例题 题目一 题目： Theo Mandel 在其关于界面设计所提出的三条“黄金准则”中，不包括（ ）。 A、用户操纵控制 B、界面美观整洁 C、减轻用户的记忆负担 D、保持界...</description>
      <pubDate>Sun, 27 Sep 2026 05:22:10 GMT</pubDate>
      <content:encoded><![CDATA[
<h2><strong>考点：人机界面设计的黄金三准则</strong></h2>
<ul>
<li>
<p>置于用户控制之下</p>
</li>
<li>
<p>减少用户的记忆负担</p>
</li>
<li>
<p>保持界面的一致性</p>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li>人机界面设计的黄金三准则：​<strong>用户控制、减轻记忆、界面一致</strong>。</li>
</ul>
</li>
</ul>
<h2>经典例题</h2>
<h3>题目一</h3>
<blockquote>
<p><strong>题目：</strong>  Theo Mandel 在其关于界面设计所提出的三条“黄金准则”中，不包括（ ）。</p>
<ul>
<li>A、用户操纵控制</li>
<li>B、界面美观整洁</li>
<li>C、减轻用户的记忆负担</li>
<li>D、保持界面一致</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：B</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 B（界面美观整洁）</strong> ​：Theo Mandel 提出的界面设计三条“黄金准则”是：​<strong>置于用户控制之下、减少用户的记忆负担、保持界面的一致性</strong>。“界面美观整洁”不属于这三条黄金准则。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、用户操纵控制</strong>：对应“置于用户控制之下”，属于黄金准则之一。</li>
<li><strong>C、减轻用户的记忆负担</strong>：对应“减少用户的记忆负担”，属于黄金准则之一。</li>
<li><strong>D、保持界面一致</strong>：对应“保持界面的一致性”，属于黄金准则之一。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：B（界面美观整洁）。</strong></p>
]]></content:encoded>
    </item>
    <item>
      <title>开发方法</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E5%BC%80%E5%8F%91%E6%96%B9%E6%B3%95.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E5%BC%80%E5%8F%91%E6%96%B9%E6%B3%95.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">开发方法</source>
      <description>开发方法 1. 考点：常见开发方法 1.1 结构化方法（瀑布模型） 核心思想：用户至上，自顶向下，逐步分解（求精）。 核心特点： 严格区分工作阶段：每阶段有明确的任务和结果。 强调系统开发过程的整体性和全局性。 系统开发过程工程化，文档资料标准化。 适用场景：需求明确、稳定的项目。 记忆总结​：结构化 = 瀑布模型，重文档、重阶段、自顶向下。 1.2 ...</description>
      <pubDate>Sat, 26 Sep 2026 09:50:01 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：常见开发方法</strong></h2>
<h3>1.1 <strong>结构化方法（瀑布模型）</strong></h3>
<ul>
<li>
<p><strong>核心思想</strong>：用户至上，自顶向下，逐步分解（求精）。</p>
</li>
<li>
<p><strong>核心特点</strong>：</p>
<ul>
<li>严格区分工作阶段：每阶段有明确的任务和结果。</li>
<li>强调系统开发过程的整体性和全局性。</li>
<li>系统开发过程工程化，文档资料标准化。</li>
</ul>
</li>
<li>
<p><strong>适用场景</strong>：需求明确、稳定的项目。</p>
</li>
<li>
<p><strong>记忆总结</strong>​：结构化 = 瀑布模型，重文档、重阶段、自顶向下。</p>
</li>
</ul>
<h3>1.2 <strong>原型法</strong></h3>
<ul>
<li><strong>核心特点</strong>：更好的复用性。</li>
<li><strong>适用场景</strong>：用户需求不清、需求经常变化，且系统规模不是很大也不太复杂的情况。</li>
<li><strong>记忆总结</strong>​：原型法 = 快速构建、反复修改、需求不清时使用。</li>
</ul>
<h3>1.3 <strong>面向对象方法</strong></h3>
<ul>
<li><strong>核心思想</strong>：关键在于建立一个全面、合理、统一的模型。</li>
<li><strong>阶段划分</strong>：分析、设计、实现三个阶段，界限不明确。</li>
<li><strong>记忆总结</strong>​：面向对象 = 对象驱动、迭代无间隙、分析/设计/实现界限模糊。</li>
</ul>
<h3>1.4 <strong>对比总结</strong></h3>
<p>|开发方法|核心特点|关键词|
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>开发模型</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E5%BC%80%E5%8F%91%E6%A8%A1%E5%9E%8B.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E5%BC%80%E5%8F%91%E6%A8%A1%E5%9E%8B.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">开发模型</source>
      <description>开发模型 1. 考点：瀑布模型 nDb858 阶段划分： 定义阶段：包含软件计划、需求分析。 开发阶段：包含软件设计、程序编码、软件测试。 维护阶段：包含运行维护。 核心特点​：以文档作为驱动，适合于软件需求很明确的软件项目。 特点总结： 需求确定。 IT类。 项目不大。 2. 考点：V模型 lX8YpQ 左侧开发阶段： 需求分析 概要设计 详细设计 ...</description>
      <pubDate>Sat, 26 Sep 2026 08:29:56 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：瀑布模型</h2>
<p></p>
<ul>
<li>
<p><strong>阶段划分</strong>：</p>
<ul>
<li><strong>定义阶段</strong>：包含软件计划、需求分析。</li>
<li><strong>开发阶段</strong>：包含软件设计、程序编码、软件测试。</li>
<li><strong>维护阶段</strong>：包含运行维护。</li>
</ul>
</li>
<li>
<p><strong>核心特点</strong>​：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">以文档作为驱动</span>，适合于软件<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">需求很明确</span>的软件项目。</p>
</li>
<li>
<p><strong>特点总结</strong>：</p>
<ol>
<li>需求确定。</li>
<li>IT类。</li>
<li>项目不大。</li>
</ol>
</li>
</ul>
<h2>2. 考点：V模型</h2>
<p></p>
<ul>
<li>
<p><strong>左侧开发阶段</strong>：</p>
<ul>
<li>需求分析</li>
<li>概要设计</li>
<li>详细设计</li>
<li>编码</li>
</ul>
</li>
<li>
<p><strong>右侧测试阶段</strong>：</p>
<ul>
<li>单元测试</li>
<li>集成测试</li>
<li>系统测试</li>
<li>验收测试</li>
</ul>
</li>
<li>
<p><strong>核心特点</strong>​：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">测试贯穿始终</span>，确保需求实现，是瀑布模型的升级。</p>
</li>
<li>
<p><strong>重点</strong>：明确每种测试的测试目标来源。</p>
</li>
</ul>
<h2>3. 考点：演化模型与原型模型</h2>
<p></p>
<ul>
<li>
<p><strong>演化模型</strong>​：演化模型是迭代的过程模型，使得软件开发人员能够逐步开发出更完整的软件版本，特别<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">适用于对软件需求缺乏准确认识的情况</span>。</p>
</li>
<li>
<p><strong>原型方法</strong>​：比较适合于<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">用户需求不清、需求经常变化</span>的情况，当系统规模不是很大也不太复杂时，采用该方法比较好。</p>
</li>
<li>
<p><strong>核心循环步骤</strong>：交流 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>→</mo></mrow><annotation encoding="application/x-tex">\rightarrow</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.3669em;"></span><span class="mrel">→</span></span></span></span> 快速计划 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>→</mo></mrow><annotation encoding="application/x-tex">\rightarrow</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.3669em;"></span><span class="mrel">→</span></span></span></span> 快速设计方式建模 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>→</mo></mrow><annotation encoding="application/x-tex">\rightarrow</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.3669em;"></span><span class="mrel">→</span></span></span></span> 构建原型 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>→</mo></mrow><annotation encoding="application/x-tex">\rightarrow</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.3669em;"></span><span class="mrel">→</span></span></span></span> 部署交付和反馈。</p>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>演化总结</strong>：甲方项目很大，先做其中一部分。</li>
<li><strong>原型总结</strong>：甲方需求完全不清，从 0 开始做，初始版本往往摒弃。</li>
</ul>
</li>
</ul>
<h2>4. 考点：螺旋模型</h2>
<p></p>
<ul>
<li>
<p><strong>核心概念</strong>​：螺旋模型是<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">瀑布模型和演化模型</span>结合，加入了<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">风险分析</span>。</p>
</li>
<li>
<p><strong>适用场景</strong>​：特别适用于<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">庞大、复杂</span>并且具有<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">高风险</span>的系统。</p>
</li>
<li>
<p><strong>四个主要象限与活动</strong>：</p>
<ul>
<li><strong>制定计划</strong>：决定目标、方案和限制。</li>
<li><strong>风险分析</strong>：评价方案、识别风险、消除风险。</li>
<li><strong>实施工程</strong>：开发、验证下一产品（包括需求确认、软件产品设计、详细设计、编码、单元测试、组装与测试、验收测试与验证等）。</li>
<li><strong>客户评估</strong>：提交线、评审、客户评估。</li>
</ul>
</li>
<li>
<p><strong>核心特点说明</strong>：螺旋模型沿着螺线旋转，每个循环（代表一个阶段或版本）都从制定计划开始，进行风险分析，然后实施工程开发，最后通过客户评估进入下一个循环，这使得开发团队能在早期阶段及时识别并控制项目风险。</p>
</li>
</ul>
<h2>5. 考点：增量模型</h2>
<p></p>
<ul>
<li><strong>核心概念</strong>：将需求分段为一系列增量产品，每一增量可以分别开发，其中第1个增量往往是核心产品。</li>
<li><strong>开发步骤</strong>：每一个增量均经历“分析 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>→</mo></mrow><annotation encoding="application/x-tex">\rightarrow</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.3669em;"></span><span class="mrel">→</span></span></span></span> 设计 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>→</mo></mrow><annotation encoding="application/x-tex">\rightarrow</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.3669em;"></span><span class="mrel">→</span></span></span></span> 编码 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>→</mo></mrow><annotation encoding="application/x-tex">\rightarrow</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.3669em;"></span><span class="mrel">→</span></span></span></span> 测试”的过程，随后将该增量交付客户（如增量1、增量2、增量3至增量n）。</li>
<li><strong>核心总结</strong>​：项目规模很大时，采用<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">先做核心模块</span>的策略；核心模块能够得到充分测试，因此整体运行比较稳定。</li>
<li><strong>对比注意</strong>：演化模型同样是先做一部分，但它没有像增量模型那样强制强调“优先开发核心模块”。</li>
<li><strong>缺点：</strong> 模块大小划分是比较困难的。</li>
</ul>
<h2>6. 考点：喷泉模型</h2>
<p></p>
<ul>
<li>
<p><strong>核心定义</strong>​：以用户需求为动力，以<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">对象</span>作为驱动的模型，适合于<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">面向对象</span>的开发方法。</p>
</li>
<li>
<p><strong>过程层次（从下到上）</strong> ：</p>
<ul>
<li>分析</li>
<li>设计</li>
<li>实现</li>
<li>测试</li>
<li>维护</li>
<li>演化</li>
</ul>
</li>
<li>
<p><strong>模型特点</strong>​：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">迭代无间隙、并行、效率高</span>。</p>
</li>
<li>
<p><strong>记忆口诀</strong>：一口盐汽水喷到对象脸上。</p>
</li>
</ul>
<h2>7. 考点：RUP模型 (Rational Unified Process 统一过程)</h2>
<p></p>
<ul>
<li>
<p><strong>核心特征（中心红圈）</strong> ：</p>
<ul>
<li><strong>用例驱动</strong></li>
<li><strong>以架构为中心</strong></li>
<li><strong>迭代和增量</strong></li>
</ul>
</li>
<li>
<p><strong>四大核心阶段</strong>：</p>
<ul>
<li>
<p><strong>1、初始（Inception）</strong> ：</p>
<ul>
<li>确定项目范围和边界</li>
<li>识别系统的关键用例</li>
<li>展示系统的候选架构</li>
<li>估计项目费用和时间</li>
<li>评估项目风险</li>
</ul>
</li>
<li>
<p><strong>2、细化（Elaboration）</strong> ：</p>
<ul>
<li>分析系统问题领域</li>
<li>建立软件架构基础</li>
<li>淘汰最高风险元素</li>
</ul>
</li>
<li>
<p><strong>3、构建（Construction）</strong> ：</p>
<ul>
<li>开发剩余的构件</li>
<li>构件组装与测试</li>
</ul>
</li>
<li>
<p><strong>4、交付（Transition）</strong> ：</p>
<ul>
<li>进行 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>β</mi></mrow><annotation encoding="application/x-tex">\beta</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal" style="margin-right:0.0528em;">β</span></span></span></span> 测试</li>
<li>制作发布版本</li>
<li>用户文档定稿</li>
<li>确认新系统</li>
<li>培训、调整产品</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>8. 考点：敏捷方法</h2>
<p></p>
<h3>8.1 基本概念</h3>
<ul>
<li>
<p><strong>总体目标</strong>：通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。</p>
</li>
<li>
<p><strong>适用场景</strong>​：秉持“小步快跑”的思想，<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">适合小项目小团队，用少的人，做大的事，追求利润最大化</span>。</p>
</li>
<li>
<p><strong>核心总结</strong>：体现在“快”大于“好”。</p>
</li>
<li>
<p><strong>基本原则</strong>：</p>
<ul>
<li>短平快的会议</li>
<li>小型版本发布</li>
<li>较少的文档</li>
<li>合作为重</li>
<li>客户直接参与</li>
<li>自动化测试</li>
<li>适应性计划调整</li>
<li>对子编程</li>
<li>测试驱动开发</li>
<li>持续集成</li>
<li>重构</li>
</ul>
</li>
</ul>
<h3>8.2 <strong>敏捷方法常见方法与特点：</strong></h3>
<p>|敏捷方法|特点|
| :</p>
]]></content:encoded>
    </item>
    <item>
      <title>模块设计</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%A8%A1%E5%9D%97%E8%AE%BE%E8%AE%A1.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%A8%A1%E5%9D%97%E8%AE%BE%E8%AE%A1.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">模块设计</source>
      <description>模块设计 1. 考点：模块设计的基本要求 保持模块的大小适中 深度、宽度适中 扇入、扇出系数要合理 模块的作用域应该在模块之内 功能应该是可预测的 高内聚、低耦合 核心总结： 模块设计的目标是实现​高内聚、低耦合。 设计时需注意：模块大小适中、深度宽度适中、扇入扇出合理、作用域在模块之内、功能可预测。 2. 考点：模块设计基本原则（高内聚，低耦合） 2...</description>
      <pubDate>Sun, 27 Sep 2026 04:14:43 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：模块设计的基本要求</strong></h2>
<ul>
<li>
<p>保持模块的大小适中</p>
</li>
<li>
<p>深度、宽度适中</p>
</li>
<li>
<p>扇入、扇出系数要合理</p>
</li>
<li>
<p>模块的作用域应该在模块之内</p>
</li>
<li>
<p>功能应该是可预测的</p>
</li>
<li>
<p><strong>高内聚、低耦合</strong></p>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li>模块设计的目标是实现​<strong>高内聚、低耦合</strong>。</li>
<li>设计时需注意：模块大小适中、深度宽度适中、扇入扇出合理、作用域在模块之内、功能可预测。</li>
</ul>
</li>
</ul>
<h2>2. 考点：模块设计基本原则（高内聚，低耦合）</h2>
<h3>2.1 <strong>耦合类型与描述</strong></h3>
<p></p>
<p>|内聚类型|描述|
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>测试的分类</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E5%88%86%E7%B1%BB.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E5%88%86%E7%B1%BB.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">测试的分类</source>
      <description>测试的分类 1. 考点：测试的基本概念及分类 动态测试（机器运行） ： 黑盒测试法（测试功能） 白盒测试法（测试结构） 灰盒测试法（黑白结合） 静态测试（纯人工） ： 桌前检查（现场检查） 代码审查（SVN服务器） 代码走查（边走代码边检查） 核心总结： 动态测试 = 机器运行，包含黑盒、白盒、灰盒测试法。 静态测试 = 纯人工，包含​桌前检查、代码审...</description>
      <pubDate>Sun, 27 Sep 2026 05:31:37 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：测试的基本概念及分类</strong></h2>
<ul>
<li>
<p><strong>动态测试（机器运行）</strong> ：</p>
<ol>
<li>黑盒测试法（测试功能）</li>
<li>白盒测试法（测试结构）</li>
<li>灰盒测试法（黑白结合）</li>
</ol>
</li>
<li>
<p><strong>静态测试（纯人工）</strong> ：</p>
<ol>
<li>桌前检查（现场检查）</li>
<li>代码审查（SVN服务器）</li>
<li>代码走查（边走代码边检查）</li>
</ol>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ol>
<li><strong>动态测试</strong> = 机器运行，包含<strong>黑盒、白盒、灰盒</strong>测试法。</li>
<li><strong>静态测试</strong> = 纯人工，包含​<strong>桌前检查、代码审查、代码走查</strong>。</li>
<li><strong>黑盒测试</strong>测功能，<strong>白盒测试</strong>测结构，<strong>灰盒测试</strong>是黑白结合。</li>
</ol>
</li>
</ul>
<h3>1.1 <strong>黑盒测试法与白盒测试法</strong></h3>
<p></p>
<ul>
<li>
<p><strong>黑盒测试法</strong>：</p>
<ul>
<li>等价类划分</li>
<li>边界值分析</li>
<li>错误推测</li>
<li>因果图</li>
</ul>
</li>
<li>
<p><strong>白盒测试法</strong>：</p>
<ul>
<li>
<p>基本路径测试</p>
</li>
<li>
<p>循环覆盖测试</p>
</li>
<li>
<p>逻辑覆盖测试</p>
<ul>
<li>语句覆盖</li>
<li>判定覆盖</li>
<li>条件覆盖</li>
<li>条件判定覆盖</li>
<li>条件组合覆盖</li>
<li>路径覆盖</li>
</ul>
</li>
</ul>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>黑盒测试法</strong>：等价类划分、边界值分析、错误推测、因果图。</li>
<li><strong>白盒测试法</strong>：基本路径测试、循环覆盖测试、逻辑覆盖测试。</li>
<li><strong>逻辑覆盖</strong>由弱到强：语句覆盖 &lt; 判定覆盖 &lt; 条件覆盖 &lt; 条件判定覆盖 &lt; 条件组合覆盖 &lt; 路径覆盖。</li>
</ul>
</li>
</ul>
<h2>2. <strong>考点：黑盒测试</strong></h2>
<p>|方法|说明|
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>测试的阶段划分</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E9%98%B6%E6%AE%B5%E5%88%92%E5%88%86.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E6%B5%8B%E8%AF%95%E7%9A%84%E9%98%B6%E6%AE%B5%E5%88%92%E5%88%86.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">测试的阶段划分</source>
      <description>测试的阶段划分 1. 考点：测试阶段划分 BPqhQx 单元测试：模块测试、模块功能、性能、接口等。 集成测试：模块间的接口。【自顶向下-桩模块，自底向上-驱动模块，三明治】 系统测试：真实环境下，验证完整的软件配置项能否和系统正确连接。 确认测试：验证软件与需求的一致性。内部确认测试、Alpha测试、Beta测试、验收测试。 回归测试：测试软件变更之...</description>
      <pubDate>Sun, 27 Sep 2026 06:35:01 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：测试阶段划分</strong></h2>
<p></p>
<ul>
<li><strong>单元测试</strong>：模块测试、模块功能、性能、接口等。</li>
<li><strong>集成测试</strong>：模块间的接口。【自顶向下-桩模块，自底向上-驱动模块，三明治】</li>
<li><strong>系统测试</strong>：真实环境下，验证完整的软件配置项能否和系统正确连接。</li>
<li><strong>确认测试</strong>：验证软件与需求的一致性。内部确认测试、Alpha测试、Beta测试、验收测试。</li>
<li><strong>回归测试</strong>：测试软件变更之后，变更部分的正确性、对变更需求的符合性。</li>
</ul>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p></p>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：第一空选 C，第二空选 D。</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>第一空：此测试采用了（ C ）测试策略。</strong></p>
<ul>
<li>
<p>观察图（b）的测试顺序：</p>
<ul>
<li>先并行测试 ​<strong>A</strong>​（顶层）和 ​<strong>E、F、G</strong>（底层）；</li>
<li>然后测试 ​<strong>B、E、F</strong>；</li>
<li>再测试 ​<strong>D、G</strong>；</li>
<li>最后测试 ​<strong>A、B、C、D、E、F、G</strong>。</li>
</ul>
</li>
<li>
<p>测试同时从<strong>顶层</strong>和<strong>底层</strong>两个方向推进，属于<strong>自顶向下和自底向上结合</strong>的测试策略，即<strong>三明治</strong>策略。</p>
</li>
</ul>
</li>
<li>
<p><strong>第二空：该测试策略的优点不包括（ D ）。</strong></p>
<ul>
<li>
<p><strong>三明治</strong>策略结合了自顶向下和自底向上的特点，其优点包括：</p>
<ul>
<li>较早地验证了主要的控制和判断点（A正确）；</li>
<li>较早地验证了底层模块（B正确）；</li>
<li>测试的并行程度较高（C正确）。</li>
</ul>
</li>
<li>
<p><strong>D 不正确</strong>​：三明治策略既需要​<strong>桩模块</strong>​（自顶向下部分），又需要​<strong>驱动模块</strong>​（自底向上部分），因此​<strong>驱动模块和桩模块的编写工作量都比较大</strong>，而不是“较少的驱动模块和桩模块的编写工作量”。</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：第一空 C（三明治），第二空 D（较少的驱动模块和桩模块的编写工作量）。</strong></p>
<p>‍</p>
]]></content:encoded>
    </item>
    <item>
      <title>系统测试的基本原则</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E6%B5%8B%E8%AF%95%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%8E%9F%E5%88%99.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E6%B5%8B%E8%AF%95%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%8E%9F%E5%88%99.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">系统测试的基本原则</source>
      <description>系统测试的基本原则 1. 考点：测试的基本概念及分类 尽早、不断地进行测试 程序员避免测试自己设计的程序 既要选择有效、合理的数据，也要选择无效、不合理的数据 修改后应进行回归测试 尚未发现的错误数量与该程序已发现错误数成正比 2. 经典例题 2.1 题目一 题目： 以下关于软件测试的叙述中，不正确的是（ ）。 A、在设计测试用例时应考虑输入数据和预期...</description>
      <pubDate>Sun, 27 Sep 2026 05:24:26 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：测试的基本概念及分类</strong></h2>
<ol>
<li>尽早、不断地进行测试</li>
<li>程序员避免测试自己设计的程序</li>
<li>既要选择有效、合理的数据，也要选择无效、不合理的数据</li>
<li>修改后应进行回归测试</li>
<li>尚未发现的错误数量与该程序已发现错误数成正比</li>
</ol>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p><strong>题目：</strong>  以下关于软件测试的叙述中，不正确的是（ ）。</p>
<ul>
<li>A、在设计测试用例时应考虑输入数据和预期输出结果</li>
<li>B、软件测试的目的是证明软件的正确性</li>
<li>C、在设计测试用例时，应该包括合理的输入条件</li>
<li>D、在设计测试用例时，应该包括不合理的输入条件</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：B</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 B（软件测试的目的是证明软件的正确性）</strong> ​：说法不正确。软件测试的目的是​<strong>发现软件中的错误</strong>，而不是证明软件的正确性。测试只能证明软件存在错误，不能证明软件没有错误。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、在设计测试用例时应考虑输入数据和预期输出结果</strong>：正确。测试用例应包括输入数据和预期的输出结果。</li>
<li><strong>C、在设计测试用例时，应该包括合理的输入条件</strong>：正确。测试用例应包含合理的输入条件。</li>
<li><strong>D、在设计测试用例时，应该包括不合理的输入条件</strong>：正确。测试用例也应包含不合理的输入条件，以检验系统的容错能力。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：B（软件测试的目的是证明软件的正确性）。</strong></p>
<h3>2.2 题目二</h3>
<blockquote>
<p><strong>题目：</strong>  招聘系统要求求职的人年龄在20岁到60岁之间（含），学历为本科、硕士或者博士，专业为计算机科学与技术、通信工程或者电子工程。其中（ ）不是好的测试用例。</p>
<ul>
<li>A、20，本科，电子工程</li>
<li>B、18，本科，通信工程</li>
<li>C、18，大专，电子工程</li>
<li>D、25，硕士，生物学</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：C</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 C（18，大专，电子工程）</strong> ​：这个测试用例有​<strong>两个部分不合规</strong>​——年龄 18 岁不符合（应≥20 岁），学历大专不符合（应为本/硕/博）。一个测试用例中同时包含多个无效条件，一旦测试失败，​<strong>不容易定位到底是年龄规则出错还是学历规则出错</strong>，不利于缺陷定位，因此它不是好的测试用例。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、20，本科，电子工程</strong>：年龄、学历、专业全部符合要求，属于有效输入，能验证正常流程，是合理的测试用例。</li>
<li><strong>B、18，本科，通信工程</strong>​：只有年龄 18 岁​<strong>不符合</strong>，学历和专业均符合，只包含一个无效条件，便于定位缺陷，是好的测试用例。</li>
<li><strong>D、25，硕士，生物学</strong>​：只有专业生物学​<strong>不符合</strong>，年龄和学历均符合，同样只包含一个无效条件，便于定位缺陷，是好的测试用例。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：C（18，大专，电子工程）。</strong></p>
]]></content:encoded>
    </item>
    <item>
      <title>系统维护</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E7%BB%B4%E6%8A%A4.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E7%BB%B4%E6%8A%A4.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">系统维护</source>
      <description>系统维护 1. 考点：系统维护的分类 1.1 可维护性的性能指标 可理解性 可测试性 可修改性 1.2 软件维护类型 改正性维护： 指为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的错误，应当进行的诊断和改正错误的过程。 关键词：​bug。 预防性维护： 系统维护工作不应总是被动地等待用户提出要求后才进行，应进行主动的预防性维护，通过预防性维...</description>
      <pubDate>Sun, 27 Sep 2026 07:03:36 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：系统维护的分类</strong></h2>
<h3>1.1 <strong>可维护性的性能指标</strong></h3>
<ul>
<li>可理解性</li>
<li>可测试性</li>
<li>可修改性</li>
</ul>
<h3>1.2 <strong>软件维护类型</strong></h3>
<ul>
<li>
<p><strong>改正性维护</strong>：</p>
<ul>
<li>指为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的错误，应当进行的诊断和改正错误的过程。</li>
<li><strong>关键词：</strong>​<strong>bug</strong>。</li>
</ul>
</li>
<li>
<p><strong>预防性维护</strong>：</p>
<ul>
<li>系统维护工作不应总是被动地等待用户提出要求后才进行，应进行主动的预防性维护，通过预防性维护为未来的修改与调整奠定更好的基础。</li>
<li><strong>关键词：</strong>​<strong>程序员</strong>。</li>
</ul>
</li>
<li>
<p><strong>完善性维护</strong>：</p>
<ul>
<li>扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。</li>
<li><strong>关键词：</strong>​<strong>用户</strong>。</li>
</ul>
</li>
<li>
<p><strong>适应性维护</strong>：</p>
<ul>
<li>指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。</li>
<li><strong>关键词：</strong>​<strong>除开用户的第三方</strong> <strong>。</strong></li>
</ul>
</li>
</ul>
<h3>1.3 <strong>核心总结</strong>：</h3>
<ul>
<li>
<p>可维护性的性能指标：<strong>可理解性、可测试性、可修改性</strong>。</p>
</li>
<li>
<p>软件维护类型：</p>
<ul>
<li><strong>改正性维护</strong> → 修 bug。</li>
<li><strong>预防性维护</strong> → 程序员主动预防。</li>
<li><strong>完善性维护</strong> → 用户提出扩充功能/改善性能。</li>
<li><strong>适应性维护</strong> → 外部环境（第三方）变化导致。</li>
</ul>
</li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>系统设计</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">系统设计</source>
      <description>系统设计 1. 考点：软件设计的任务与活动 1.1 基本概念 阶段划分： 概要设计 详细设计 核心原则与方法： 抽象化 自顶而下、逐步求精 信息隐蔽 模块独立（高内聚、低耦合） 核心总结： 软件设计分为概要设计和详细设计两个阶段。 设计过程中遵循：​抽象化、自顶而下逐步求精、信息隐蔽。 最终目标是实现模块独立，即高内聚、低耦合。 1.2 概要设计 设计...</description>
      <pubDate>Sun, 27 Sep 2026 03:55:19 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：软件设计的任务与活动</strong></h2>
<h3>1.1 基本概念</h3>
<ul>
<li>
<p><strong>阶段划分</strong>：</p>
<ul>
<li>概要设计</li>
<li>详细设计</li>
</ul>
</li>
<li>
<p><strong>核心原则与方法</strong>：</p>
<ul>
<li>抽象化</li>
<li>自顶而下、逐步求精</li>
<li>信息隐蔽</li>
<li><strong>模块独立</strong>（高内聚、低耦合）</li>
</ul>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li>软件设计分为<strong>概要设计</strong>和<strong>详细设计</strong>两个阶段。</li>
<li>设计过程中遵循：​<strong>抽象化、自顶而下逐步求精、信息隐蔽</strong>。</li>
<li>最终目标是实现<strong>模块独立</strong><span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">，即</span><strong>高内聚、低耦合</strong>。</li>
</ul>
</li>
</ul>
<h3>1.2 概要设计</h3>
<ul>
<li>
<p><strong>设计软件系统总体结构</strong>：</p>
<ul>
<li>采用某种设计方法，将一个复杂的系统按功能划分成模块；</li>
<li>确定每个模块的功能；</li>
<li><strong>确定模块之间的调用关系</strong><span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">；</span></li>
<li><strong>确定模块之间的接口</strong>，即模块之间传递的信息；</li>
<li>评价模块结构的质量。</li>
</ul>
</li>
<li>
<p><strong>数据结构设计</strong>：</p>
<ul>
<li>此处宜使用​<strong>抽象的数据模型</strong>，详细阶段规定具体实现细节。</li>
</ul>
</li>
<li>
<p><strong>数据库设计</strong>：</p>
<ul>
<li><strong>概念设计、逻辑设计</strong> <strong>、物理设计</strong>（如数据项存储要求、存取方法、索引的建立等）。</li>
</ul>
</li>
<li>
<p><strong>编写概要设计文档</strong>：</p>
<ul>
<li>主要有概要设计说明书、数据库设计说明书、用户手册以及修订测试计划。</li>
</ul>
</li>
<li>
<p><strong>评审</strong>。</p>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li>概要设计的核心是：​<strong>划分模块、确定功能、确定调用关系、确定接口、评价质量</strong>。</li>
<li>数据库设计包含：​<strong>概念设计、逻辑设计、物理设计</strong>。</li>
<li>最终产出：​<strong>概要设计说明书、数据库设计说明书、用户手册、修订测试计划</strong>，并经过评审。</li>
</ul>
</li>
</ul>
<h3>1.3 详细设计</h3>
<ul>
<li>
<p><strong>算法设计</strong>：</p>
<ul>
<li>对每个模块进行详细的<strong>算法设计</strong>，用某种图形、表格和语言等工具将每个模块的处理过程的详细算法描述出来。</li>
</ul>
</li>
<li>
<p><strong>模块内数据结构设计</strong>：</p>
<ul>
<li>对<strong>模块内</strong>的数据结构进行设计。</li>
</ul>
</li>
<li>
<p><strong>数据库物理设计</strong>：</p>
<ul>
<li>对数据库设计进行​<strong>物理设计</strong>，即确定数据库的物理结构。</li>
</ul>
</li>
<li>
<p><strong>其他设计</strong>：</p>
<ul>
<li>代码设计、输入/输出格式设计、用户界面设计等。</li>
</ul>
</li>
<li>
<p><strong>编写详细设计说明书</strong>。</p>
</li>
<li>
<p><strong>评审</strong>：</p>
<ul>
<li>对处理过程的算法和数据库的物理结构都要评审。</li>
</ul>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li>详细设计的重点是：​<strong>算法设计、模块内数据结构设计、数据库物理设计</strong>。</li>
<li>最终产出：​<strong>详细设计说明书</strong>，并进行评审。</li>
</ul>
</li>
</ul>
<h3>1.4 <strong>结构化设计的任务与活动</strong></h3>
<ul>
<li>
<p><strong>概要设计（模块的外部设计）</strong> ：</p>
<ul>
<li><strong>体系结构设计</strong>：定义软件系统各主要部件之间的关系。</li>
<li><strong>数据设计</strong>​：基于 E-R 图确定软件涉及的​<strong>文件系统的结构及数据库的表结构</strong>。</li>
</ul>
</li>
<li>
<p><strong>详细设计</strong>：</p>
<ul>
<li><strong>接口设计（人机界面设计）</strong> ：软件内部，软件和操作系统间以及软件和人之间如何通信。</li>
<li><strong>过程设计</strong>​：系统结构部件转换成软件的过程描述。确定软件​<strong>各个组成部分内的算法及内部数据结构</strong>，并选定某种过程的表达形式来描述各种算法。</li>
</ul>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>概要设计</strong> = 模块的外部设计，包含<strong>体系结构设计</strong>和​<strong>数据设计</strong>。</li>
<li><strong>详细设计</strong> = 包含<strong>接口设计（人机界面设计）</strong> 和​<strong>过程设计</strong>。</li>
<li>概要设计中的<strong>数据设计</strong>基于 E-R 图确定文件系统结构及数据库表结构。</li>
<li>详细设计中的<strong>过程设计</strong>确定各组成部分内的算法及内部数据结构。</li>
</ul>
</li>
</ul>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p><strong>题目：</strong>  概要设计文档的内容不包括（ ）。</p>
<ul>
<li>A、体系结构设计</li>
<li>B、数据库设计</li>
<li>C、模块内算法设计</li>
<li>D、逻辑数据结构设计</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：C</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 C（模块内算法设计）</strong> ​：模块内算法设计属于<strong>详细设计</strong>阶段的内容。详细设计会对每个模块进行详细的​<strong>算法设计</strong>，用图形、表格和语言等工具将每个模块的处理过程详细描述出来。因此，模块内算法设计不属于概要设计文档的内容。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、体系结构设计</strong>：属于概要设计的内容，定义软件系统各主要部件之间的关系。</li>
<li><strong>B、数据库设计</strong>：属于概要设计的内容，包含概念设计、逻辑设计、物理设计。</li>
<li><strong>D、逻辑数据结构设计</strong>：属于概要设计的内容，概要设计阶段会进行数据设计（如基于 ER 图确定文件系统结构和数据库表结构）。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：C（模块内算法设计）。</strong></p>
<h3>2.2 题目二</h3>
<blockquote>
<p><strong>题目：</strong>  软件详细设计阶段的主要任务不包括（ ）。</p>
<ul>
<li>A、数据结构设计</li>
<li>B、算法设计</li>
<li>C、模块之间的接口设计</li>
<li>D、数据库的物理设计</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：C</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 C（模块之间的接口设计）</strong> ​：模块之间的接口设计属于<strong>概要设计</strong>阶段的内容。概要设计的核心任务之一就是确定模块之间的调用关系和接口，即模块之间传递的信息。详细设计则聚焦于模块内部的实现细节，因此模块之间的接口设计不属于详细设计的主要任务。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、数据结构设计</strong>​：属于详细设计的内容，即对<strong>模块内</strong>的数据结构进行设计。</li>
<li><strong>B、算法设计</strong>：属于详细设计的内容，对每个模块进行详细的算法设计，描述其处理过程。</li>
<li><strong>D、数据库的物理设计</strong>：属于详细设计的内容，对数据库设计进行物理设计，即确定数据库的物理结构。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：C（模块之间的接口设计）。</strong></p>
<h3>2.3 题目三</h3>
<blockquote>
<p><strong>题目：</strong>  在采用结构化开发方法进行软件开发时，设计阶段接口设计主要依据需求分析阶段的（ ）。接口设计的任务主要是（ ）。</p>
<p><strong>第一组选项：</strong></p>
<ul>
<li>A、数据流图</li>
<li>B、E-R图</li>
<li>C、状态-迁移图</li>
<li>D、加工规格说明</li>
</ul>
<p><strong>第二组选项：</strong></p>
<ul>
<li>A、定义软件的主要结构元素及其之间的关系</li>
<li>B、确定软件涉及的文件系统的结构及数据库的表结构</li>
<li>C、描述软件与外部环境之间的交互关系，软件内模块之间的调用关系</li>
<li>D、确定软件各个模块内部的算法和数据结构</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：第一空选 A，第二空选 C。</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>第一空：设计阶段接口设计主要依据需求分析阶段的（ A ）</strong> 。</p>
<ul>
<li>结构化开发方法中，需求分析阶段的核心产出是​<strong>数据流图（DFD）</strong> ，它描述了数据的流动和加工变换。设计阶段进行接口设计时，主要依据数据流图来划分模块和确定模块间的数据传递关系。</li>
<li><strong>B 错误</strong>：E-R 图用于数据建模，主要面向数据库设计。</li>
<li><strong>C 错误</strong>：状态-迁移图用于行为建模，主要面向实时/控制类系统。</li>
<li><strong>D 错误</strong>：加工规格说明是对数据流图中加工的详细说明，不是接口设计的主要依据。</li>
</ul>
</li>
<li>
<p><strong>第二空：接口设计的任务主要是（ C ）</strong> 。</p>
<ul>
<li>接口设计即人机界面设计，主要任务是描述​<strong>软件与外部环境之间的交互关系</strong>​，以及​<strong>软件内模块之间的调用关系</strong>。</li>
<li><strong>A 错误</strong>​：定义软件的主要结构元素及其之间的关系，属于<strong>体系结构设计</strong>的任务。</li>
<li><strong>B 错误</strong>​：确定软件涉及的文件系统的结构及数据库的表结构，属于<strong>数据设计</strong>的任务。</li>
<li><strong>D 错误</strong>​：确定软件各个模块内部的算法和数据结构，属于​<strong>过程设计</strong>（详细设计）的任务。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：第一空 A（数据流图），第二空 C（描述软件与外部环境之间的交互关系，软件内模块之间的调用关系）。</strong></p>
<p>‍</p>
]]></content:encoded>
    </item>
    <item>
      <title>软件工程概述</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E6%A6%82%E8%BF%B0.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B%E6%A6%82%E8%BF%B0.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">软件工程概述</source>
      <description>软件工程概述 1. 考点：软件工程的生命周期 NWYWdy 2. 考点：CMM模型 (Capability Maturity Model 能力成熟度模型) 1、初始级：杂乱无章，甚至混乱，几乎没有明确定义的步骤，项目的成功完全依赖个人的努力和英雄式核心人物的作用；成熟度最低。 2、可重复级：建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性，...</description>
      <pubDate>Thu, 24 Sep 2026 08:20:33 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：软件工程的生命周期</h2>
<p></p>
<h2>2. 考点：CMM模型 (Capability Maturity Model <strong>能力成熟度模型</strong>)</h2>
<ul>
<li><strong>1、初始级</strong>：杂乱无章，甚至混乱，几乎没有明确定义的步骤，项目的成功完全依赖个人的努力和英雄式核心人物的作用；成熟度最低。</li>
<li><strong>2、可重复级</strong>：建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性，有必要的过程准则来重复以前在同类项目中的成功。</li>
<li><strong>3、已定义级</strong>：管理和工程两方面的软件过程已经文档化、标准化，并综合成整个软件开发组织的标准过程。</li>
<li><strong>4、已管理级</strong>：制定了软件过程和产品质量的详细度量标准。</li>
<li><strong>5、优化级</strong>：加强了定量分析，通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进；成熟度最高。</li>
</ul>
<h2>3. 考点：CMMI模型</h2>
<h3>3.1 CMMI阶段式模型</h3>
<p></p>
<h3>3.2 CMMI连续式模型：Capability Maturity Model Integration 能力成熟度模型集成</h3>
<p>|<strong>等级CL</strong>|<strong>说明</strong>|
| --|</p>
]]></content:encoded>
    </item>
    <item>
      <title>软件文档</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E6%96%87%E6%A1%A3.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E6%96%87%E6%A1%A3.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">软件文档</source>
      <description>软件文档 1. 考点：软件文档的类型 开发文档（开发人员） ： 可行性研究和项目任务书 需求规格说明 功能规格说明 设计规格说明（包括程序和数据规格说明） 开发计划 软件集成和测试计划 质量保证计划、标准、进度 安全和测试信息 产品文档（用户） ： 培训手册 参考手册和用户指南 软件支持手册 产品手册和信息广告 管理文档（负责人） ： 开发过程的每个阶...</description>
      <pubDate>Sun, 27 Sep 2026 07:20:10 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：软件文档的类型</strong></h2>
<ul>
<li>
<p><strong>开发文档（开发人员）</strong> ：</p>
<ul>
<li>可行性研究和项目任务书</li>
<li>需求规格说明</li>
<li>功能规格说明</li>
<li>设计规格说明（包括程序和数据规格说明）</li>
<li>开发计划</li>
<li>软件集成和测试计划</li>
<li>质量保证计划、标准、进度</li>
<li>安全和测试信息</li>
</ul>
</li>
<li>
<p><strong>产品文档（用户）</strong> ：</p>
<ul>
<li>培训手册</li>
<li>参考手册和用户指南</li>
<li>软件支持手册</li>
<li>产品手册和信息广告</li>
</ul>
</li>
<li>
<p><strong>管理文档（负责人）</strong> ：</p>
<ul>
<li>开发过程的每个阶段的进度和进度变更的记录</li>
<li>软件变更情况的记录</li>
<li>相对于开发的判定记录</li>
<li>职责定义</li>
</ul>
</li>
<li>
<p><strong>核心总结</strong>：</p>
<ul>
<li><strong>开发文档</strong>​：给<strong>开发人员</strong>看，涵盖需求、设计、开发计划、测试计划等。</li>
<li><strong>产品文档</strong>​：给<strong>用户</strong>看，涵盖培训手册、用户指南、产品手册等。</li>
<li><strong>管理文档</strong>：给<strong>负责人</strong>看，涵盖进度记录、变更记录、判定记录、职责定义等。</li>
</ul>
</li>
</ul>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p><strong>题目：</strong>  以下关于文档的叙述中，不正确的是（ ）。</p>
<ul>
<li>A、也是软件产品的一部分，没有文档的软件就不能称之为软件</li>
<li>B、文档只对软件维护活动有用，对开发活动意义不大</li>
<li>C、软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量</li>
<li>D、质量文档对于发挥软件产品的效益有着重要的意义</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：B</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 B（文档只对软件维护活动有用，对开发活动意义不大）</strong> ​：说法不正确。文档在<strong>软件开发活动</strong>中同样具有重要意义。开发文档是开发人员之间沟通、协作和传递信息的依据，贯穿需求分析、设计、编码、测试等各个阶段。因此，文档不仅对维护活动有用，对开发活动也有重要作用。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、也是软件产品的一部分，没有文档的软件就不能称之为软件</strong>：正确，文档是软件产品不可或缺的组成部分。</li>
<li><strong>C、软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量</strong>：正确，文档编制是开发工作的重要组成部分，工作量较大。</li>
<li><strong>D、质量文档对于发挥软件产品的效益有着重要的意义</strong>：正确，高质量的文档有助于软件产品的使用、维护和效益发挥。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：B（文档只对软件维护活动有用，对开发活动意义不大）。</strong></p>
]]></content:encoded>
    </item>
    <item>
      <title>软件质量保证</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F%E4%BF%9D%E8%AF%81.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E8%BD%AF%E4%BB%B6%E8%B4%A8%E9%87%8F%E4%BF%9D%E8%AF%81.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">软件质量保证</source>
      <description>软件质量保证 1. 考点：软件质量保证的性质 Nt8pEO 1.1 记忆口诀 功能：适准互安从 可靠：成熟容复容 易用：理解学操作 效率：时间资源优 维护：分析稳测改 移植：安装应致换 2. 经典例题 2.1 题目一 题目： 在ISO/IEC软件质量模型中，易使用性的子特性不包括（ ）。 A、易理解性 B、易学性 C、易操作性 D、易分析性 【解析】 ...</description>
      <pubDate>Sun, 27 Sep 2026 07:12:37 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 考点：软件质量保证的性质</h2>
<p></p>
<h3>1.1 记忆口诀</h3>
<ul>
<li>功能：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">适准互安从</span></li>
<li>可靠：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">成熟容复容</span></li>
<li>易用：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">理解学操作</span></li>
<li>效率：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">时间资源优</span></li>
<li>维护：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">分析稳测改</span></li>
<li>移植：<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">安装应致换</span></li>
</ul>
<h2>2. 经典例题</h2>
<h3>2.1 题目一</h3>
<blockquote>
<p><strong>题目：</strong>  在ISO/IEC软件质量模型中，易使用性的子特性不包括（ ）。</p>
<ul>
<li>A、易理解性</li>
<li>B、易学性</li>
<li>C、易操作性</li>
<li>D、易分析性</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：D</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 D（易分析性）</strong> ​：易分析性不属于易使用性的子特性，它属于<strong>可维护性</strong>的子特性之一。因此，易使用性的子特性不包括易分析性。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>A、易理解性</strong>：属于易使用性的子特性。</li>
<li><strong>B、易学性</strong>：属于易使用性的子特性。</li>
<li><strong>C、易操作性</strong>：属于易使用性的子特性。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：D（易分析性）。</strong></p>
<h3>2.2 题目二</h3>
<blockquote>
<p><strong>题目：</strong>  在ISO/IEC 9126软件质量模型中，可靠性质量特性是指在规定的一段时间内和规定的条件下，软件维持在其性能水平有关的能力，其质量子特性不包括（ ）。</p>
<ul>
<li>A、安全性</li>
<li>B、成熟性</li>
<li>C、容错性</li>
<li>D、易恢复性</li>
</ul>
</blockquote>
<p><strong>【解析】</strong></p>
<ul>
<li>
<p><strong>正确答案：A</strong></p>
</li>
<li>
<p><strong>解析说明：</strong></p>
<ul>
<li>
<p><strong>关于选项 A（安全性）</strong> ​：在 ISO/IEC 9126 软件质量模型中，<strong>安全性</strong>属于<strong>功能性</strong>的子特性，不属于<strong>可靠性</strong>的子特性。因此，可靠性的质量子特性不包括安全性。</p>
</li>
<li>
<p><strong>其他选项说明</strong>：</p>
<ul>
<li><strong>B、成熟性</strong>：属于可靠性的子特性，指软件避免由软件中错误而导致失效的能力。</li>
<li><strong>C、容错性</strong>：属于可靠性的子特性，指软件在出现故障或违反指定接口的情况下维持规定的性能水平的能力。</li>
<li><strong>D、易恢复性</strong>：属于可靠性的子特性，指软件在失效后重建其性能水平并恢复直接受影响数据的能力。</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>正确答案：A（安全性）。</strong></p>
<p>‍</p>
]]></content:encoded>
    </item>
    <item>
      <title>需求分析</title>
      <link>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90.html</link>
      <guid>https://huanglian.top/blog/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90.html</guid>
      <source url="https://huanglian.top/blog/rss.xml">需求分析</source>
      <description>需求分析 1. 考点：需求分析相关概念 需求分析的任务：找出系统要实现什么功能。 需求的任务和需求的过程： 问题识别，定位当前问题 分析与综合，确定大致解决方案、功能方案 编制需求分析文档，把功能方案记下来 需求分析与评审，确保功能方案的可行性 结构化分析的结果： 一套分层的​数据流图（功能建模） 一本数据词典 一组​小说明​（也称加工逻辑说明） 补充...</description>
      <pubDate>Sat, 26 Sep 2026 10:01:30 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. <strong>考点：需求分析相关概念</strong></h2>
<ul>
<li>
<p><strong>需求分析的任务</strong>：找出系统要实现什么功能。</p>
</li>
<li>
<p><strong>需求的任务和需求的过程</strong>：</p>
<ul>
<li>问题识别，定位当前问题</li>
<li>分析与综合，确定大致解决方案、功能方案</li>
<li>编制需求分析文档，把功能方案记下来</li>
<li>需求分析与评审，确保功能方案的可行性</li>
</ul>
</li>
<li>
<p><strong>结构化分析的结果</strong>：</p>
<ul>
<li>一套分层的​<strong>数据流图</strong>（功能建模）</li>
<li>一本<strong>数据词典</strong></li>
<li>一组​<strong>小说明</strong>​（也称<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">加工逻辑说明</span>）</li>
<li><strong>补充材料</strong>​（<span data-type="text" style="color: var(--b3-inline-style-20260919141719-mj1gtog-color, #ff0000);">ER图</span>）</li>
</ul>
</li>
</ul>
<h2>2. <strong>考点：需求的获取和分类</strong></h2>
<p></p>
<ul>
<li>
<p><strong>需求的获取方法</strong>：</p>
<ul>
<li>收集资料</li>
<li>联合讨论会</li>
<li>用户访谈</li>
<li>书面调查</li>
<li>现场观摩</li>
<li>参加业务实践</li>
<li>阅读历史文档</li>
<li>抽样调查</li>
</ul>
</li>
<li>
<p><strong>软件需求的分类</strong>：</p>
<ul>
<li>
<p><strong>按层次分类</strong>：</p>
<ul>
<li><strong>业务需求</strong>：整体全局</li>
<li><strong>用户需求</strong>：用户视角</li>
<li><strong>系统需求</strong>：计算机化</li>
</ul>
</li>
<li>
<p><strong>系统需求进一步细分</strong>：</p>
<ul>
<li>功能需求</li>
<li>性能需求</li>
<li>设计约束</li>
</ul>
</li>
<li>
<p><strong>按 QFD（质量功能部署）分类</strong>：</p>
<ul>
<li><strong>基本需求</strong>：明示，常规需求</li>
<li><strong>期望需求</strong>：隐含</li>
<li><strong>兴奋需求</strong>：多余</li>
</ul>
</li>
</ul>
</li>
<li>
<p><strong>记忆总结</strong>：</p>
<ul>
<li>获取方法：收集、讨论、访谈、调查、观摩、实践、文档、抽样。</li>
<li>层次分类：业务 → 用户 → 系统，系统再分功能、性能、约束。</li>
<li>QFD 分类：基本（明示）、期望（隐含）、兴奋（多余）。</li>
</ul>
</li>
</ul>
<h2>3. 考点：需求分析的产物</h2>
<h3>3.1 数据流图</h3>
<p></p>
<h4>3.1.1 <strong>数据流图各元素的含义</strong></h4>
<p></p>
<p>|元素|说明|
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>算法</title>
      <link>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/</link>
      <guid>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/</guid>
      <source url="https://huanglian.top/blog/rss.xml">算法</source>
      <description>算法设计与分析 这里按算法设计策略组织笔记：每一种策略先讲清核心思想与适用条件，再用经典问题完整走一遍「建模 → 递归关系 → 填表/搜索过程 → 代码实现 → 复杂度分析」。 与 软考·算法基础 的分工：软考部分面向上午场选择题的考点速记，本分类面向代码实现与推导细节，两者互为补充。 1. 算法设计策略总览 2. 如何选择策略 判断顺序建议按下面四步...</description>
      <pubDate>Fri, 25 Sep 2026 02:00:00 GMT</pubDate>
      <content:encoded><![CDATA[
<p>这里按<strong>算法设计策略</strong>组织笔记：每一种策略先讲清核心思想与适用条件，再用经典问题完整走一遍「建模 → 递归关系 → 填表/搜索过程 → 代码实现 → 复杂度分析」。</p>
<p>与 <a href="/%E8%BD%AF%E8%80%83/%E4%B8%AD%E7%BA%A7%E8%B5%84%E6%A0%BC%EF%BC%9A%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1%E5%B8%88/%E7%AE%97%E6%B3%95%E5%9F%BA%E7%A1%80/" target="_blank" rel="noopener noreferrer">软考·算法基础</a> 的分工：软考部分面向上午场选择题的考点速记，本分类面向<strong>代码实现与推导细节</strong>，两者互为补充。</p>
<h2>1. 算法设计策略总览</h2>
<p>| 策略 | 核心思想 | 解的性质 | 典型问题 | 时间复杂度量级 |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>NP完全性理论与近似算法</title>
      <link>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/NP%E5%AE%8C%E5%85%A8%E6%80%A7%E7%90%86%E8%AE%BA%E4%B8%8E%E8%BF%91%E4%BC%BC%E7%AE%97%E6%B3%95/</link>
      <guid>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/NP%E5%AE%8C%E5%85%A8%E6%80%A7%E7%90%86%E8%AE%BA%E4%B8%8E%E8%BF%91%E4%BC%BC%E7%AE%97%E6%B3%95/</guid>
      <source url="https://huanglian.top/blog/rss.xml">NP完全性理论与近似算法</source>
      <description>NP 完全性理论与近似算法 1. 问题的分类 显然有 P⊆NP，但 P=NP 是否成立至今未解。目前普遍认为 P=NP。 2. 归约（Reduction） 若问题 A 可以在多项式时间内转化为问题 B 的实例，使得 A 的答案为「是」当且仅当 B 的答案为「是」，则称 A 多项式时间归约到 B，记作 A≤p​B。 若 A≤p​B 且 B 有多项式时间...</description>
      <pubDate>Fri, 25 Sep 2026 02:00:00 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 问题的分类</h2>
<p>| 类别 | 含义 |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>分支限界法</title>
      <link>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/%E5%88%86%E6%94%AF%E9%99%90%E7%95%8C%E6%B3%95/</link>
      <guid>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/%E5%88%86%E6%94%AF%E9%99%90%E7%95%8C%E6%B3%95/</guid>
      <source url="https://huanglian.top/blog/rss.xml">分支限界法</source>
      <description>分支限界法（Branch and Bound） 1. 核心思想 分支限界法在问题的解空间树上搜索，但与回溯法的深度优先不同，它采用广度优先或最小耗费（最大效益）优先的策略扩展结点。每一个活结点只有一次机会成为扩展结点：一旦成为扩展结点，就一次性产生其所有儿子结点，并用限界函数估算这些儿子结点的上界或下界： 若某儿子结点的估值不可能产生比当前最优解更好的...</description>
      <pubDate>Fri, 25 Sep 2026 02:00:00 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 核心思想</h2>
<p>分支限界法在问题的<strong>解空间树</strong>上搜索，但与回溯法的深度优先不同，它采用<strong>广度优先</strong>或<strong>最小耗费（最大效益）优先</strong>的策略扩展结点。每一个活结点只有一次机会成为扩展结点：一旦成为扩展结点，就一次性产生其所有儿子结点，并用<strong>限界函数</strong>估算这些儿子结点的上界或下界：</p>
<ul>
<li>若某儿子结点的估值<strong>不可能产生比当前最优解更好的解</strong>，直接舍弃该子树；</li>
<li>其余儿子结点加入活结点表，等待被选取为下一个扩展结点。</li>
</ul>
<h2>2. 两种常见的活结点表组织方式</h2>
<p>| 方式 | 数据结构 | 扩展顺序 | 特点 |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>分治法</title>
      <link>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/%E5%88%86%E6%B2%BB%E6%B3%95/</link>
      <guid>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/%E5%88%86%E6%B2%BB%E6%B3%95/</guid>
      <source url="https://huanglian.top/blog/rss.xml">分治法</source>
      <description>分治法（Divide and Conquer） 1. 核心思想 把规模为 n 的问题分解为 k 个规模较小的相互独立的子问题，递归求解后再把子问题的解合并成原问题的解。 三个阶段： 划分（Divide）：将原问题划分为若干规模更小的同类子问题。 求解（Conquer）：递归求解各子问题；若子问题规模足够小（到达递归出口）则直接求解。 合并（Merge）...</description>
      <pubDate>Fri, 25 Sep 2026 02:00:00 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 核心思想</h2>
<p>把规模为 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> 的问题分解为 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.0315em;">k</span></span></span></span> 个规模较小的<strong>相互独立</strong>的子问题，递归求解后再把子问题的解合并成原问题的解。</p>
<p>三个阶段：</p>
<ol>
<li><strong>划分（Divide）</strong>：将原问题划分为若干规模更小的同类子问题。</li>
<li><strong>求解（Conquer）</strong>：递归求解各子问题；若子问题规模足够小（到达递归出口）则直接求解。</li>
<li><strong>合并（Merge）</strong>：将子问题的解合并为原问题的解。</li>
</ol>
<h2>2. 适用条件</h2>
<ul>
<li>问题可缩小到一定规模后<strong>容易直接求解</strong>；</li>
<li>问题具有<strong>最优子结构</strong>，即可以分解为若干规模较小的相同问题；</li>
<li>子问题的解<strong>可以合并</strong>为原问题的解；</li>
<li>各子问题<strong>相互独立</strong>，不包含公共子问题（否则应改用动态规划）。</li>
</ul>
<h2>3. 复杂度分析方法</h2>
<p>分治法的时间复杂度满足递推式：</p>
<p v-pre class="katex-block"><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>T</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo><mo>=</mo><mi>a</mi><mi>T</mi><mo stretchy="false">(</mo><mi>n</mi><mi mathvariant="normal">/</mi><mi>b</mi><mo stretchy="false">)</mo><mo>+</mo><mi>f</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">T(n) = aT(n/b) + f(n)
</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.1389em;">T</span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.1389em;">T</span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mord">/</span><span class="mord mathnormal">b</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.1076em;">f</span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mclose">)</span></span></span></span></span></p>
<p>三种求解方式：</p>
<ul>
<li><strong>代入法</strong>：猜出解的形式，用数学归纳法验证。</li>
<li><strong>递归树法</strong>：逐层展开，累加每层代价。</li>
<li><strong>主定理（Master Theorem）</strong>：比较 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>f</mi><mo stretchy="false">(</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">f(n)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.1076em;">f</span><span class="mopen">(</span><span class="mord mathnormal">n</span><span class="mclose">)</span></span></span></span> 与 <span v-pre class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>n</mi><mrow><msub><mrow><mi>log</mi><mo>⁡</mo></mrow><mi>b</mi></msub><mi>a</mi></mrow></msup></mrow><annotation encoding="application/x-tex">n^{\log_b a}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8491em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8491em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mop mtight"><span class="mop mtight"><span class="mtight">l</span><span class="mtight">o</span><span class="mtight" style="margin-right:0.0139em;">g</span></span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.2302em;"><span style="top:-2.2341em;margin-right:0.0714em;"><span class="pstrut" style="height:2.5em;"></span><span class="sizing reset-size3 size1 mtight"><span class="mord mathnormal mtight">b</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2659em;"><span></span></span></span></span></span></span><span class="mspace mtight" style="margin-right:0.1952em;"></span><span class="mord mathnormal mtight">a</span></span></span></span></span></span></span></span></span></span></span></span> 的量级：</li>
</ul>
<p>| 情形 | 条件 | 解 |
|</p>
]]></content:encoded>
    </item>
    <item>
      <title>动态规划</title>
      <link>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/</link>
      <guid>https://huanglian.top/blog/%E7%AE%97%E6%B3%95/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/</guid>
      <source url="https://huanglian.top/blog/rss.xml">动态规划</source>
      <description>动态规划（Dynamic Programming） 1. 核心思想 动态规划与分治法类似，都是把问题分解为规模更小的子问题。区别在于：分治法的子问题相互独立，而动态规划的子问题相互重叠——同一个子问题会在递归过程中被反复求解。动态规划把每个子问题的解记录在表中，需要时直接查表，从而把指数级的重复计算压缩为多项式级。 2. 两个基本要素 2.1 最优子结...</description>
      <pubDate>Fri, 25 Sep 2026 02:00:00 GMT</pubDate>
      <content:encoded><![CDATA[
<h2>1. 核心思想</h2>
<p>动态规划与分治法类似，都是把问题分解为规模更小的子问题。区别在于：分治法的子问题<strong>相互独立</strong>，而动态规划的子问题<strong>相互重叠</strong>——同一个子问题会在递归过程中被反复求解。动态规划把每个子问题的解<strong>记录在表中</strong>，需要时直接查表，从而把指数级的重复计算压缩为多项式级。</p>
<h2>2. 两个基本要素</h2>
<h3>2.1 最优子结构（Optimal Substructure）</h3>
<p>问题的最优解包含其子问题的最优解。这是能用动态规划求解的<strong>前提</strong>，也是写出递归关系式的依据。</p>
<blockquote>
<p>证明思路：用「剪贴法（cut-and-paste）」反证——若子问题的解不是最优的，把它替换为最优子问题的解就能得到原问题更优的解，矛盾。</p>
</blockquote>
<h3>2.2 重叠子问题（Overlapping Subproblems）</h3>
<p>递归求解过程中会反复遇到相同的子问题。若子问题互不重叠，则退化为分治法，用表反而浪费空间。</p>
<h2>3. 两种实现方式</h2>
<p>| 方式 | 方向 | 特点 |
|</p>
]]></content:encoded>
    </item>
  </channel>
</rss>