<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>ZIHY</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://yzh-01.github.io/</id>
  <link href="https://yzh-01.github.io/" rel="alternate"/>
  <link href="https://yzh-01.github.io/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, ZIHY</rights>
  <subtitle>记录技术、生活与一切值得记下的事</subtitle>
  <title>ZIHY 的小站</title>
  <updated>2026-08-20T13:40:00.000Z</updated>
  <entry>
    <author>
      <name>ZIHY</name>
    </author>
    <category term="读书笔记" scheme="https://yzh-01.github.io/categories/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/"/>
    <category term="北欧神话" scheme="https://yzh-01.github.io/tags/%E5%8C%97%E6%AC%A7%E7%A5%9E%E8%AF%9D/"/>
    <category term="设计" scheme="https://yzh-01.github.io/tags/%E8%AE%BE%E8%AE%A1/"/>
    <category term="阅读" scheme="https://yzh-01.github.io/tags/%E9%98%85%E8%AF%BB/"/>
    <content>
      <![CDATA[<p><img src="/images/posts/norse-nine-worlds/yggdrasil-woodcut.webp" alt="雾与断层之间的世界树"></p><p>第一次接触北欧神话时，我也把九界理解成一张完整地图：世界树立在中央，九个世界整齐地挂在树冠、树干和树根上，像一套早已画好的游戏关卡。</p><p>真正翻到《埃达》之后，事情反而变得模糊。</p><p>现存文本确实反复提到“九个世界”，也不断写到阿斯加德、米德加德、约顿海姆、尼福尔海姆等地方；但它们没有给出一份同时包含九个名称、坐标和层级的标准说明书。我们今天最熟悉的九界图，通常是后人把散落在不同诗篇和章节里的线索重新拼在一起的结果。</p><p>这不是缺陷。恰恰是这种无法被彻底整理的部分，让北欧宇宙显得像一个仍在呼吸的传说，而不是已经封存的数据库。</p><h2 id="“我记得九个世界”，然后呢？"><a href="#“我记得九个世界”，然后呢？" class="headerlink" title="“我记得九个世界”，然后呢？"></a>“我记得九个世界”，然后呢？</h2><p>《诗体埃达》开篇的《女巫的预言》（<em>Völuspá</em>）让女先知回忆远古、巨人、九个世界，以及世界树尚未完全生长时的状态。诗知道听众早已熟悉这些观念，所以没有停下来解释“第一界是什么、第二界在哪里”。</p><p>《散文埃达》写得更系统一些。斯诺里·斯图鲁松讲述了世界树的根、诸神的居所、冰雾与火焰的原初区域，也写到海拉被赋予管理“九个世界”亡者的权力。然而这些信息仍然散落在叙事里，而不是一张官方清单。</p><p>原因并不神秘：这些故事先在口头传统中流动，后来才由中世纪冰岛的书写者整理下来。早期诗歌默认听众拥有共同背景；后来的记录者又站在自己的时代与信仰环境中回望更古老的材料。我们能读到的是几层记忆叠在一起后的断面。</p><p>因此，比较诚实的说法不是“古诺斯人认定九界一定如下”，而是：</p><blockquote><p>下面这组名称，是现代读者最常使用的一种整理；它方便阅读，但不是唯一、完整且无争议的古代标准。</p></blockquote><p><img src="/images/posts/norse-nine-worlds/nine-realms-reading-map.svg" alt="九界关系阅读图"></p><p><em>这是一张关系图，不是距离精确的地理图。中心位置只表示从人类视角出发阅读，并不宣称米德加德在宇宙中拥有固定坐标。</em></p><h2 id="一份常见但需要保留问号的九界表"><a href="#一份常见但需要保留问号的九界表" class="headerlink" title="一份常见但需要保留问号的九界表"></a>一份常见但需要保留问号的九界表</h2><table><thead><tr><th>名称</th><th>常见理解</th><th>在我的视觉设计中</th></tr></thead><tbody><tr><td><strong>Asgard &#x2F; 阿斯加德</strong></td><td>阿萨神族的领域</td><td>门与轴线，表示秩序</td></tr><tr><td><strong>Alfheim &#x2F; 亚尔夫海姆</strong></td><td>光明精灵的领域</td><td>八向星芒，表示光</td></tr><tr><td><strong>Vanaheim &#x2F; 华纳海姆</strong></td><td>华纳神族的领域</td><td>双叶，表示生长与丰饶</td></tr><tr><td><strong>Jotunheim &#x2F; 约顿海姆</strong></td><td>巨人的领域</td><td>断裂山峰，表示边界之外</td></tr><tr><td><strong>Midgard &#x2F; 米德加德</strong></td><td>人类居住的“中庭”</td><td>环与屋脊，表示被围护的日常世界</td></tr><tr><td><strong>Muspelheim &#x2F; 穆斯贝尔海姆</strong></td><td>火与毁灭力量的领域</td><td>向上卷起的火形</td></tr><tr><td><strong>Niflheim &#x2F; 尼福尔海姆</strong></td><td>冰、雾与寒冷的领域</td><td>冰晶与交叉冷锋</td></tr><tr><td><strong>Nidavellir &#x2F; 尼达维利尔</strong></td><td>常被理解为矮人的领域</td><td>锻锤与砧台，表示制造</td></tr><tr><td><strong>Hel &#x2F; 海尔</strong></td><td>亡者的领域，也与海拉之名相连</td><td>向下分叉的根，表示归返地下</td></tr></tbody></table><p>问题就藏在表格看起来最整齐的地方。</p><p>有些整理会把 <strong>Nidavellir</strong> 与 <strong>Svartalfheim</strong> 合并，有些会分别保留；有些把 <strong>Hel</strong> 视为独立世界，有些更强调 <strong>Niflhel</strong> 与 <strong>Niflheim</strong> 的关系。甚至“九界”究竟应理解为九个封闭空间，还是九类地域、居所与存在状态，也不能用今天的地图概念轻易框死。</p><p>所以我没有给每个石片刻所谓“正统卢恩文”。主页上的图形是现代图标，不是考古复原；英文与中文名称则直接写明，让它们不靠神秘感冒充史实。</p><h2 id="世界树更像关系，而不是置物架"><a href="#世界树更像关系，而不是置物架" class="headerlink" title="世界树更像关系，而不是置物架"></a>世界树更像关系，而不是置物架</h2><p>把九界画成挂在树上的九颗果实很直观，但容易制造一种过度确定的错觉。</p><p>在《埃达》的叙事里，Yggdrasil 更接近一条维系秩序的生命结构：树根伸向泉与深处，诸神在树旁议事，生灵啃噬或穿梭其间；到了诸神黄昏，树与世界一起震动。它把命运、时间、生长、腐朽和不同存在联系起来，而不只是替世界提供九个插槽。</p><p>我因此把关系图画成围绕米德加德展开的读取路径，而没有画成“上三界、中三界、下三界”的硬性楼层。这样做不是为了发明另一套权威，而是承认：我们看到的是连接，不是坐标。</p><h2 id="冰与火之间，先有一道空隙"><a href="#冰与火之间，先有一道空隙" class="headerlink" title="冰与火之间，先有一道空隙"></a>冰与火之间，先有一道空隙</h2><p><img src="/images/posts/norse-nine-worlds/ginnungagap-fire-and-ice.webp" alt="金伦加鸿沟两侧的冰雾与火焰"></p><p>北欧创世叙事最吸引我的，并不是世界被迅速填满，而是世界开始于一段巨大的空白——<strong>Ginnungagap（金伦加鸿沟）</strong>。</p><p>一侧是尼福尔海姆的冰、雾与寒冷，另一侧是穆斯贝尔的热与火。两股力量在鸿沟中接近，融化与凝结开始发生，生命从边界而不是中心出现。</p><h2 id="主页上的“誓约印”到底在表达什么"><a href="#主页上的“誓约印”到底在表达什么" class="headerlink" title="主页上的“誓约印”到底在表达什么"></a>主页上的“誓约印”到底在表达什么</h2><p>现在点击 <code>WINTEROMEN</code> 中的日蚀，中央石印会蓄力，九块界石依次展开。</p><p>它表达的是一次阅读动作：</p><ol><li><strong>日蚀收缩</strong>：视线从标题收回到一个入口。</li><li><strong>石印锁合</strong>：散乱信息先获得临时秩序。</li><li><strong>九界展开</strong>：名称、领域与符号同时显现，传说被允许阅读。</li><li><strong>再次点击关闭</strong>：这套秩序被收回，而不是永远占据页面。</li></ol><p>九块石头没有被做成九个完全相同的按钮。轮廓、倾角、展开路径与象征图形都略有差异，因为九界并不是九个换皮组件。英文名负责远距离辨认，中文说明负责让第一次来访的人知道自己看见了什么；铭牌只有在石阵展开后才出现，不会长时间压住标题。</p><p>它的意义也不在于“证明我懂北欧神话”，而在于提醒我：<strong>整理知识时，可以建立结构，但不该把结构伪装成唯一真相。</strong></p><h2 id="传说不是数据库"><a href="#传说不是数据库" class="headerlink" title="传说不是数据库"></a>传说不是数据库</h2><p>现代人们习惯先找设定表：几个世界、谁住哪里、彼此怎么连接、战斗力如何排序。北欧神话偏偏不断抵抗这种整理。它来自不同时间、地点与讲述者，经历口传、记录、翻译和再解释；名称会重叠，边界会漂移，矛盾也不会自动消失。</p><p>我最终保留九界，不是因为这份名单毫无争议，而是因为它足够有代表性，也足够诚实地暴露争议。主页的石阵是一张可打开、可关闭的阅读索引；真正的九界仍然留在文本之间。</p><p>如果一张图让所有问题都消失了，它可能只是把神话画得太整齐了。</p><hr><h2 id="延伸阅读"><a href="#延伸阅读" class="headerlink" title="延伸阅读"></a>延伸阅读</h2><ul><li><a href="https://www.gutenberg.org/ebooks/73533">《诗体埃达》英译本，Project Gutenberg</a></li><li><a href="https://www.gutenberg.org/files/18947/18947-h/18947-h.htm">《散文埃达 &#x2F; The Younger Edda》，Project Gutenberg</a></li><li><a href="https://en.wikisource.org/wiki/The_Poetic_Edda_%28tr._Bellows%29/Voluspo">《女巫的预言》Bellows 英译与注释，Wikisource</a></li><li><a href="https://www.worldhistory.org/article/1305/nine-realms-of-norse-cosmology/">Nine Realms of Norse Cosmology，World History Encyclopedia</a></li></ul><blockquote><p>配图为本站生成与绘制的原创视觉素材；九界关系图属于现代阅读辅助，不代表唯一的古代宇宙模型。</p></blockquote>]]>
    </content>
    <id>https://yzh-01.github.io/norse-nine-worlds-no-standard-map/</id>
    <link href="https://yzh-01.github.io/norse-nine-worlds-no-standard-map/"/>
    <published>2026-08-20T13:40:00.000Z</published>
    <summary>九界究竟是哪九界？世界树是一张地图，还是一种关系？从《诗体埃达》《散文埃达》的缝隙出发，也解释主页九界石阵为什么这样设计。</summary>
    <title>九界没有标准地图</title>
    <updated>2026-08-20T13:40:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>ZIHY</name>
    </author>
    <category term="学习笔记" scheme="https://yzh-01.github.io/categories/study-notes/"/>
    <category term="VSCode" scheme="https://yzh-01.github.io/tags/VSCode/"/>
    <category term="字体" scheme="https://yzh-01.github.io/tags/%E5%AD%97%E4%BD%93/"/>
    <category term="主题" scheme="https://yzh-01.github.io/tags/%E4%B8%BB%E9%A2%98/"/>
    <category term="工具" scheme="https://yzh-01.github.io/tags/%E5%B7%A5%E5%85%B7/"/>
    <category term="折腾" scheme="https://yzh-01.github.io/tags/hacking/"/>
    <content>
      <![CDATA[<p>某个下午，盯着 VSCode 发愣了几分钟，忽然意识到三件事我想改很久了：</p><ol><li>编辑器里的字符跟终端里长得不一样</li><li>编辑器整片黑，想看壁纸也看不到</li><li>「磨砂玻璃」效果已经馋了好久</li></ol><p>于是花了一些时间把它一次性做完。记录一下，方便未来的我回看，也方便偶然路过的你。</p><hr><h2 id="字体：让终端、编辑器、Markdown-预览说同一种话"><a href="#字体：让终端、编辑器、Markdown-预览说同一种话" class="headerlink" title="字体：让终端、编辑器、Markdown 预览说同一种话"></a>字体：让终端、编辑器、Markdown 预览说同一种话</h2><p>之前终端用 <code>Menlo for powerline</code>（凑合，但 Mac 旧时代审美），编辑器用默认等宽，三处字体三家话，看久了总觉得割裂。</p><p>挑了一圈，最后落在 <strong>Maple Mono NF CN</strong>：</p><ul><li><code>NF</code> &#x3D; Nerd Font 变体，自带 Powerline &#x2F; 文件图标 &#x2F; Git 分支符号</li><li><code>CN</code> &#x3D; 内置中文字符（打中文不会 fallback 到默认字体）</li></ul><p>一处配好，三处复用：</p><figure class="highlight jsonc"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// settings.json</span></span><br><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;terminal.integrated.fontFamily&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Maple Mono NF CN&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;terminal.integrated.fontSize&quot;</span><span class="punctuation">:</span> <span class="number">14</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;terminal.integrated.fontLigatures&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;terminal.integrated.lineHeight&quot;</span><span class="punctuation">:</span> <span class="number">1.25</span><span class="punctuation">,</span></span><br><span class="line"></span><br><span class="line">  <span class="attr">&quot;editor.fontFamily&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Maple Mono NF CN&quot;</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;editor.fontSize&quot;</span><span class="punctuation">:</span> <span class="number">15</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;editor.fontLigatures&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;editor.lineHeight&quot;</span><span class="punctuation">:</span> <span class="number">1.5</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p>第三处是 Markdown 预览。我用 <code>markdown-preview-enhanced</code>，它不带直接改字体的键，只能塞 CSS 进去：</p><figure class="highlight jsonc"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">&quot;markdown-preview-enhanced.previewStyle&quot;</span><span class="punctuation">:</span> <span class="string">&quot;body &#123; font-family: \&quot;Maple Mono NF CN\&quot;, ...; &#125; code,pre,kbd,samp &#123; font-family: \&quot;Maple Mono NF CN\&quot;, ...; font-feature-settings: \&quot;calt\&quot; 1, \&quot;liga\&quot; 1; &#125; blockquote &#123; border-left: 3px solid #5c8a63; ...; &#125;&quot;</span></span><br></pre></td></tr></table></figure><blockquote><p>题外话：Maple Mono 自带的连字让 <code>=&gt;</code> <code>!=</code> <code>&gt;=</code> 这种符号变成漂亮的图样，写代码幸福感 +1。</p><p>顺手把 <code>blockquote</code> 的左边框染成了 Garden 主题里的 moss 绿 <code>#5c8a63</code>，算是博客内外的一个小呼应。</p></blockquote><hr><h2 id="磨砂透明：两件事，两个扩展"><a href="#磨砂透明：两件事，两个扩展" class="headerlink" title="磨砂透明：两件事，两个扩展"></a>磨砂透明：两件事，两个扩展</h2><p>「磨砂透明」听起来一个扩展能搞定，其实拆成两件事：</p><table><thead><tr><th>想要的效果</th><th>谁来做</th></tr></thead><tbody><tr><td>整片窗口透出来 + Windows 自己模糊标题栏</td><td>GlassIt-VSC</td></tr><tr><td>编辑器里塞一张自定义背景图</td><td>shalldie.background</td></tr></tbody></table><h3 id="GlassIt：让整片窗口半透明"><a href="#GlassIt：让整片窗口半透明" class="headerlink" title="GlassIt：让整片窗口半透明"></a>GlassIt：让整片窗口半透明</h3><p>GitHub 上还能下到，但 Microsoft Marketplace 不知道什么时候把它下掉了——CLI 装不上，浏览器装没试。我直接 <code>curl</code> 它的 GitHub release，下载 <code>.vsix</code> 手动装：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># /tmp/vsix/glassit.vsix 是我下载下来的 105KB 包</span></span><br><span class="line">code --install-extension /tmp/vsix/glassit.vsix</span><br></pre></td></tr></table></figure><p>真正在用的就两行：</p><figure class="highlight jsonc"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">&quot;glassit.alpha&quot;</span><span class="punctuation">:</span> <span class="number">250</span><span class="punctuation">,</span>   <span class="comment">// 1-255，越大越不透明</span></span><br><span class="line"><span class="attr">&quot;glassit.step&quot;</span><span class="punctuation">:</span> <span class="number">5</span>       <span class="comment">// Ctrl+Alt+Z / Ctrl+Alt+C 单次调整步长</span></span><br></pre></td></tr></table></figure><p><code>250</code> 留了一点透——纯不透明 (<code>255</code>) 看着闷，纯透明 (<code>1</code>) 又什么都看不见。这个数字我反复试探了好几轮才定下来。</p><h3 id="shalldie-background：把图塞进编辑器"><a href="#shalldie-background：把图塞进编辑器" class="headerlink" title="shalldie.background：把图塞进编辑器"></a>shalldie.background：把图塞进编辑器</h3><p>这个扩展做的是「在编辑器里塞一张自定义背景图」。装上之后 settings 里冒出一堆 <code>background.*</code> 键，看着吓人，其实只有这五个核心区域：</p><ul><li><code>background.editor</code> — 编辑器区域</li><li><code>background.sidebar</code> — 资源管理器</li><li><code>background.panel</code> — 底部面板（终端等）</li><li><code>background.fullscreen</code> &#x2F; <code>background.auxiliarybar</code> — 其余</li></ul><p>我用一张 Unsplash 的风景图：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">d:\Edge\iuliu-illes-jt2qFluLxsE-unsplash.jpg</span><br></pre></td></tr></table></figure><hr><h2 id="半屏设计：背景图只在编辑器"><a href="#半屏设计：背景图只在编辑器" class="headerlink" title="半屏设计：背景图只在编辑器"></a>半屏设计：背景图只在编辑器</h2><p>最初给五个区域都铺了背景图，结果：</p><ul><li>资源管理器里「文件树」变得很花，看不清字</li><li>终端在底部也飘着背景，命令和图搅在一起</li><li>全屏模式还跳出来另一张图，吓一跳</li></ul><p>后来只在 <code>background.editor</code> 里放了图，其它四个区域 <code>images: []</code>。<strong>只让编辑器这一片承担「美化」的责任</strong>，其它区域老老实实保持主题色。</p><p>视觉上反而更聚焦：视线进编辑器，背景悄悄托底；视线出编辑器，立刻回到清爽的工具栏。</p><hr><h2 id="亚克力：30px-模糊-1-6-倍饱和度"><a href="#亚克力：30px-模糊-1-6-倍饱和度" class="headerlink" title="亚克力：30px 模糊 + 1.6 倍饱和度"></a>亚克力：30px 模糊 + 1.6 倍饱和度</h2><p>搞定上面后图片还是太「实」，跟代码抢戏。给它加一组 <code>filter</code>：</p><figure class="highlight jsonc"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">&quot;background.editor&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;useFront&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">false</span></span><span class="punctuation">,</span>                          <span class="comment">// 图放编辑器背景层，不在代码上方</span></span><br><span class="line">  <span class="attr">&quot;images&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="string">&quot;d:\\Edge\\iuliu-illes-...jpg&quot;</span><span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;style&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;opacity&quot;</span><span class="punctuation">:</span> <span class="number">0.5</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;background-size&quot;</span><span class="punctuation">:</span> <span class="string">&quot;cover&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;background-position&quot;</span><span class="punctuation">:</span> <span class="string">&quot;center&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;filter&quot;</span><span class="punctuation">:</span> <span class="string">&quot;blur(30px) saturate(1.6)&quot;</span>      <span class="comment">// ← 亚克力的魔法</span></span><br><span class="line">  <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><ul><li><code>blur(30px)</code> — 高斯模糊半径 30px，跟 Windows 11 Acrylic 的参数同档</li><li><code>saturate(1.6)</code> — 颜色饱和度 +60%，让模糊之后还能看出主色调，不至于糊成一片灰</li><li><code>opacity: 0.5</code> — 整体半透，不抢戏</li></ul><p>最终效果：编辑器里飘着一层柔焦、过饱和、半透明的风景；代码仍锐利在前。这就是 Windows 11 那种「压克力」的味道。</p><blockquote><p>「亚克力」（Acrylic）是 Windows 10&#x2F;11 的 Fluent Design 系统级材质，特征是背后透出 + 模糊 + 微饱和——这套 <code>blur + saturate + 半透明 opacity</code> 的组合，是它的 CSS 近似。</p></blockquote><hr><h2 id="踩坑清单"><a href="#踩坑清单" class="headerlink" title="踩坑清单"></a>踩坑清单</h2><ol><li><strong><code>background.editor.opacity</code> 这种键在新版 2.1.2 已经无效</strong>——新版的 schema 把 <code>opacity</code> &#x2F; <code>size</code> &#x2F; <code>position</code> 拆给了 <code>sidebar</code> &#x2F; <code>panel</code> 那些区域，<code>editor</code> 必须用嵌套 <code>style</code> 对象传 CSS。官方 README 没跟上版本，看了过时文档就会踩。</li><li><strong>图片路径用双反斜杠</strong>——<code>d:\\Edge\\foo.jpg</code>。JSON 里单反斜杠会被吃掉。</li><li><strong><code>workbench.colorCustomizations.editor.background</code> 不要设太厚</strong>——之前我用 <code>#1e1e1eb3</code>（70% 不透明），结果图被遮得几乎看不见。改成 <code>00</code>（完全透明）才让 <code>useFront: false</code> 的图能正常浮现。</li></ol><hr><h2 id="附录：完整的-background-相关-settings"><a href="#附录：完整的-background-相关-settings" class="headerlink" title="附录：完整的 background 相关 settings"></a>附录：完整的 background 相关 settings</h2><figure class="highlight jsonc"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">&quot;background.enabled&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;background.editor&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">  <span class="attr">&quot;useFront&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">false</span></span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;images&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="string">&quot;d:\\Edge\\iuliu-illes-jt2qFluLxsE-unsplash.jpg&quot;</span><span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">  <span class="attr">&quot;style&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;opacity&quot;</span><span class="punctuation">:</span> <span class="number">0.5</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;background-size&quot;</span><span class="punctuation">:</span> <span class="string">&quot;cover&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;background-position&quot;</span><span class="punctuation">:</span> <span class="string">&quot;center&quot;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;filter&quot;</span><span class="punctuation">:</span> <span class="string">&quot;blur(30px) saturate(1.6)&quot;</span></span><br><span class="line">  <span class="punctuation">&#125;</span></span><br><span class="line"><span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;background.sidebar&quot;</span><span class="punctuation">:</span>     <span class="punctuation">&#123;</span> <span class="attr">&quot;images&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">]</span> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;background.auxiliarybar&quot;</span><span class="punctuation">:</span><span class="punctuation">&#123;</span> <span class="attr">&quot;images&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">]</span> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;background.panel&quot;</span><span class="punctuation">:</span>       <span class="punctuation">&#123;</span> <span class="attr">&quot;images&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">]</span> <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line"><span class="attr">&quot;background.fullscreen&quot;</span><span class="punctuation">:</span>  <span class="punctuation">&#123;</span> <span class="attr">&quot;images&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">]</span> <span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><hr><p>最后一句：折腾工具的乐趣不在工具本身，而在折腾完之后，<strong>编辑器和它背后的那片风景终于呼吸到一起了</strong>。下次写代码眼睛累了，可以往后退一点，看一眼图片——算是给自己一个偷懒的理由。</p><hr><h2 id="实际效果预览"><a href="#实际效果预览" class="headerlink" title="实际效果预览"></a>实际效果预览</h2><p><img src="/images/posts/vscode-maple-mono-acrylic/preview.webp" alt="VSCode 磨砂主题与亚克力背景效果|585"></p>]]>
    </content>
    <id>https://yzh-01.github.io/vscode-maple-mono-acrylic/</id>
    <link href="https://yzh-01.github.io/vscode-maple-mono-acrylic/"/>
    <published>2026-07-30T10:30:00.000Z</published>
    <summary>一口气把字体、磨砂透明、亚克力背景三件事都装上，顺便记下踩到的几个坑。</summary>
    <title>调教 VSCode：Maple Mono、磨砂透明与亚克力背景</title>
    <updated>2026-07-30T10:30:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>ZIHY</name>
    </author>
    <category term="学习笔记" scheme="https://yzh-01.github.io/categories/study-notes/"/>
    <category term="软件工程" scheme="https://yzh-01.github.io/tags/software-engineering/"/>
    <category term="复习" scheme="https://yzh-01.github.io/tags/review/"/>
    <category term="笔记" scheme="https://yzh-01.github.io/tags/notes/"/>
    <content>
      <![CDATA[<h1 id="软件工程期末考试冲刺版知识库"><a href="#软件工程期末考试冲刺版知识库" class="headerlink" title="软件工程期末考试冲刺版知识库"></a>软件工程期末考试冲刺版知识库</h1><blockquote><p>基于课程全部12章PPT逐页深度分析 | 考试结构：选择题30分 + 简答题20分 + 应用题50分<br>教材：《Introduction to Systems Analysis and Design, 6th Edition》Satzinger, Jackson &amp; Burd</p></blockquote><hr><h2 id="任务一：全部知识点提取"><a href="#任务一：全部知识点提取" class="headerlink" title="任务一：全部知识点提取"></a>任务一：全部知识点提取</h2><hr><h3 id="【知识点1】软件的定义-Software-Definition"><a href="#【知识点1】软件的定义-Software-Definition" class="headerlink" title="【知识点1】软件的定义 (Software Definition)"></a>【知识点1】软件的定义 (Software Definition)</h3><p><strong>定义</strong>：软件是计算机中与硬件相互依存的另一部分，是程序、数据及其相关文档的完整集合。</p><p><strong>核心内容</strong>：</p><ul><li>程序(Program)：按事先设计的功能和性能要求执行的指令序列</li><li>数据(Data)：使程序能够正确处理信息的数据结构</li><li>文档(Document)：与程序开发、维护和使用有关的图文资料</li></ul><p><strong>关键术语</strong>：Software &#x3D; Program + Data + Document</p><p><strong>重要细节</strong>：</p><ul><li>软件是逻辑产品（非物理产品）</li><li>软件不会磨损和老化（但会退化——维护引入新错误）</li><li>软件依赖硬件运行</li><li>目前仍以手工开发为主</li><li>软件技术发展三阶段：程序设计→程序系统→软件工程</li></ul><p><strong>常见陷阱</strong>：选择题干扰项”软件&#x3D;代码+文档”（缺少数据）；”软件不会退化”（物理不磨损但逻辑退化）</p><p><strong>考试出现形式</strong>：填空”软件的三个组成部分”；选择”以下哪项不属于软件”</p><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点2】软件危机-Software-Crisis"><a href="#【知识点2】软件危机-Software-Crisis" class="headerlink" title="【知识点2】软件危机 (Software Crisis)"></a>【知识点2】软件危机 (Software Crisis)</h3><p><strong>定义</strong>：在软件开发和维护过程中遇到的一系列严重问题。</p><p><strong>产生原因</strong>（6条）：</p><ol><li>忽视前期调研和需求分析</li><li>缺乏开发经验和数据积累</li><li>缺乏统一的、规范化的方法论指导</li><li>忽视与用户、团队间的有效沟通</li><li>文档资料不规范或不准确</li><li>没有完善的质量保证体系</li></ol><p><strong>主要表现</strong>（5条）：</p><ol><li>软件不能满足用户需求</li><li>开发成本严重超标，周期大大超过规定日期</li><li>软件质量难于保证，可靠性差</li><li>软件难于维护</li><li>软件开发速度跟不上计算机发展速度</li></ol><p><strong>解决方案</strong>：</p><ul><li>技术措施：好的方法(Methods) + 好的工具(Tools)</li><li>管理措施：良好的组织、严密的管理</li></ul><p><strong>为什么推动软件工程产生</strong>：软件危机的严重性迫使人们将工程化原则引入软件开发，1968年NATO会议首次提出”软件工程”概念。</p><p><strong>经典案例</strong>：</p><ul><li>IBM OS&#x2F;360（1961-1964）：100万条指令，5000人年，5亿美元，2000+错误</li><li>美国银行信托系统（1982-1987）：预算2000万→6000万，最终放弃，失去340亿美元信托账户</li></ul><p><strong>考试常见问法</strong>：简答”简述软件危机的主要表现和原因”；选择”以下哪项不是软件危机的表现”</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点3】软件工程的诞生与定义-Birth-of-Software-Engineering"><a href="#【知识点3】软件工程的诞生与定义-Birth-of-Software-Engineering" class="headerlink" title="【知识点3】软件工程的诞生与定义 (Birth of Software Engineering)"></a>【知识点3】软件工程的诞生与定义 (Birth of Software Engineering)</h3><p><strong>定义</strong>：软件工程是从技术和管理两方面研究如何更好地开发和维护计算机软件的学科。</p><p><strong>核心内容</strong>：</p><ul><li>1968年，NATO（北大西洋公约组织）计算机科学会议</li><li>Fritz Bauer 首次提出”软件工程”概念</li><li>Edsger Dijkstra 同年发表”GOTO Statement Considered Harmful”</li></ul><p><strong>Boehm七条基本原理</strong>（必须完整记忆）：</p><ol><li>用分阶段的软件生存周期计划进行严格的质量管理</li><li>坚持进行阶段评审</li><li>实行严格的产品控制</li><li>采用现代程序设计技术</li><li>软件工程结果应能清楚地审查</li><li>开发小组的人员应该少而精</li><li>承认不断改进软件工程实践的必要性</li></ol><p><strong>记忆口诀</strong>：”计评审控技，审精改”</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点4】软件生存周期-Software-Life-Cycle-SDLC"><a href="#【知识点4】软件生存周期-Software-Life-Cycle-SDLC" class="headerlink" title="【知识点4】软件生存周期 (Software Life Cycle &#x2F; SDLC)"></a>【知识点4】软件生存周期 (Software Life Cycle &#x2F; SDLC)</h3><p><strong>定义</strong>：软件从立项到废弃的整个过程。</p><p><strong>六大阶段</strong>：</p><table><thead><tr><th>阶段</th><th>英文</th><th>核心问题</th></tr></thead><tbody><tr><td>立项分析</td><td>Project Initiation</td><td>为什么要做？</td></tr><tr><td>需求分析</td><td>Requirements Analysis</td><td>系统需要什么功能？</td></tr><tr><td>系统设计</td><td>System Design</td><td>如何实现？</td></tr><tr><td>编码</td><td>Coding</td><td>怎么写代码？</td></tr><tr><td>测试</td><td>Testing</td><td>代码能否经受考验？</td></tr><tr><td>部署与维护</td><td>Deployment &amp; Maintenance</td><td>如何部署和维护？</td></tr></tbody></table><p><strong>SDLC支持阶段三大活动</strong>：</p><ul><li>维护系统(Maintaining)：修复错误，做小调整</li><li>增强系统(Enhancing)：添加新功能</li><li>支持用户(Supporting Users)：培训，帮助台</li></ul><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点5】SDLC两种方法-Predictive-vs-Adaptive"><a href="#【知识点5】SDLC两种方法-Predictive-vs-Adaptive" class="headerlink" title="【知识点5】SDLC两种方法 (Predictive vs Adaptive)"></a>【知识点5】SDLC两种方法 (Predictive vs Adaptive)</h3><p><strong>定义</strong>：</p><p><strong>预测性方法(Predictive Approach)</strong>：项目可以提前完整规划，按计划顺序开发。典型代表：瀑布模型。假设需求明确、技术风险低。</p><p><strong>适应性方法(Adaptive Approach)</strong>：项目必须灵活适应变化中的需求，始终包含迭代。典型代表：螺旋模型、敏捷。假设需求不确定、技术风险高。</p><p><strong>核心要点</strong>：大多数项目处于预测性和适应性之间的连续谱(continuum)上。</p><p><strong>常见陷阱</strong>：选择”瀑布模型是适应性方法”（错，是预测性）；”螺旋模型是预测性方法”（错，是适应性）</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点6】结构化方法-Structured-Approach"><a href="#【知识点6】结构化方法-Structured-Approach" class="headerlink" title="【知识点6】结构化方法 (Structured Approach)"></a>【知识点6】结构化方法 (Structured Approach)</h3><p><strong>定义</strong>：将系统视为一组与数据交互的过程的集合。</p><p><strong>三个阶段</strong>：</p><ul><li>结构化分析(SA)：用数据流图(DFD)建立功能模型</li><li>结构化设计(SD)：将DFD转换为软件体系结构</li><li>结构化程序设计(SP)：用标准控制结构表示模块功能</li></ul><p><strong>结构化程序设计五原则</strong>：</p><ol><li>使用有限的基本控制结构（顺序&#x2F;选择&#x2F;循环）</li><li>每个控制结构只有一个入口和一个出口</li><li>语句组成容易识别的块(Block)</li><li>复杂结构用基本控制结构组合嵌套实现</li><li>严格控制GOTO语句</li></ol><p><strong>五种基本控制结构</strong>：顺序型、选择型、当型循环(While)、直到型循环(Until)、多情况选择型(Case)</p><p><strong>描述工具</strong>：</p><ul><li>结构图(SC)：矩形框&#x3D;模块，空心圆&#x3D;传数据，实心圆&#x3D;传控制</li><li>程序流程图：五种基本结构的图形表示</li><li>N-S图（盒图）：Nassi-Shneideman图</li><li>PAD图（问题分析图）</li></ul><p><strong>四种模块类型</strong>：</p><ul><li>原子模块(Atomic)：不可再分的底层模块</li><li>传入模块(Input)：从下属模块取数据，处理后传给上级</li><li>传出模块(Output)：从上级获数据，处理后传给下属</li><li>变换模块(Transform)：从上级获数据，特定处理后返回上级</li><li>协调模块(Coordination)：管理所有下属模块</li></ul><p><strong>两种系统结构</strong>：</p><ul><li>变换型(Transform)：传入→变换中心→传出</li><li>事务型(Transaction)：事务中心根据事务类型分配处理</li></ul><p><strong>重要人物</strong>：Dijkstra(1965提出结构化程序设计), Bohm &amp; Jacopini(1966证明三种控制结构可实现任何程序)</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点7】面向对象方法-Object-Oriented-Approach"><a href="#【知识点7】面向对象方法-Object-Oriented-Approach" class="headerlink" title="【知识点7】面向对象方法 (Object-Oriented Approach)"></a>【知识点7】面向对象方法 (Object-Oriented Approach)</h3><p><strong>定义</strong>：将系统视为一组为完成任务而交互的对象的集合。</p><p><strong>三个阶段</strong>：</p><ul><li>OOA(面向对象分析)：识别用例和类</li><li>OOD(面向对象设计)：定义对象类型及交互</li><li>OOP(面向对象编程)：编写类定义和行为代码</li></ul><p><strong>核心概念</strong>：对象&#x3D;数据+操作，类(Class)，消息(Message)，继承(Inheritance)</p><p><strong>vs 结构化方法</strong>：</p><table><thead><tr><th>维度</th><th>结构化方法</th><th>面向对象方法</th></tr></thead><tbody><tr><td>基本假设</td><td>系统&#x3D;过程+数据</td><td>系统&#x3D;对象交互</td></tr><tr><td>分解方式</td><td>功能分解</td><td>对象分解</td></tr><tr><td>数据与操作</td><td>分离</td><td>封装在一起</td></tr><tr><td>可重用性</td><td>差</td><td>好</td></tr><tr><td>适用场景</td><td>中小型&#x2F;数据流明确</td><td>大型&#x2F;复杂&#x2F;交互性强</td></tr></tbody></table><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点8】系统分析活动-Systems-Analysis-Activities"><a href="#【知识点8】系统分析活动-Systems-Analysis-Activities" class="headerlink" title="【知识点8】系统分析活动 (Systems Analysis Activities)"></a>【知识点8】系统分析活动 (Systems Analysis Activities)</h3><p><strong>定义</strong>：理解业务需求并建立系统模型的过程。</p><p><strong>五个步骤</strong>：</p><ol><li>收集详细信息(Gather Detailed Information)</li><li>定义需求(Define Requirements)</li><li>需求优先级排序(Prioritize Requirements)：Essential&#x2F;Important&#x2F;Nice to have</li><li>开发用户界面对话(Develop User-Interface Dialogs)</li><li>与用户评估需求(Evaluate Requirements with Users)</li></ol><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点9】需求分类-Requirements-Classification"><a href="#【知识点9】需求分类-Requirements-Classification" class="headerlink" title="【知识点9】需求分类 (Requirements Classification)"></a>【知识点9】需求分类 (Requirements Classification)</h3><p><strong>定义</strong>：系统需求分为功能需求和非功能需求。</p><p><strong>功能需求(Functional Requirements)</strong>：系统必须执行的活动&#x2F;业务功能。描述系统”做什么”。</p><p><strong>非功能需求(Non-functional Requirements)</strong>：约束条件和性能目标。描述系统”做得怎样”。</p><p><strong>FURPS+ 模型</strong>（高频考点）：</p><table><thead><tr><th>字母</th><th>全称</th><th>中文</th><th>类型</th></tr></thead><tbody><tr><td>F</td><td>Functional</td><td>功能需求</td><td>功能</td></tr><tr><td>U</td><td>Usability</td><td>可用性需求</td><td>非功能</td></tr><tr><td>R</td><td>Reliability</td><td>可靠性需求</td><td>非功能</td></tr><tr><td>P</td><td>Performance</td><td>性能需求</td><td>非功能</td></tr><tr><td>S</td><td>Security</td><td>安全需求</td><td>非功能</td></tr><tr><td>+</td><td>扩展</td><td>设计限制&#x2F;开发&#x2F;接口&#x2F;物理&#x2F;支持</td><td>非功能</td></tr></tbody></table><p><strong>常见陷阱</strong>：F(功能需求)本身不是非功能需求，U&#x2F;R&#x2F;P&#x2F;S&#x2F;+才是非功能需求</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点10】利益相关者-Stakeholders"><a href="#【知识点10】利益相关者-Stakeholders" class="headerlink" title="【知识点10】利益相关者 (Stakeholders)"></a>【知识点10】利益相关者 (Stakeholders)</h3><p><strong>定义</strong>：对系统成功实施有兴趣的人。</p><p><strong>四种分类</strong>：</p><table><thead><tr><th></th><th>内部(Internal)</th><th>外部(External)</th></tr></thead><tbody><tr><td><strong>操作(Operational)</strong></td><td>内部操作员（如员工）</td><td>外部操作员（如客户）</td></tr><tr><td><strong>执行(Executive)</strong></td><td>内部管理者</td><td>外部管理者&#x2F;股东</td></tr></tbody></table><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点11】信息收集技术-Information-Gathering-Techniques"><a href="#【知识点11】信息收集技术-Information-Gathering-Techniques" class="headerlink" title="【知识点11】信息收集技术 (Information-Gathering Techniques)"></a>【知识点11】信息收集技术 (Information-Gathering Techniques)</h3><p><strong>六种方法</strong>：</p><ol><li><strong>访谈(Interviewing)</strong>：准备问题→讨论答案→记录→跟进</li><li><strong>问卷(Questionnaires)</strong>：大范围收集</li><li><strong>审查文档(Reviewing documents)</strong>：现有输入&#x2F;输出&#x2F;文档</li><li><strong>观察流程(Observing procedures)</strong>：直接观察业务流程</li><li><strong>研究供应商(Researching vendors)</strong>：白皮书、供应商方案</li><li><strong>收集反馈(Collecting comments)</strong>：活跃用户的意见和建议</li></ol><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点12】活动图-Activity-Diagram"><a href="#【知识点12】活动图-Activity-Diagram" class="headerlink" title="【知识点12】活动图 (Activity Diagram)"></a>【知识点12】活动图 (Activity Diagram)</h3><p><strong>定义</strong>：描述用户&#x2F;系统活动、执行人员和活动顺序流的UML图。</p><p><strong>组成元素</strong>：</p><ul><li>初始节点(Initial Node)：黑色实心圆</li><li>活动(Activity)：圆角矩形</li><li>判断(Decision)：菱形</li><li>分叉&#x2F;汇合(Fork&#x2F;Join)：粗横线，表示并行路径</li><li>终止节点(Final Node)：带环的黑色实心圆</li></ul><p><strong>考试画图步骤</strong>：</p><ol><li>确定起始和终止节点</li><li>识别主要活动</li><li>添加判断分支</li><li>添加并行路径(Fork&#x2F;Join成对出现)</li><li>连接所有节点</li></ol><p><strong>常见错误</strong>：Fork和Join不成对出现；判断菱形后没有分支</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考（应用题画图）</p><hr><h3 id="【知识点13】数据流图-DFD-Data-Flow-Diagram"><a href="#【知识点13】数据流图-DFD-Data-Flow-Diagram" class="headerlink" title="【知识点13】数据流图 DFD (Data Flow Diagram)"></a>【知识点13】数据流图 DFD (Data Flow Diagram)</h3><p><strong>定义</strong>：描述系统中数据流动和加工的图形工具。</p><p><strong>四种基本符号</strong>：</p><ul><li>数据流(Data Flow)：箭头</li><li>加工(Process)：圆或圆角矩形</li><li>数据存储(Data Store)：开口矩形</li><li>外部实体(External Entity)：矩形</li></ul><p><strong>绘制步骤</strong>：</p><ol><li>画顶层DFD（确定系统边界）</li><li>逐层分解（自顶向下）</li><li>画总DFD</li></ol><p><strong>数据词典(DD)条目</strong>：名字、别名、分类、内容描述、何处使用</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点14】需求规格说明书-SRS-Software-Requirements-Specification"><a href="#【知识点14】需求规格说明书-SRS-Software-Requirements-Specification" class="headerlink" title="【知识点14】需求规格说明书 SRS (Software Requirements Specification)"></a>【知识点14】需求规格说明书 SRS (Software Requirements Specification)</h3><p><strong>定义</strong>：用户与开发方之间的技术合同，描述系统必须做什么。</p><p><strong>参照标准</strong>：GB&#x2F;T 8567-2006</p><p><strong>编写要求</strong>：</p><ol><li>准确无误无二义性</li><li>规范书写</li><li>允许适当调整</li><li>后续设计和编码的基础</li></ol><p><strong>需求评审四个方面</strong>：</p><ul><li>一致性(Consistency)：需求不矛盾</li><li>完整性(Completeness)：包含所有功能和性能</li><li>现实性(Feasibility)：现有技术可实现</li><li>有效性(Validity)：需求正确有效</li></ul><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点15】用例-Use-Case"><a href="#【知识点15】用例-Use-Case" class="headerlink" title="【知识点15】用例 (Use Case)"></a>【知识点15】用例 (Use Case)</h3><p><strong>定义</strong>：系统执行的活动，通常是对用户请求的响应。</p><p><strong>命名规则</strong>：动词-名词(Verb-Noun)，如”Create customer account”</p><p><strong>EBP(基本业务流程)</strong>：由一个人在特定地点为响应交易事件执行的任务，增加可衡量的业务价值。</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点16】识别用例的三种技术"><a href="#【知识点16】识别用例的三种技术" class="headerlink" title="【知识点16】识别用例的三种技术"></a>【知识点16】识别用例的三种技术</h3><p><strong>1. 用户目标技术(User Goal Technique)</strong><br>执行8步流程：识别所有潜在用户、按功能角色分类、按组织层次分类、采访用户收集目标、创建初步用例列表、去重和解决不一致、确定共享用例、与利益相关者审查。</p><p><strong>2. 事件分解技术(Event Decomposition)</strong><br>包含三种事件：</p><table><thead><tr><th>类型</th><th>定义</th><th>举例</th></tr></thead><tbody><tr><td>外部事件(External)</td><td>系统外部发生，由外部代理发起</td><td>顾客购买产品</td></tr><tr><td>时间事件(Temporal)</td><td>到达某时间点时发生</td><td>月末生成报表</td></tr><tr><td>状态事件(State)</td><td>系统内部某事发生时触发</td><td>库存低于再订购点</td></tr></tbody></table><p><em>理想技术假设(Perfect Technology Assumption)</em>：分析阶段只考虑最佳条件下需要响应的事件。排除Login&#x2F;Logout&#x2F;密码修改&#x2F;备份恢复等系统控制事件。</p><p><strong>3. CRUD技术</strong><br>CRUD &#x3D; Create&#x2F;Read&#x2F;Update&#x2F;Delete。主要用于验证用例完整性，确保每种数据的每个操作都有对应用例。</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点17】用例图关系-Use-Case-Relationships"><a href="#【知识点17】用例图关系-Use-Case-Relationships" class="headerlink" title="【知识点17】用例图关系 (Use Case Relationships)"></a>【知识点17】用例图关系 (Use Case Relationships)</h3><ul><li><strong><code>&lt;&lt;includes&gt;&gt;</code> 包含关系</strong>：执行用例A时必须执行用例B才完整。箭头方向：A → B（主用例指向被包含用例）。类比调用子程序。举例：处理订单 <code>&lt;&lt;includes&gt;&gt;</code> 验证客户信息。</li><li><strong><code>&lt;&lt;extend&gt;&gt;</code> 扩展关系</strong>：执行用例A时在某些条件下会执行B。箭头方向：B → A（扩展用例指向主用例）。特点：B是可选的扩展。举例：计算折扣 <code>&lt;&lt;extend&gt;&gt;</code> 处理订单。</li><li><strong>Generalization 泛化</strong>：继承关系，子用例指向父用例。</li></ul><p><strong>记忆口诀</strong>：”includes主指向被含（必须），extend被扩指向主（可选）”</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考（应用题画图核心）</p><hr><h3 id="【知识点18】完全开发的用例描述-Fully-Developed-Use-Case-Description"><a href="#【知识点18】完全开发的用例描述-Fully-Developed-Use-Case-Description" class="headerlink" title="【知识点18】完全开发的用例描述 (Fully Developed Use Case Description)"></a>【知识点18】完全开发的用例描述 (Fully Developed Use Case Description)</h3><p><strong>11个字段</strong>（必须全部记忆）：</p><table><thead><tr><th>#</th><th>字段</th><th>说明</th></tr></thead><tbody><tr><td>1</td><td>Use case name</td><td>动词-名词</td></tr><tr><td>2</td><td>Scenario</td><td>特定路径&#x2F;特殊情况</td></tr><tr><td>3</td><td>Triggering event</td><td>基于事件分解</td></tr><tr><td>4</td><td>Brief description</td><td>一句话描述</td></tr><tr><td>5</td><td>Actors</td><td>来自用例图</td></tr><tr><td>6</td><td>Related use cases</td><td><code>&lt;&lt;includes&gt;&gt;</code>关系</td></tr><tr><td>7</td><td>Stakeholders</td><td>感兴趣的人</td></tr><tr><td>8</td><td>Preconditions</td><td>开始前必须为真的条件</td></tr><tr><td>9</td><td>Post conditions</td><td>完成后必须为真的条件</td></tr><tr><td>10</td><td>Flow of activities</td><td>用户操作+系统响应（两列格式）</td></tr><tr><td>11</td><td>Exception conditions</td><td>可能出错的情况</td></tr></tbody></table><p><strong>重要程度</strong>：⭐⭐⭐ 必考（应用题核心）</p><hr><h3 id="【知识点19】系统顺序图-SSD-System-Sequence-Diagram"><a href="#【知识点19】系统顺序图-SSD-System-Sequence-Diagram" class="headerlink" title="【知识点19】系统顺序图 SSD (System Sequence Diagram)"></a>【知识点19】系统顺序图 SSD (System Sequence Diagram)</h3><p><strong>定义</strong>：UML顺序图的特殊情况，只显示Actor和:System。</p><p><strong>消息符号</strong>：</p><table><thead><tr><th>符号</th><th>含义</th><th>示例</th></tr></thead><tbody><tr><td><code>*</code></td><td>重复&#x2F;循环</td><td><code>*addItem()</code></td></tr><tr><td><code>[condition]</code></td><td>条件判断</td><td><code>[stockAvailable]</code></td></tr><tr><td><code>messageName</code></td><td>消息名(动词-名词)</td><td><code>createOrder</code></td></tr><tr><td><code>(params)</code></td><td>参数列表</td><td><code>(itemID, qty)</code></td></tr><tr><td><code>returnValue</code></td><td>返回值</td><td><code>orderID</code></td></tr></tbody></table><p><strong>框架</strong>：Loop(循环)&#x2F;Opt(可选)&#x2F;Alt(条件分支)</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考（应用题画图）</p><hr><h3 id="【知识点20】状态机图-State-Machine-Diagram"><a href="#【知识点20】状态机图-State-Machine-Diagram" class="headerlink" title="【知识点20】状态机图 (State Machine Diagram)"></a>【知识点20】状态机图 (State Machine Diagram)</h3><p><strong>定义</strong>：显示对象在状态和转换中的生命周期的UML图。</p><p><strong>核心概念</strong>：</p><ul><li><strong>状态(State)</strong>：对象生命周期中的条件</li><li><strong>转换(Transition)</strong>：从一种状态到另一种状态</li><li><strong>伪状态(Pseudo state)</strong>：起始点（黑色圆点）</li><li><strong>保护条件(Guard condition)</strong>：真&#x2F;假测试，决定转换是否触发</li><li><strong>行动表达(Action expression)</strong>：转换时执行的活动</li><li><strong>复合状态(Composite state)</strong>：包含其他状态</li><li><strong>并行路径(Concurrent paths)</strong>：复合状态中的独立路径</li></ul><p><strong>转换格式</strong>：<code>触发器名称[保护条件] / 行动表达</code></p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点21】域建模-Domain-Modeling"><a href="#【知识点21】域建模-Domain-Modeling" class="headerlink" title="【知识点21】域建模 (Domain Modeling)"></a>【知识点21】域建模 (Domain Modeling)</h3><p><strong>定义</strong>：识别问题域中的”事物”并建立域模型类图。</p><p><strong>两种识别技术</strong>：头脑风暴法(Brainstorming) 和 名词技术(Noun Technique)。</p><p><strong>域模型类图 vs 设计类图</strong>：</p><ul><li>域模型类图<strong>没有方法</strong>（只有属性和关系）</li><li>设计类图<strong>有方法</strong>（含可见性、Stereotype）</li></ul><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点22】类图关系-Class-Diagram-Relationships"><a href="#【知识点22】类图关系-Class-Diagram-Relationships" class="headerlink" title="【知识点22】类图关系 (Class Diagram Relationships)"></a>【知识点22】类图关系 (Class Diagram Relationships)</h3><p><strong>五种关系</strong>：</p><table><thead><tr><th>关系</th><th>符号</th><th>定义</th><th>举例</th></tr></thead><tbody><tr><td>关联(Association)</td><td>普通实线</td><td>类之间的连接</td><td>客户-订单</td></tr><tr><td>泛化(Generalization)</td><td>空心三角箭头</td><td>继承关系</td><td>Student→Person</td></tr><tr><td>聚合(Aggregation)</td><td>空心菱形</td><td>部分可独立</td><td>汽车-轮胎</td></tr><tr><td>组合(Composition)</td><td>实心菱形</td><td>部分不可分</td><td>人-头</td></tr><tr><td>依赖(Dependency)</td><td>虚线箭头</td><td>使用关系</td><td>类A使用方法参数类B</td></tr></tbody></table><p><strong>Multiplicity重数</strong>：0..1, 1, 0..<em>, 1..</em>, m..n</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点23】内聚-Cohesion-⭐⭐⭐"><a href="#【知识点23】内聚-Cohesion-⭐⭐⭐" class="headerlink" title="【知识点23】内聚 (Cohesion) ⭐⭐⭐"></a>【知识点23】内聚 (Cohesion) ⭐⭐⭐</h3><p><strong>定义</strong>：模块内部各元素之间联系的紧密程度。<strong>目标：高内聚</strong>。</p><p><strong>七级（由低到高）</strong>：</p><table><thead><tr><th>级别</th><th>名称</th><th>定义</th><th>例子</th></tr></thead><tbody><tr><td>1</td><td>偶然内聚(Coincidental)</td><td>模块内各部分无关系</td><td>把不相关的函数放一起</td></tr><tr><td>2</td><td>逻辑内聚(Logical)</td><td>模块执行逻辑上相似的功能</td><td>一个模块处理所有输入验证</td></tr><tr><td>3</td><td>时间内聚(Temporal)</td><td>模块内各部分在同一时间段执行</td><td>初始化模块</td></tr><tr><td>4</td><td>过程内聚(Procedural)</td><td>模块内各部分按特定顺序执行</td><td>读取文件→解析→验证</td></tr><tr><td>5</td><td>通信内聚(Communicational)</td><td>模块内各部分操作同一数据</td><td>更新客户地址和电话</td></tr><tr><td>6</td><td>顺序内聚(Sequential)</td><td>前一处理的输出是后一处理的输入</td><td>计算总和→计算平均</td></tr><tr><td>7</td><td>功能内聚(Functional)</td><td>模块只做一件事</td><td>计算折扣</td></tr></tbody></table><p><strong>记忆口诀</strong>：”巧逻时过通信顺功”</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点24】耦合-Coupling-⭐⭐⭐"><a href="#【知识点24】耦合-Coupling-⭐⭐⭐" class="headerlink" title="【知识点24】耦合 (Coupling) ⭐⭐⭐"></a>【知识点24】耦合 (Coupling) ⭐⭐⭐</h3><p><strong>定义</strong>：模块之间相互依赖的程度。<strong>目标：松耦合（低耦合）</strong>。</p><p><strong>七级（由低到高）</strong>：</p><table><thead><tr><th>级别</th><th>名称</th><th>定义</th><th>例子</th></tr></thead><tbody><tr><td>1</td><td>非直接耦合(No Direct)</td><td>模块间无直接联系</td><td>独立模块</td></tr><tr><td>2</td><td>数据耦合(Data)</td><td>通过参数传递简单数据</td><td>传递一个整数参数</td></tr><tr><td>3</td><td>标记耦合(Stamp)</td><td>传递复合数据结构</td><td>传递一个对象&#x2F;结构体</td></tr><tr><td>4</td><td>控制耦合(Control)</td><td>传递控制信息</td><td>传递一个标志位决定行为</td></tr><tr><td>5</td><td>外部耦合(External)</td><td>共享外部数据格式</td><td>共享全局常量</td></tr><tr><td>6</td><td>公共耦合(Common)</td><td>共享全局数据区</td><td>共享全局变量</td></tr><tr><td>7</td><td>内容耦合(Content)</td><td>直接访问另一模块内部</td><td>跳转到另一模块内部</td></tr></tbody></table><p><strong>记忆口诀</strong>：”非数标控外公内”</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点25】SOLID设计原则"><a href="#【知识点25】SOLID设计原则" class="headerlink" title="【知识点25】SOLID设计原则"></a>【知识点25】SOLID设计原则</h3><ul><li><strong>SRP(Single Responsibility Principle)</strong>：一个类只有一个引起变化的原因。违反：OrderProcessor同时处理订单、发邮件、存数据库。</li><li><strong>OCP(Open-Closed Principle)</strong>：对扩展开放，对修改关闭。通过抽象&#x2F;接口实现。</li><li><strong>LSP(Liskov Substitution Principle)</strong>：子类型必须能替换基类型而不改变程序正确性。</li><li><strong>ISP(Interface Segregation Principle)</strong>：客户端不应依赖不使用的接口。将大接口拆分为小接口。</li><li><strong>DIP(Dependency Inversion Principle)</strong>：高层模块不应依赖低层模块，都应依赖抽象。</li></ul><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点26】三层架构-Three-Layer-Architecture"><a href="#【知识点26】三层架构-Three-Layer-Architecture" class="headerlink" title="【知识点26】三层架构 (Three-Layer Architecture)"></a>【知识点26】三层架构 (Three-Layer Architecture)</h3><ul><li><strong>View层(表示层)</strong>：用户界面，接收输入&#x2F;展示输出</li><li><strong>Domain层(域层&#x2F;业务逻辑层)</strong>：核心业务规则和逻辑</li><li><strong>Data Access层(数据访问层)</strong>：数据库交互，数据持久化</li></ul><p><strong>Controller模式</strong>：UI → Controller → Domain → DataAccess</p><p><strong>用例实现流程</strong>：SSD → 添加Controller → 分配到Domain → 访问DataAccess</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考（应用题架构设计）</p><hr><h3 id="【知识点27】设计类Stereotype"><a href="#【知识点27】设计类Stereotype" class="headerlink" title="【知识点27】设计类Stereotype"></a>【知识点27】设计类Stereotype</h3><p><strong>五种类型</strong>：Entity（域对象&#x2F;业务实体）、Boundary（界面边界）、Control（控制器&#x2F;协调器）、Data Access（数据访问对象）、Persistent（持久化对象）</p><p><strong>属性可见性</strong>：<code>+</code> public, <code>-</code> private, <code>#</code> protected, <code>~</code> package</p><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点28】设计模式-Design-Patterns"><a href="#【知识点28】设计模式-Design-Patterns" class="headerlink" title="【知识点28】设计模式 (Design Patterns)"></a>【知识点28】设计模式 (Design Patterns)</h3><p><strong>23种GoF设计模式</strong>：</p><ul><li><strong>创建型(5种)</strong>：Factory, Singleton, Builder, Prototype, Abstract Factory</li><li><strong>结构型(7种)</strong>：Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy</li><li><strong>行为型(11种)</strong>：Observer, Strategy, Command, Template Method, Iterator, State, Chain of Responsibility, Mediator, Memento, Visitor, Interpreter</li></ul><p><strong>四个重点模式详解</strong>：</p><ul><li><strong>Factory</strong>：封装对象创建逻辑，客户端无需知道具体类名</li><li><strong>Singleton</strong>：确保只有一个实例，提供全局访问点</li><li><strong>Adapter</strong>：将一个接口转换为客户端期望的接口</li><li><strong>Controller</strong>：将系统事件处理分配给协调类</li></ul><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点29】用户界面设计-UI-Design"><a href="#【知识点29】用户界面设计-UI-Design" class="headerlink" title="【知识点29】用户界面设计 (UI Design)"></a>【知识点29】用户界面设计 (UI Design)</h3><p><strong>核心概念</strong>：</p><ul><li><strong>用户界面(UI)</strong>：直接涉及人类用户的输入输出</li><li><strong>系统界面(SI)</strong>：需要最少人工干预的自动化输入输出</li><li><strong>HCI(人机交互)</strong>：研究用户与计算机系统交互效率和效果的学科</li><li><strong>Visibility(可见性)</strong>：控件必须对用户可见</li><li><strong>Affordance(可供性)</strong>：外观应暗示其功能</li></ul><p><strong>UI设计七大指南</strong>：一致性(Consistency)、快捷键(Shortcuts)、反馈(Feedback)、对话闭合(Dialog Closure)、错误处理(Error Handling with Guidance)、操作可逆(Reversal of Actions)、减轻短期记忆负担(Reduce Short Term Memory Load)</p><p><strong>记忆口诀</strong>：”一快反闭错撤记”</p><p><strong>以用户为中心设计原则</strong>：早期关注用户和工作、评估设计确保可用性、使用迭代开发</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点30】V-V-Verification-Validation"><a href="#【知识点30】V-V-Verification-Validation" class="headerlink" title="【知识点30】V&amp;V (Verification &amp; Validation)"></a>【知识点30】V&amp;V (Verification &amp; Validation)</h3><ul><li><strong>Verification(验证)</strong>：”Are we building the product right?” — 检查是否正确实现了规格说明（关注过程）</li><li><strong>Validation(确认)</strong>：”Are we building the right product?” — 检查是否满足用户真实需求（关注结果）</li></ul><p><strong>SQA(Software Quality Assurance)</strong>：软件质量保证。测试只是SQA的一个元素。质量必须内建于开发过程，不能事后用测试来添加。</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点31】测试组织-Testing-Organization"><a href="#【知识点31】测试组织-Testing-Organization" class="headerlink" title="【知识点31】测试组织 (Testing Organization)"></a>【知识点31】测试组织 (Testing Organization)</h3><ul><li><strong>Developer(开发者)</strong>：了解系统，但倾向温和测试，被交付驱动</li><li><strong>ITG(Independent Test Group, 独立测试组)</strong>：不了解系统但倾向破坏，被质量驱动</li></ul><p><strong>正确做法</strong>：开发者做单元测试+集成测试，然后交给ITG。ITG应在分析和设计阶段就参与。</p><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点32】集成测试策略"><a href="#【知识点32】集成测试策略" class="headerlink" title="【知识点32】集成测试策略"></a>【知识点32】集成测试策略</h3><ul><li><strong>大爆炸测试(Big-bang)</strong>：所有模块一次性集成。简单但难以定位错误。</li><li><strong>自顶向下(Top-down)</strong>：从顶层开始，逐步加入底层。**需要Stub(桩模块)**模拟底层。</li><li><strong>自底向上(Bottom-up)</strong>：从底层开始，逐步加入顶层。**需要Driver(驱动模块)**模拟上层。</li></ul><p><strong>Driver</strong>：模拟上层模块调用被测模块<br><strong>Stub</strong>：模拟被测模块调用的下层模块</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点33】测试级别"><a href="#【知识点33】测试级别" class="headerlink" title="【知识点33】测试级别"></a>【知识点33】测试级别</h3><table><thead><tr><th>级别</th><th>对象</th><th>执行者</th></tr></thead><tbody><tr><td>单元测试(Unit)</td><td>单个模块&#x2F;类</td><td>开发者</td></tr><tr><td>集成测试(Integration)</td><td>模块间接口</td><td>开发者+ITG</td></tr><tr><td>系统测试(System)</td><td>整个系统</td><td>ITG</td></tr><tr><td>验收测试(Acceptance)</td><td>用户需求</td><td>用户</td></tr></tbody></table><p><strong>回归测试(Regression)</strong>：修改后重新测试确保无新错误<br><strong>冒烟测试(Smoke)</strong>：快速检查核心功能是否正常</p><p><strong>重要程度</strong>：⭐⭐⭐ 必考</p><hr><h3 id="【知识点34】系统测试四种类型"><a href="#【知识点34】系统测试四种类型" class="headerlink" title="【知识点34】系统测试四种类型"></a>【知识点34】系统测试四种类型</h3><table><thead><tr><th>类型</th><th>目的</th></tr></thead><tbody><tr><td>恢复测试(Recovery)</td><td>测试系统从故障中恢复的能力</td></tr><tr><td>安全测试(Security)</td><td>测试安全机制的有效性</td></tr><tr><td>压力测试(Stress)</td><td>测试系统在极限条件下的表现</td></tr><tr><td>性能测试(Performance)</td><td>测试系统的响应时间和吞吐量</td></tr></tbody></table><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点35】安装部署方式"><a href="#【知识点35】安装部署方式" class="headerlink" title="【知识点35】安装部署方式"></a>【知识点35】安装部署方式</h3><table><thead><tr><th>方式</th><th>定义</th><th>优点</th><th>缺点</th></tr></thead><tbody><tr><td>直接安装(Direct)</td><td>直接替换旧系统</td><td>成本低</td><td>风险高</td></tr><tr><td>并行安装(Parallel)</td><td>新旧系统同时运行</td><td>风险低</td><td>成本高</td></tr><tr><td>分阶段安装(Phased)</td><td>逐步替换</td><td>平衡风险和成本</td><td>时间长</td></tr></tbody></table><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点36】形式化方法"><a href="#【知识点36】形式化方法" class="headerlink" title="【知识点36】形式化方法"></a>【知识点36】形式化方法</h3><p><strong>有穷状态机 FSM (Finite State Machine)</strong></p><ul><li><strong>5元组</strong>：$(J, K, T, S, F)$<ul><li>J：有穷非空状态集</li><li>K：有穷非空输入集</li><li>T：转换函数 $(J-F) \times K \to J$</li><li>S：初始状态</li><li>F：终态集</li></ul></li><li><strong>6元组扩展</strong>：加入谓词集P</li></ul><p><strong>Petri网 (Petri Net)</strong></p><ul><li><strong>4元组</strong>：$(P, T, I, O)$<ul><li>P：位置集（圆圈）</li><li>T：转换集（短直线）</li><li>I：输入函数（位置→转换）</li><li>O：输出函数（转换→位置）</li></ul></li><li><strong>标记(Marking)</strong>：权标(token)分配</li><li><strong>激发条件</strong>：每个输入位置的权标数 ≥ 该位置到转换的线数</li><li><strong>禁止线(Inhibitor arc)</strong>：权标为零时转换才能触发</li></ul><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点37】CRC卡技术"><a href="#【知识点37】CRC卡技术" class="headerlink" title="【知识点37】CRC卡技术"></a>【知识点37】CRC卡技术</h3><p><strong>CRC</strong> &#x3D; Class &#x2F; Responsibility &#x2F; Collaborator</p><ul><li>Class：类名</li><li>Responsibility：该类的职责</li><li>Collaborator：与该类协作的其他类</li></ul><p><strong>重要程度</strong>：⭐ 一般</p><hr><h3 id="【知识点38】版本管理"><a href="#【知识点38】版本管理" class="headerlink" title="【知识点38】版本管理"></a>【知识点38】版本管理</h3><p><strong>SCCS(Source Code Control System)</strong>：源代码控制系统</p><p><strong>版本类型</strong>：Alpha（内部开发测试）、Beta（外部用户测试）、Production（正式发布）、Maintenance（维护修复）</p><p><strong>重要程度</strong>：⭐ 一般</p><hr><h3 id="【知识点39】质量保证评审方法"><a href="#【知识点39】质量保证评审方法" class="headerlink" title="【知识点39】质量保证评审方法"></a>【知识点39】质量保证评审方法</h3><table><thead><tr><th>维度</th><th>Walkthrough(走查)</th><th>Inspection(审查)</th></tr></thead><tbody><tr><td>正式程度</td><td>非正式</td><td>正式</td></tr><tr><td>参与者</td><td>开发团队</td><td>跨职能团队</td></tr><tr><td>文档记录</td><td>简单</td><td>详细</td></tr><tr><td>效率</td><td>较低</td><td>较高</td></tr></tbody></table><p><strong>重要程度</strong>：⭐⭐ 高频</p><hr><h3 id="【知识点40】氛围编程-Vibe-Coding"><a href="#【知识点40】氛围编程-Vibe-Coding" class="headerlink" title="【知识点40】氛围编程 (Vibe Coding)"></a>【知识点40】氛围编程 (Vibe Coding)</h3><p><strong>定义</strong>：由Andrej Karpathy（2025年2月）提出的AI辅助编程方式。</p><p><strong>流程</strong>：自然语言需求→AI生成代码→运行→反馈修改</p><p><strong>工具</strong>：ChatGPT, Cursor AI, GitHub Copilot</p><p><strong>重要程度</strong>：⭐ 一般（新知识点）</p><hr><h2 id="任务二：考试知识库"><a href="#任务二：考试知识库" class="headerlink" title="任务二：考试知识库"></a>任务二：考试知识库</h2><h3 id="选择题考点精选（30道高频）"><a href="#选择题考点精选（30道高频）" class="headerlink" title="选择题考点精选（30道高频）"></a>选择题考点精选（30道高频）</h3><p><strong>题1</strong>：软件危机中IBM OS&#x2F;360项目的投资金额为？<br>A. 1亿美元 B. 5亿美元 C. 10亿美元 D. 5000万美元<br><strong>答案：B</strong> | 干扰项：A太小，C太大</p><p><strong>题2</strong>：以下哪个不属于敏捷宣言的核心价值观？<br>A. 个体和交互胜过过程和工具 B. 详细文档胜过工作软件<br>C. 客户合作胜过合同谈判 D. 响应变化胜过遵循计划<br><strong>答案：B</strong> | 干扰项：正确的是”工作软件胜过文档”</p><p><strong>题3</strong>：FURPS+中”R”代表什么？<br>A. Requirements B. Reliability C. Reusability D. Response<br><strong>答案：B</strong> | Reliability可靠性</p><p><strong>题4</strong>：<code>&lt;&lt;includes&gt;&gt;</code>的箭头方向是？<br>A. 被包含→主用例 B. 主用例→被包含 C. 双向 D. 无箭头<br><strong>答案：B</strong> | 关键区分点</p><p><strong>题5</strong>：聚合关系使用的符号是？<br>A. 实心菱形 B. 空心菱形 C. 实心三角 D. 空心三角<br><strong>答案：B</strong> | 组合是实心菱形</p><p><strong>题6</strong>：以下哪种内聚最强？<br>A. 通信内聚 B. 过程内聚 C. 功能内聚 D. 顺序内聚<br><strong>答案：C</strong> | 功能内聚是最高级</p><p><strong>题7</strong>：以下哪种耦合最弱？<br>A. 数据耦合 B. 标记耦合 C. 非直接耦合 D. 控制耦合<br><strong>答案：C</strong> | 非直接耦合是最低级</p><p><strong>题8</strong>：螺旋模型的核心特征是？<br>A. 迭代开发 B. 风险驱动 C. 原型驱动 D. 文档驱动<br><strong>答案：B</strong> | 风险驱动是螺旋模型最大特点</p><p><strong>题9</strong>：Verification关注的是什么？<br>A. 产品是否满足用户需求 B. 产品是否正确实现了规格说明<br>C. 产品是否通过验收测试 D. 产品是否有好的性能<br><strong>答案：B</strong> | Verification&#x3D;过程正确性</p><p><strong>题10</strong>：自顶向下集成测试需要什么？<br>A. Driver B. Stub C. 两者都需要 D. 两者都不需要<br><strong>答案：B</strong> | 自底向上需要Driver</p><p><strong>题11</strong>：域模型类图与设计类图的区别是？<br>A. 域模型有方法 B. 设计类图没有方法 C. 域模型没有方法 D. 两者完全相同<br><strong>答案：C</strong> | 域模型只有属性和关系</p><p><strong>题12</strong>：XP的提出者是？<br>A. Booch B. Kent Beck C. Rumbaugh D. Jacobson<br><strong>答案：B</strong> | 1996年提出</p><p><strong>题13</strong>：以下哪种事件属于时间事件？<br>A. 顾客下单 B. 月末生成报表 C. 库存低于阈值 D. 用户登录<br><strong>答案：B</strong> | 时间事件&#x3D;到达时间点触发</p><p><strong>题14</strong>：以下哪项不是理想技术假设排除的事件？<br>A. 登录 B. 备份数据库 C. 客户下单 D. 修改密码<br><strong>答案：C</strong> | 客户下单是业务事件，不排除</p><p><strong>题15</strong>：SSD中*号表示什么？<br>A. 条件判断 B. 循环&#x2F;重复 C. 可选 D. 返回值<br><strong>答案：B</strong> | *表示重复</p><p><strong>题16</strong>：以下哪种安装方式风险最高？<br>A. 直接安装 B. 并行安装 C. 分阶段安装 D. 灰度安装<br><strong>答案：A</strong> | 直接替换，出问题无法回退</p><p><strong>题17</strong>：Petri网的4元组是？<br>A. (J,K,T,S,F) B. (P,T,I,O) C. (C,R,A,L) D. (P,T,I,M)<br><strong>答案：B</strong> | FSM是5元组(J,K,T,S,F)</p><p><strong>题18</strong>：Walkthrough和Inspection的主要区别是？<br>A. Walkthrough更正式 B. Inspection更正式 C. 没有区别 D. Walkthrough由用户执行<br><strong>答案：B</strong> | Inspection是正式评审</p><p><strong>题19</strong>：Controller模式中，请求的正确流向是？<br>A. UI→Domain→DataAccess B. UI→Controller→Domain→DataAccess<br>C. Controller→UI→Domain D. Domain→Controller→UI<br><strong>答案：B</strong> | Controller是中间协调者</p><p><strong>题20</strong>：以下哪个不是设计类的Stereotype？<br>A. Entity B. Boundary C. Interface D. Control<br><strong>答案：C</strong> | 五种是Entity&#x2F;Boundary&#x2F;Control&#x2F;DataAccess&#x2F;Persistent</p><p><strong>题21</strong>：喷泉模型的主要特点是？<br>A. 线性顺序 B. 风险驱动 C. 对象驱动，阶段重叠 D. 严格文档<br><strong>答案：C</strong> | 面向对象、各阶段重叠</p><p><strong>题22</strong>：结构化程序设计中严格控制的是什么语句？<br>A. IF B. WHILE C. GOTO D. RETURN<br><strong>答案：C</strong> | Dijkstra主张消除GOTO</p><p><strong>题23</strong>：变换型系统结构包含？<br>A. 事务中心 B. 传入部分→变换中心→传出部分 C. 并行处理 D. 递归调用<br><strong>答案：B</strong> | 事务型包含事务中心</p><p><strong>题24</strong>：Alpha测试和Beta测试的区别是？<br>A. Alpha由用户执行 B. Beta在开发环境中执行 C. Alpha在开发环境中执行 D. 没有区别<br><strong>答案：C</strong> | Alpha&#x3D;开发环境，Beta&#x3D;真实用户环境</p><p><strong>题25</strong>：SRP原则的含义是？<br>A. 一个系统只有一个类 B. 一个类只有一个变化原因 C. 一个方法只做一件事 D. 一个项目只有一个开发者<br><strong>答案：B</strong> | Single Responsibility &#x3D; 一个变化原因</p><p><strong>题26</strong>：以下哪个不是系统测试类型？<br>A. 恢复测试 B. 单元测试 C. 安全测试 D. 压力测试<br><strong>答案：B</strong> | 单元测试是单独的测试级别</p><p><strong>题27</strong>：需求评审的四个方面不包括？<br>A. 一致性 B. 完整性 C. 创新性 D. 有效性<br><strong>答案：C</strong> | 四方面：一致性&#x2F;完整性&#x2F;现实性&#x2F;有效性</p><p><strong>题28</strong>：以下哪个不是CRUD操作？<br>A. Create B. Replace C. Update D. Delete<br><strong>答案：B</strong> | CRUD &#x3D; Create&#x2F;Read&#x2F;Update&#x2F;Delete</p><p><strong>题29</strong>：OOA的全称是？<br>A. Object-Oriented Architecture B. Object-Oriented Analysis<br>C. Object-Oriented Application D. Open-Oriented Analysis<br><strong>答案：B</strong> | 面向对象分析</p><p><strong>题30</strong>：有穷状态机的初始状态用哪个字母表示？<br>A. J B. K C. S D. F<br><strong>答案：C</strong> | S&#x3D;初始状态，F&#x3D;终态集</p><hr><h3 id="简答题考点精选（10道，标准答案结构）"><a href="#简答题考点精选（10道，标准答案结构）" class="headerlink" title="简答题考点精选（10道，标准答案结构）"></a>简答题考点精选（10道，标准答案结构）</h3><p><strong>简答题1</strong>：简述软件危机的主要表现和产生原因。<br><strong>答题结构</strong>：表现5条(每条1分) + 原因6条(每条1分)<br><strong>关键词</strong>：需求不满足、成本超标、质量差、难维护、速度跟不上</p><p><strong>简答题2</strong>：简述Boehm的七条基本原理。<br><strong>答题结构</strong>：逐条列举(每条1分)<br><strong>关键词</strong>：分阶段计划、阶段评审、产品控制、现代技术、可审查、少而精、不断改进</p><p><strong>简答题3</strong>：简述敏捷宣言的四大核心价值观。<br><strong>答题结构</strong>：四组对比(每组2分)<br><strong>关键词</strong>：个体交互&gt;过程工具、工作软件&gt;文档、客户合作&gt;谈判、响应变化&gt;计划</p><p><strong>简答题4</strong>：比较 <code>&lt;&lt;includes&gt;&gt;</code> 和 <code>&lt;&lt;extend&gt;&gt;</code> 的区别。<br><strong>答题结构</strong>：定义(各2分) + 箭头方向(各1分) + 举例(各1分)<br><strong>关键词</strong>：必须执行&#x2F;可选执行、箭头A→B&#x2F;箭头B→A</p><p><strong>简答题5</strong>：解释内聚和耦合的概念及追求”高内聚低耦合”的原因。<br><strong>答题结构</strong>：内聚定义+7级(3分) + 耦合定义+7级(3分) + 原因(2分)<br><strong>关键词</strong>：模块内部紧密度、模块间依赖度、独立性、可维护性、可重用性</p><p><strong>简答题6</strong>：简述SOLID五大设计原则。<br><strong>答题结构</strong>：每条原则名称+简要解释(每条2分)<br><strong>关键词</strong>：单一职责、开闭、里氏替换、接口隔离、依赖倒置</p><p><strong>简答题7</strong>：解释Verification和Validation的区别。<br><strong>答题结构</strong>：定义(各3分) + 区别(2分)<br><strong>关键词</strong>：building the product right &#x2F; building the right product</p><p><strong>简答题8</strong>：简述三种集成测试策略及其优缺点。<br><strong>答题结构</strong>：三种策略(各3分)<br><strong>关键词</strong>：大爆炸&#x2F;自顶向下(需Stub)&#x2F;自底向上(需Driver)</p><p><strong>简答题9</strong>：简述FURPS+需求分类模型。<br><strong>答题结构</strong>：每个字母含义(各1分) + +号扩展(1分)<br><strong>关键词</strong>：Functional&#x2F;Usability&#x2F;Reliability&#x2F;Performance&#x2F;Security</p><p><strong>简答题10</strong>：简述UI设计的七大指南。<br><strong>答题结构</strong>：每条名称+简要解释(每条1分)<br><strong>关键词</strong>：一致性、快捷键、反馈、对话闭合、错误处理、操作可逆、减轻记忆</p><hr><h3 id="应用题考点精选（50分重点，详细解题步骤）"><a href="#应用题考点精选（50分重点，详细解题步骤）" class="headerlink" title="应用题考点精选（50分重点，详细解题步骤）"></a>应用题考点精选（50分重点，详细解题步骤）</h3><p><strong>应用题类型1：完整需求分析案例（最可能出大题）</strong></p><ul><li><strong>典型题目</strong>：给定一个业务系统场景，完成完整的需求分析。</li><li><strong>解题步骤</strong>：识别利益相关者（列出内部&#x2F;外部等）；事件分解（识别外部&#x2F;时间&#x2F;状态事件）；画用例图（画矩形系统边界，椭圆写用例名，小人画参与者，实线连接参与者和用例，标注 <code>&lt;&lt;includes&gt;&gt;</code> 和 <code>&lt;&lt;extend&gt;&gt;</code> 关系）；编写用例描述（选取1-2个用例写完整11字段）；画SSD（Actor→:System的消息序列）。</li><li><strong>评分点</strong>：用例图(15分) + 用例描述(10分) + SSD(10分) + 分析过程(5分)</li></ul><p><strong>应用题类型2：类图绘制与分析</strong></p><ul><li><strong>典型题目</strong>：给定业务场景，画域模型类图或设计类图。</li><li><strong>解题步骤</strong>：识别类（名词技术&#x2F;头脑风暴）；确定属性；确定关系（关联&#x2F;泛化&#x2F;聚合&#x2F;组合）；标注Multiplicity重数；如果是设计类图需添加方法、可见性、Stereotype。</li><li><strong>评分点</strong>：类识别(5分) + 关系正确(10分) + 重数(5分) + 完整性(5分)</li></ul><p><strong>应用题类型3：架构设计分析</strong></p><ul><li><strong>典型题目</strong>：分析系统架构问题，提出设计方案。</li><li><strong>解题步骤</strong>：分析当前架构的问题（内聚&#x2F;耦合分析）；识别违反的设计原则（SOLID）；提出重构方案（三层架构、设计模式）；画重构后的类图&#x2F;架构图；说明改进效果。</li><li><strong>评分点</strong>：问题分析(10分) + 方案(10分) + 图(10分) + 说明(5分)</li></ul><p><strong>应用题类型4：测试策略设计</strong></p><ul><li><strong>典型题目</strong>：为给定系统设计测试方案。</li><li><strong>解题步骤</strong>：确定测试级别（单元&#x2F;集成&#x2F;系统&#x2F;验收）；选择集成策略（自顶向下&#x2F;自底向上）；设计Driver&#x2F;Stub；设计测试用例；规划回归测试和冒烟测试。</li><li><strong>评分点</strong>：测试策略(10分) + 集成方案(10分) + 测试用例(10分)</li></ul><p><strong>应用题类型5：状态机图&#x2F;活动图绘制</strong></p><ul><li><strong>典型题目</strong>：给定对象生命周期或业务流程，画图。</li><li><strong>解题步骤</strong>：状态机图（确定所有状态→确定转换→添加保护条件和行动表达→检查复合状态和并行路径）；活动图（确定起止节点→识别活动→添加判断→添加Fork&#x2F;Join→连接）。</li><li><strong>评分点</strong>：状态&#x2F;活动识别(5分) + 转换&#x2F;连接正确(10分) + 保护条件(5分) + 完整性(5分)</li></ul><hr><h2 id="任务三：软件工程模型详细整理"><a href="#任务三：软件工程模型详细整理" class="headerlink" title="任务三：软件工程模型详细整理"></a>任务三：软件工程模型详细整理</h2><h3 id="瀑布模型-Waterfall-Model"><a href="#瀑布模型-Waterfall-Model" class="headerlink" title="瀑布模型 (Waterfall Model)"></a>瀑布模型 (Waterfall Model)</h3><p><strong>定义</strong>：线性顺序的软件开发模型，各阶段按顺序执行，前一阶段完成后才进入下一阶段。</p><p><strong>原理</strong>：基于工程方法，假设需求可以在早期完整确定。</p><p><strong>生命周期流程</strong>：需求分析 → 系统设计 → 详细设计 → 编码 → 测试 → 部署维护（每个阶段有验证和确认环节）。</p><p><strong>优缺点与适用场景</strong>：</p><ul><li><strong>优点</strong>：原理简单易掌握，便于质量管理和项目跟踪，适合结构化方法。</li><li><strong>缺点</strong>：缺乏灵活性，不能适应需求变化，回溯性差，用户很晚才能看到产品。</li><li><strong>适用项目</strong>：需求明确且稳定、技术风险低、大型正规项目。</li></ul><h3 id="快速原型模型-Rapid-Prototyping"><a href="#快速原型模型-Rapid-Prototyping" class="headerlink" title="快速原型模型 (Rapid Prototyping)"></a>快速原型模型 (Rapid Prototyping)</h3><p><strong>定义</strong>：通过快速构建可运行的原型系统来理解和确认需求。</p><p><strong>优缺点与适用场景</strong>：</p><ul><li><strong>优点</strong>：增强交流、及早发现问题、降低风险。</li><li><strong>缺点</strong>：缺乏工具支持、原型可能被误当最终产品、难以彻底测试。</li><li><strong>适用</strong>：需求不明确的交互式系统。</li></ul><h3 id="增量模型-Incremental-Model"><a href="#增量模型-Incremental-Model" class="headerlink" title="增量模型 (Incremental Model)"></a>增量模型 (Incremental Model)</h3><p><strong>定义</strong>：以组件为单位分批交付软件，可看作重复执行的多个瀑布模型。</p><p><strong>优缺点与适用场景</strong>：</p><ul><li><strong>优点</strong>：分批交付，用户及早使用，降低开发风险，灵活调整开发顺序。</li><li><strong>缺点</strong>：总体需求定义困难，体系结构必须开放，每次增量必须可测试。</li><li><strong>适用</strong>：需求可分优先级、需要分批交付的大型系统。</li></ul><h3 id="螺旋模型-Spiral-Model-⭐⭐⭐"><a href="#螺旋模型-Spiral-Model-⭐⭐⭐" class="headerlink" title="螺旋模型 (Spiral Model) ⭐⭐⭐"></a>螺旋模型 (Spiral Model) ⭐⭐⭐</h3><p><strong>定义</strong>：结合瀑布和原型，强调风险分析的迭代模型。</p><p><strong>原理</strong>：风险驱动(Risk-driven)</p><p><strong>生命周期流程</strong>（每轮四象限）：计划(Planning) → 风险分析(Risk Analysis) → 工程(Engineering) → 客户评估(Customer Evaluation)</p><p><strong>优缺点与适用场景</strong>：</p><ul><li><strong>优点</strong>：风险驱动、灵活、适合大型项目。</li><li><strong>缺点</strong>：成本高、需要风险评估经验、不适合小项目。</li><li><strong>适用</strong>：大型、复杂、高风险的系统。</li></ul><h3 id="喷泉模型-Fountain-Model"><a href="#喷泉模型-Fountain-Model" class="headerlink" title="喷泉模型 (Fountain Model)"></a>喷泉模型 (Fountain Model)</h3><p><strong>定义</strong>：面向对象的开发模型，各阶段相互重叠。</p><p><strong>五大特点</strong>：阶段重叠（并行性）；分析阶段消耗资源最多；返回低层无资源消耗；”分析一点、设计一点”；对象驱动。</p><h3 id="V模型-V-Model"><a href="#V模型-V-Model" class="headerlink" title="V模型 (V-Model)"></a>V模型 (V-Model)</h3><p><strong>定义</strong>：瀑布模型的扩展，强调测试与开发阶段的对应关系。</p><p><strong>对应关系</strong>：需求分析↔验收测试；系统设计↔系统测试；详细设计↔集成测试；编码↔单元测试。</p><h3 id="RUP-Rational-Unified-Process"><a href="#RUP-Rational-Unified-Process" class="headerlink" title="RUP (Rational Unified Process)"></a>RUP (Rational Unified Process)</h3><p><strong>定义</strong>：Rational公司推出的完整软件过程框架。</p><p><strong>六大最佳实践</strong>：迭代式开发、管理需求、基于构件的体系结构、可视化建模(UML)、验证软件质量、控制变更。</p><p><strong>四个阶段</strong>：初始(Inception)→细化(Elaboration)→构建(Construction)→交付(Transition)。</p><h3 id="敏捷开发-Agile-Development"><a href="#敏捷开发-Agile-Development" class="headerlink" title="敏捷开发 (Agile Development)"></a>敏捷开发 (Agile Development)</h3><p><strong>定义</strong>：2001年17位专家联合发布敏捷宣言。</p><p><strong>四大价值观</strong>：</p><ol><li>个体和交互 &gt; 过程和工具</li><li>可以工作的软件 &gt; 面面俱到的文档</li><li>客户合作 &gt; 合同谈判</li><li>响应变化 &gt; 遵循计划</li></ol><h3 id="XP-极限编程-Extreme-Programming"><a href="#XP-极限编程-Extreme-Programming" class="headerlink" title="XP 极限编程 (Extreme Programming)"></a>XP 极限编程 (Extreme Programming)</h3><p><strong>提出者</strong>：Kent Beck, 1996年</p><p><strong>十大核心实践</strong>：以人为本、简单设计、结对编程(Pair Programming)、持续集成(Continuous Integration)、短周期迭代(1-2周)、代码重构(Refactoring)、测试驱动开发(TDD)、现场客户(On-site Customer)、可持续的开发速度、开放的工作环境。</p><h3 id="Scrum"><a href="#Scrum" class="headerlink" title="Scrum"></a>Scrum</h3><p><strong>定义</strong>：一种敏捷框架，使用固定时间盒(Sprint)进行迭代开发。</p><p><strong>三个角色</strong>：Product Owner, Scrum Master, Development Team<br><strong>五个事件</strong>：Sprint, Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective<br><strong>三个工件</strong>：Product Backlog, Sprint Backlog, Increment</p><h3 id="模型对比总表"><a href="#模型对比总表" class="headerlink" title="模型对比总表"></a>模型对比总表</h3><table><thead><tr><th>模型</th><th>核心特征</th><th>适用场景</th><th>最大优点</th><th>最大缺点</th></tr></thead><tbody><tr><td>瀑布</td><td>线性顺序</td><td>需求明确</td><td>简单规范</td><td>不灵活</td></tr><tr><td>原型</td><td>快速验证</td><td>需求不清</td><td>及早确认需求</td><td>原型被误用</td></tr><tr><td>增量</td><td>分批交付</td><td>大型系统</td><td>降低风险</td><td>架构设计难</td></tr><tr><td>螺旋</td><td>风险驱动</td><td>高风险大型</td><td>风险管理</td><td>成本高</td></tr><tr><td>喷泉</td><td>对象驱动</td><td>OO项目</td><td>阶段重叠</td><td>管理复杂</td></tr><tr><td>V模型</td><td>测试对应</td><td>质量要求高</td><td>测试前置</td><td>仍线性</td></tr><tr><td>RUP</td><td>最佳实践</td><td>大型团队</td><td>完整框架</td><td>学习成本高</td></tr><tr><td>敏捷</td><td>响应变化</td><td>需求变化大</td><td>快速交付</td><td>文档不足</td></tr><tr><td>XP</td><td>工程实践</td><td>小型团队</td><td>TDD&#x2F;结对</td><td>难规模化</td></tr><tr><td>Scrum</td><td>管理框架</td><td>产品开发</td><td>透明度高</td><td>依赖团队</td></tr></tbody></table><hr><h2 id="任务四：需求工程详细整理"><a href="#任务四：需求工程详细整理" class="headerlink" title="任务四：需求工程详细整理"></a>任务四：需求工程详细整理</h2><h3 id="需求获取-Requirements-Elicitation"><a href="#需求获取-Requirements-Elicitation" class="headerlink" title="需求获取 (Requirements Elicitation)"></a>需求获取 (Requirements Elicitation)</h3><p><strong>六种方法</strong>：</p><table><thead><tr><th>方法</th><th>流程</th><th>优点</th><th>缺点</th><th>适用场景</th></tr></thead><tbody><tr><td>访谈</td><td>准备→讨论→记录→跟进</td><td>深入、灵活</td><td>耗时、主观</td><td>关键利益相关者</td></tr><tr><td>问卷</td><td>设计→发放→收集→分析</td><td>大范围、标准化</td><td>回收率低、不深入</td><td>大量用户</td></tr><tr><td>文档审查</td><td>收集→阅读→提取→整理</td><td>客观、系统</td><td>可能过时</td><td>现有系统分析</td></tr><tr><td>观察</td><td>选择→观察→记录→分析</td><td>真实、直接</td><td>霍桑效应</td><td>业务流程</td></tr><tr><td>供应商研究</td><td>搜索→评估→比较</td><td>技术先进</td><td>可能不适用</td><td>技术方案</td></tr><tr><td>用户反馈</td><td>收集→分类→分析</td><td>实时、有价值</td><td>零散</td><td>活跃用户</td></tr></tbody></table><h3 id="需求分析-Requirements-Analysis"><a href="#需求分析-Requirements-Analysis" class="headerlink" title="需求分析 (Requirements Analysis)"></a>需求分析 (Requirements Analysis)</h3><p><strong>功能需求</strong>：系统必须做什么（业务功能）</p><p><strong>非功能需求</strong>：约束条件和性能目标。包括可用性(Usability)、可靠性(Reliability)、性能(Performance)、安全性(Security)，以及设计限制、开发约束、接口要求、物理要求、支持要求等。</p><h3 id="需求建模与验证"><a href="#需求建模与验证" class="headerlink" title="需求建模与验证"></a>需求建模与验证</h3><p><strong>三种模型类型</strong>：文本模型(Textual)、图形模型(Graphical)、数学模型(Mathematical)。</p><p><strong>需求验证四个方面</strong>：一致性（不矛盾）、完整性（包含所有）、现实性（可实现）、有效性（正确有效）。</p><p><strong>优先级三级</strong>：Essential(必要) &gt; Important(重要) &gt; Nice to have(锦上添花)。</p><hr><h2 id="任务五：软件设计详细整理"><a href="#任务五：软件设计详细整理" class="headerlink" title="任务五：软件设计详细整理"></a>任务五：软件设计详细整理</h2><h3 id="模块化-Modularity"><a href="#模块化-Modularity" class="headerlink" title="模块化 (Modularity)"></a>模块化 (Modularity)</h3><p><strong>定义</strong>：将系统分解为可独立开发和测试的模块。</p><p><strong>数学根据</strong>：$C(x_1+x_2) &gt; C(x_1) + C(x_2)$，即整体复杂性大于部分之和，所以分解可降低复杂性。</p><p><strong>原则</strong>：模块规模适度，既不太大（难维护）也不太小（接口太多）。</p><h3 id="抽象与信息隐藏"><a href="#抽象与信息隐藏" class="headerlink" title="抽象与信息隐藏"></a>抽象与信息隐藏</h3><p><strong>过程抽象</strong>：用高级概念描述操作（如”排序”而非具体代码）<br><strong>数据抽象</strong>：用高级概念描述数据结构（如”栈”而非数组实现）<br><strong>信息隐藏</strong>：每个模块的实现细节对其他模块不可见。降低耦合、提高独立性。</p><h3 id="软件体系结构与设计启发规则"><a href="#软件体系结构与设计启发规则" class="headerlink" title="软件体系结构与设计启发规则"></a>软件体系结构与设计启发规则</h3><p><strong>常见架构风格</strong>：分层架构(Layered)、管道-过滤器(Pipe-Filter)、客户端-服务器(Client-Server)、事件驱动(Event-Driven)、MVC(Model-View-Controller)。</p><p><strong>设计启发规则</strong>：模块规模适度；深度、宽度、扇出、扇入适度；作用域应在控制域之内；降低接口复杂程度；单入口单出口；模块功能可预测。</p><hr><h2 id="任务六：UML图详细整理"><a href="#任务六：UML图详细整理" class="headerlink" title="任务六：UML图详细整理"></a>任务六：UML图详细整理</h2><h3 id="用例图-Use-Case-Diagram"><a href="#用例图-Use-Case-Diagram" class="headerlink" title="用例图 (Use Case Diagram)"></a>用例图 (Use Case Diagram)</h3><p><strong>用途</strong>：记录系统功能需求和用户交互。<br><strong>关系</strong>：<code>&lt;&lt;includes&gt;&gt;</code>(包含)、<code>&lt;&lt;extend&gt;&gt;</code>(扩展)、Generalization(泛化)。<br><strong>常见错误</strong>：<code>includes</code>&#x2F;<code>extend</code>箭头方向搞反；Actor之间画关联线；用例之间画普通连线。</p><h3 id="类图-Class-Diagram"><a href="#类图-Class-Diagram" class="headerlink" title="类图 (Class Diagram)"></a>类图 (Class Diagram)</h3><p><strong>用途</strong>：描述系统静态结构。<br><strong>关系类型</strong>：关联、聚合(空心菱形)、组合(实心菱形)、泛化(空心三角)、依赖(虚线箭头)。</p><h3 id="活动图-Activity-Diagram"><a href="#活动图-Activity-Diagram" class="headerlink" title="活动图 (Activity Diagram)"></a>活动图 (Activity Diagram)</h3><p><strong>用途</strong>：描述业务流程和工作流。<br><strong>绘制规则</strong>：Fork和Join必须成对出现；判断后必须有多个分支。</p><h3 id="顺序图-SSD-Sequence-Diagram-SSD"><a href="#顺序图-SSD-Sequence-Diagram-SSD" class="headerlink" title="顺序图 &#x2F; SSD (Sequence Diagram &#x2F; SSD)"></a>顺序图 &#x2F; SSD (Sequence Diagram &#x2F; SSD)</h3><p><strong>用途</strong>：描述对象间的消息交互顺序。<br><strong>SSD特殊规则</strong>：只有Actor和:System两个生命线。<br><strong>消息符号</strong>：实线&#x3D;输入消息、虚线&#x3D;返回消息、<code>*</code>&#x3D;循环、<code>[condition]</code>&#x3D;条件。</p><h3 id="状态机图与通信图"><a href="#状态机图与通信图" class="headerlink" title="状态机图与通信图"></a>状态机图与通信图</h3><p><strong>状态机图</strong>：描述对象的生命周期状态变化。转换格式为 <code>触发器[保护条件]/行动表达</code>。<br><strong>通信图</strong>：描述对象间的关系和消息传递（强调结构而非时间）。</p><hr><h2 id="任务七：软件测试详细整理"><a href="#任务七：软件测试详细整理" class="headerlink" title="任务七：软件测试详细整理"></a>任务七：软件测试详细整理</h2><h3 id="测试层次"><a href="#测试层次" class="headerlink" title="测试层次"></a>测试层次</h3><ul><li><strong>单元测试 (Unit Testing)</strong>：测试单个模块&#x2F;类的正确性（开发者，白盒为主）。</li><li><strong>集成测试 (Integration Testing)</strong>：测试模块间的接口和交互（大爆炸&#x2F;自顶向下&#x2F;自底向上）。</li><li><strong>系统测试 (System Testing)</strong>：测试整个系统的功能和非功能特性（恢复&#x2F;安全&#x2F;压力&#x2F;性能测试）。</li><li><strong>验收测试 (Acceptance Testing)</strong>：用户确认系统是否满足需求（Alpha&#x2F;Beta）。</li><li><strong>回归测试 (Regression Testing)</strong>：修改后重新测试确保没有引入新错误。</li><li><strong>冒烟测试 (Smoke Testing)</strong>：快速检查核心功能是否正常工作的初步测试。</li></ul><h3 id="测试方法与调试策略"><a href="#测试方法与调试策略" class="headerlink" title="测试方法与调试策略"></a>测试方法与调试策略</h3><p><strong>白盒测试</strong>：知道内部结构，测试代码逻辑路径（语句覆盖、分支覆盖等）。<br><strong>黑盒测试</strong>：不知道内部结构，测试功能和输出（等价类划分、边界值分析等）。</p><p><strong>调试策略</strong>：蛮力法(Brute Force)、回溯法(Backtracking)、原因排除法(Cause Elimination)、归纳法(Induction)。</p><hr><h2 id="任务八：软件项目管理"><a href="#任务八：软件项目管理" class="headerlink" title="任务八：软件项目管理"></a>任务八：软件项目管理</h2><ul><li><strong>项目计划</strong>：立项分析阶段确定项目愿景文档。</li><li><strong>项目估算</strong>：专家判断、类比估算、参数模型(COCOMO)。</li><li><strong>风险管理</strong>：螺旋模型核心，流程包含识别→评估→制定策略→监控。</li><li><strong>配置管理</strong>：SCCS控制源代码版本。包含 Alpha&#x2F;Beta&#x2F;Production&#x2F;Maintenance 版本。</li><li><strong>质量管理</strong>：SQA 包含 Walkthrough（非正式）和 Inspection（正式）。质量必须内建于开发过程。</li><li><strong>进度管理</strong>：甘特图(Gantt Chart)、PERT图、关键路径法(CPM)。</li></ul><hr><h2 id="任务九：必考知识点-Top-30"><a href="#任务九：必考知识点-Top-30" class="headerlink" title="任务九：必考知识点 Top 30"></a>任务九：必考知识点 Top 30</h2><table><thead><tr><th>排名</th><th>知识点</th><th>为什么容易考</th><th>常见题型</th></tr></thead><tbody><tr><td>1</td><td><strong>用例图绘制（含<code>includes</code>&#x2F;<code>extend</code>）</strong></td><td>应用题核心，综合考察需求分析能力</td><td>应用题(画图)</td></tr><tr><td>2</td><td><strong>完全开发的用例描述（11字段）</strong></td><td>考察需求文档化能力</td><td>应用题</td></tr><tr><td>3</td><td><strong>内聚七级&#x2F;耦合七级</strong></td><td>设计质量核心指标，易混淆</td><td>选择+简答</td></tr><tr><td>4</td><td><strong>SOLID五大原则</strong></td><td>设计原则核心</td><td>选择+简答+应用</td></tr><tr><td>5</td><td><strong>瀑布vs增量vs螺旋模型对比</strong></td><td>模型选择是基本能力</td><td>选择+简答+应用</td></tr><tr><td>6</td><td><strong>敏捷宣言四价值观+XP实践</strong></td><td>当前主流方法论</td><td>选择+简答</td></tr><tr><td>7</td><td><strong>三层架构（View&#x2F;Domain&#x2F;DataAccess）</strong></td><td>架构设计核心</td><td>选择+简答+应用</td></tr><tr><td>8</td><td><strong>V&amp;V（验证与确认）</strong></td><td>概念容易混淆</td><td>选择+简答</td></tr><tr><td>9</td><td><strong>集成测试策略（Big-bang&#x2F;Top-down&#x2F;Bottom-up）</strong></td><td>Driver&#x2F;Stub是经典考点</td><td>选择+简答+应用</td></tr><tr><td>10</td><td><strong>类图关系（关联&#x2F;聚合&#x2F;组合&#x2F;泛化）</strong></td><td>类图是OO设计核心工具</td><td>选择+应用(画图)</td></tr><tr><td>11</td><td><strong>SSD系统顺序图</strong></td><td>从需求到设计的桥梁</td><td>应用题(画图)</td></tr><tr><td>12</td><td><strong>状态机图</strong></td><td>对象生命周期建模</td><td>应用题(画图)</td></tr><tr><td>13</td><td><strong>活动图</strong></td><td>业务流程建模</td><td>应用题(画图)</td></tr><tr><td>14</td><td><strong>FURPS+需求分类</strong></td><td>需求分析基础</td><td>选择+简答</td></tr><tr><td>15</td><td><strong>功能需求vs非功能需求</strong></td><td>基本概念区分</td><td>选择</td></tr><tr><td>16</td><td><strong>Boehm七条原理</strong></td><td>软件工程基础</td><td>简答</td></tr><tr><td>17</td><td><strong>软件危机（表现+原因）</strong></td><td>历史背景必知</td><td>简答</td></tr><tr><td>18</td><td><strong>三种事件类型（外部&#x2F;时间&#x2F;状态）</strong></td><td>用例识别基础</td><td>选择+应用</td></tr><tr><td>19</td><td><strong>设计模式（Factory&#x2F;Singleton&#x2F;Adapter&#x2F;Controller）</strong></td><td>设计能力考察</td><td>选择+应用</td></tr><tr><td>20</td><td><strong>域模型类图vs设计类图</strong></td><td>分析与设计的区别</td><td>选择+应用(画图)</td></tr><tr><td>21</td><td><strong>UI设计七大指南</strong></td><td>界面设计核心</td><td>简答+应用</td></tr><tr><td>22</td><td><strong>DFD数据流图</strong></td><td>结构化分析核心工具</td><td>应用题(画图)</td></tr><tr><td>23</td><td><strong>SRS需求规格说明书</strong></td><td>需求文档化标准</td><td>简答</td></tr><tr><td>24</td><td><strong>测试级别（单元&#x2F;集成&#x2F;系统&#x2F;验收）</strong></td><td>测试体系框架</td><td>选择+简答</td></tr><tr><td>25</td><td><strong>系统测试四种类型</strong></td><td>非功能测试</td><td>选择+简答</td></tr><tr><td>26</td><td><strong>CRC卡技术</strong></td><td>设计工具</td><td>选择+应用</td></tr><tr><td>27</td><td><strong>安装方式（直接&#x2F;并行&#x2F;分阶段）</strong></td><td>部署策略</td><td>选择+简答</td></tr><tr><td>28</td><td><strong>Walkthrough vs Inspection</strong></td><td>质量保证方法</td><td>选择+简答</td></tr><tr><td>29</td><td><strong>有穷状态机&#x2F;Petri网</strong></td><td>形式化方法</td><td>选择+简答</td></tr><tr><td>30</td><td><strong>CRUD技术</strong></td><td>需求验证工具</td><td>选择+应用</td></tr></tbody></table><hr><h2 id="任务十：预测考题"><a href="#任务十：预测考题" class="headerlink" title="任务十：预测考题"></a>任务十：预测考题</h2><h3 id="预测选择题考点（30道）"><a href="#预测选择题考点（30道）" class="headerlink" title="预测选择题考点（30道）"></a>预测选择题考点（30道）</h3><p><strong>基础概念类（10道）</strong></p><ol><li>软件三个组成部分 → 程序+数据+文档</li><li>软件工程诞生时间和人物 → 1968, NATO, Fritz Bauer</li><li>Boehm原理的数量 → 七条</li><li>软件危机案例（IBM OS&#x2F;360的投资额） → 5亿美元</li><li>敏捷宣言提出年份 → 2001年</li><li>XP提出者和年份 → Kent Beck, 1996</li><li>FURPS+中各字母含义</li><li>CRUD各字母含义</li><li>EBP的定义</li><li>SSD中消息符号(<code>*</code>、<code>[]</code>等)</li></ol><p><strong>模型与方法类（10道）</strong><br>11. 螺旋模型核心特征 → 风险驱动<br>12. 喷泉模型特点 → 对象驱动、阶段重叠<br>13. 瀑布模型属于什么方法 → 预测性方法<br>14. 结构化程序设计控制GOTO → Dijkstra<br>15. Bohm和Jacopini证明年份 → 1966<br>16. 三种基本控制结构 → 顺序&#x2F;选择&#x2F;循环<br>17. 变换型vs事务型系统结构<br>18. RUP的六个最佳实践数量<br>19. Scrum的Sprint持续时间 → 通常2-4周<br>20. 预测性vs适应性SDLC</p><p><strong>设计与测试类（10道）</strong><br>21. 内聚最高级别 → 功能内聚<br>22. 耦合最低级别 → 非直接耦合<br>23. 聚合vs组合的符号区别<br>24. SOLID中OCP的含义 → 开闭原则<br>25. 三层架构的中间层 → Domain&#x2F;业务逻辑层<br>26. Driver vs Stub的区别<br>27. 自顶向下集成需要什么 → Stub<br>28. Alpha测试在哪里执行 → 开发环境<br>29. 域模型类图有没有方法 → 没有<br>30. Verification关注什么 → 过程正确性</p><h3 id="预测简答题考点（10道）"><a href="#预测简答题考点（10道）" class="headerlink" title="预测简答题考点（10道）"></a>预测简答题考点（10道）</h3><ol><li>软件危机的表现和原因</li><li>Boehm七条基本原理</li><li>敏捷宣言四大价值观</li><li>三种集成测试策略对比</li><li>V&amp;V的区别</li><li><code>&lt;&lt;includes&gt;&gt;</code> 和 <code>&lt;&lt;extend&gt;&gt;</code> 的区别</li><li>内聚和耦合的概念及原则</li><li>FURPS+需求分类模型</li><li>UI设计七大指南</li><li>三种安装部署方式对比</li></ol><h3 id="预测应用题考点（10道，50分重点）"><a href="#预测应用题考点（10道，50分重点）" class="headerlink" title="预测应用题考点（10道，50分重点）"></a>预测应用题考点（10道，50分重点）</h3><p><strong>应用题1：在线购物系统需求分析</strong></p><ul><li><strong>解题步骤</strong>：识别角色→事件分解→画用例图(含<code>includes</code>&#x2F;<code>extend</code>)→写用例描述→画SSD。</li><li><strong>容易失分</strong>：<code>includes</code>&#x2F;<code>extend</code>箭头方向搞反；遗漏异常条件；SSD消息格式不规范。</li></ul><p><strong>应用题2：图书馆管理系统类图设计</strong></p><ul><li><strong>解题步骤</strong>：识别类→确定属性→确定关系(关联&#x2F;聚合&#x2F;组合&#x2F;泛化)→标注Multiplicity。</li><li><strong>容易失分</strong>：聚合和组合分不清；重数标注错误。</li></ul><p><strong>应用题3：订单处理系统架构重构</strong></p><ul><li><strong>解题步骤</strong>：分析当前问题(内聚&#x2F;耦合)→识别违反的SOLID原则→提出三层架构重构方案→画重构后类图。</li><li><strong>容易失分</strong>：不能准确识别违反的设计原则；重构方案不具体。</li></ul><p><strong>应用题4：学生选课系统测试方案设计</strong></p><ul><li><strong>解题步骤</strong>：确定测试级别→选择集成策略→设计Driver&#x2F;Stub→设计测试用例→规划回归测试。</li><li><strong>容易失分</strong>：Driver&#x2F;Stub使用场景搞混。</li></ul><p><strong>应用题5：电梯控制系统状态机图</strong></p><ul><li><strong>解题步骤</strong>：确定所有状态→确定转换→添加保护条件和行动表达。</li><li><strong>容易失分</strong>：遗漏状态；保护条件描述不准确。</li></ul><p><strong>应用题6：医院预约系统活动图</strong></p><ul><li><strong>解题步骤</strong>：确定起止→识别活动→添加判断→添加Fork&#x2F;Join→连接。</li><li><strong>容易失分</strong>：Fork&#x2F;Join不成对；判断菱形后缺少分支。</li></ul><p><strong>应用题7：银行系统安全测试方案</strong></p><ul><li><strong>解题步骤</strong>：确定系统测试类型(恢复&#x2F;安全&#x2F;压力&#x2F;性能)→为每种类型设计测试用例。</li><li><strong>容易失分</strong>：混淆系统测试和验收测试。</li></ul><p><strong>应用题8：电商系统UI设计评审</strong></p><ul><li><strong>解题步骤</strong>：对照七大指南逐项检查→指出违反的原则→提出改进建议。</li><li><strong>容易失分</strong>：不能将UI问题对应到具体原则。</li></ul><p><strong>应用题9：保险理赔系统形式化建模</strong></p><ul><li><strong>解题步骤</strong>：用有穷状态机5元组建模或用Petri网4元组建模。</li><li><strong>容易失分</strong>：5元组各分量定义不准确。</li></ul><p><strong>应用题10：企业ERP系统开发模型选择</strong></p><ul><li><strong>解题步骤</strong>：分析项目特点→对比候选模型→选择最佳模型→说明理由。</li><li><strong>容易失分</strong>：只说优点不说缺点；不结合项目特点分析。</li></ul><hr><h2 id="附录：关键人物与年份速查表"><a href="#附录：关键人物与年份速查表" class="headerlink" title="附录：关键人物与年份速查表"></a>附录：关键人物与年份速查表</h2><table><thead><tr><th>人物</th><th>贡献</th><th>年份</th></tr></thead><tbody><tr><td>Edsger Dijkstra</td><td>GOTO Statement Considered Harmful</td><td>1968</td></tr><tr><td>Edsger Dijkstra</td><td>结构程序设计概念</td><td>1965</td></tr><tr><td>Fritz Bauer</td><td>首次提出”软件工程”</td><td>1968(NATO)</td></tr><tr><td>Boehm</td><td>软件工程七条原理</td><td>-</td></tr><tr><td>Bohm &amp; Jacopini</td><td>证明三种控制结构可实现任何程序</td><td>1966</td></tr><tr><td>E. Yourdon</td><td>结构化分析方法(SA)</td><td>1970s</td></tr><tr><td>Kent Beck</td><td>极限编程(XP)</td><td>1996</td></tr><tr><td>17位专家</td><td>敏捷宣言</td><td>2001</td></tr><tr><td>Andrej Karpathy</td><td>氛围编程(Vibe Coding)</td><td>2025</td></tr><tr><td>Carl Adam Petri</td><td>Petri网</td><td>-</td></tr><tr><td>Nassi &amp; Shneideman</td><td>N-S图(盒图)</td><td>-</td></tr></tbody></table><hr><h2 id="附录：完整缩写对照表"><a href="#附录：完整缩写对照表" class="headerlink" title="附录：完整缩写对照表"></a>附录：完整缩写对照表</h2><table><thead><tr><th>缩写</th><th>英文全称</th><th>中文翻译</th></tr></thead><tbody><tr><td>SDLC</td><td>System Development Life Cycle</td><td>系统开发生命周期</td></tr><tr><td>UML</td><td>Unified Modeling Language</td><td>统一建模语言</td></tr><tr><td>OOA</td><td>Object-Oriented Analysis</td><td>面向对象分析</td></tr><tr><td>OOD</td><td>Object-Oriented Design</td><td>面向对象设计</td></tr><tr><td>OOP</td><td>Object-Oriented Programming</td><td>面向对象编程</td></tr><tr><td>SA</td><td>Structured Analysis</td><td>结构化分析</td></tr><tr><td>SD</td><td>Structured Design</td><td>结构化设计</td></tr><tr><td>SP</td><td>Structured Programming</td><td>结构化程序设计</td></tr><tr><td>DFD</td><td>Data Flow Diagram</td><td>数据流图</td></tr><tr><td>DD</td><td>Data Dictionary</td><td>数据词典</td></tr><tr><td>SRS</td><td>Software Requirements Specification</td><td>软件需求规格说明书</td></tr><tr><td>SC</td><td>Structured Chart</td><td>结构图</td></tr><tr><td>PAD</td><td>Problem Analysis Diagram</td><td>问题分析图</td></tr><tr><td>N-S</td><td>Nassi-Shneideman</td><td>N-S图&#x2F;盒图</td></tr><tr><td>IPO</td><td>Input Process Output</td><td>输入-加工-输出</td></tr><tr><td>FURPS+</td><td>Functional,Usability,Reliability,Performance,Security+</td><td>需求分类法</td></tr><tr><td>EBP</td><td>Elementary Business Process</td><td>基本业务流程</td></tr><tr><td>CRUD</td><td>Create, Read, Update, Delete</td><td>增删改查</td></tr><tr><td>SSD</td><td>System Sequence Diagram</td><td>系统顺序图</td></tr><tr><td>HCI</td><td>Human-Computer Interaction</td><td>人机交互</td></tr><tr><td>SQA</td><td>Software Quality Assurance</td><td>软件质量保证</td></tr><tr><td>ITG</td><td>Independent Test Group</td><td>独立测试组</td></tr><tr><td>SCCS</td><td>Source Code Control System</td><td>源代码控制系统</td></tr><tr><td>RUP</td><td>Rational Unified Process</td><td>Rational统一过程</td></tr><tr><td>XP</td><td>Extreme Programming</td><td>极限编程</td></tr><tr><td>TDD</td><td>Test-Driven Development</td><td>测试驱动开发</td></tr><tr><td>SRP</td><td>Single Responsibility Principle</td><td>单一职责原则</td></tr><tr><td>OCP</td><td>Open-Closed Principle</td><td>开闭原则</td></tr><tr><td>LSP</td><td>Liskov Substitution Principle</td><td>里氏替换原则</td></tr><tr><td>ISP</td><td>Interface Segregation Principle</td><td>接口隔离原则</td></tr><tr><td>DIP</td><td>Dependency Inversion Principle</td><td>依赖倒置原则</td></tr><tr><td>LoD</td><td>Law of Demeter</td><td>迪米特法则</td></tr><tr><td>FSM</td><td>Finite State Machine</td><td>有穷状态机</td></tr><tr><td>NATO</td><td>North Atlantic Treaty Organization</td><td>北大西洋公约组织</td></tr><tr><td>CACM</td><td>Communications of the ACM</td><td>ACM通讯</td></tr><tr><td>ERD</td><td>Entity Relationship Diagram</td><td>实体关系图</td></tr><tr><td>API</td><td>Application Programming Interface</td><td>应用程序接口</td></tr><tr><td>CSS</td><td>Control Specification Statement</td><td>控制规范声明</td></tr><tr><td>SaaS</td><td>Software as a Service</td><td>软件即服务</td></tr><tr><td>GoF</td><td>Gang of Four</td><td>四人帮(设计模式作者)</td></tr><tr><td>MVC</td><td>Model-View-Controller</td><td>模型-视图-控制器</td></tr></tbody></table>]]>
    </content>
    <id>https://yzh-01.github.io/software-engineering-final-review/</id>
    <link href="https://yzh-01.github.io/software-engineering-final-review/"/>
    <published>2026-07-20T11:30:00.000Z</published>
    <summary>软件工程期末考试冲刺版知识库，覆盖全部 12 章核心考点。</summary>
    <title>软件工程期末复习</title>
    <updated>2026-07-20T11:30:00.000Z</updated>
  </entry>
  <entry>
    <author>
      <name>ZIHY</name>
    </author>
    <category term="日记" scheme="https://yzh-01.github.io/categories/diary/"/>
    <category term="生活" scheme="https://yzh-01.github.io/tags/life/"/>
    <category term="随笔" scheme="https://yzh-01.github.io/tags/essay/"/>
    <content>
      <![CDATA[<p>该记录点什么呢…</p><p>或许是<del>无所事事</del>惯了，又或许是<del>麻木</del>了，二十来岁的年纪，内心却是无比的空洞、脆弱，总该做点什么了 .</p><p>算是为了过去 也是为了将来 .</p><blockquote><p>一切都隐没在迷雾中。过去被清除，连清除行为也被忘却，谎言变成了事实。</p></blockquote>]]>
    </content>
    <id>https://yzh-01.github.io/2026/07/20/No-0-Day/</id>
    <link href="https://yzh-01.github.io/2026/07/20/No-0-Day/"/>
    <published>2026-07-20T11:17:00.000Z</published>
    <summary>一切从这里开始。</summary>
    <title>No.0 Day</title>
    <updated>2026-07-20T11:17:00.000Z</updated>
  </entry>
</feed>
