軟考(軟件設計師)軟件工程-軟件過程模型,敏捷開發

軟件過程模型

瀑布模型

需求分析
(Requirements Analysis)
? 明確系統功能
? 輸出需求規格說明書
系統設計
(System Design)
? 架構設計
? 模塊劃分
? 數據庫設計
編碼實現
(Implementation)
? 編寫源代碼
? 單元測試
系統測試
(Testing)
? 集成測試
? 系統測試
? 驗收測試
部署上線
(Deployment)
? 安裝配置
? 用戶培訓
運行維護
(Maintenance)
? 錯誤修復
? 功能優化
? 系統升級

瀑布模型核心特點解析:

  1. 線性順序結構

    • 各階段嚴格按順序執行(需求→設計→編碼→測試→部署→維護)
    • 前階段輸出是后階段的輸入(如需求文檔是設計基礎)
    • 不可回溯(圖中無反向箭頭)
  2. 階段交付物(關鍵文檔):

    階段核心輸出
    需求分析需求規格說明書(SRS)
    系統設計系統設計文檔(SDD)
    編碼實現源代碼 + 單元測試報告
    系統測試測試用例 + 缺陷報告
    部署上線用戶手冊 + 安裝指南
    運行維護維護日志 + 升級文檔
  3. 里程碑評審機制(圖中隱含):

評審通過
評審通過
評審通過
需求完成
設計完成
編碼完成
測試啟動
  1. 適用場景

    • ? 需求明確且穩定的項目(如銀行核心系統)
    • ? 技術成熟的領域(如傳統制造業軟件)
    • ? 有嚴格合規要求的行業(醫療/航空)
  2. 典型缺陷

    • ?? 需求變更成本高(后期修改需全流程回溯)
    • ?? 風險延遲暴露(測試階段才發現設計缺陷)
    • ?? 客戶參與度低(直到部署才看到成品)

瀑布模型適用于需求明確、變更少的傳統項目,其嚴格的階段劃分和文檔要求保證了過程可控性,但缺乏應對變化的靈活性。現代開發中常與V模型結合,通過前期測試設計(需求階段編寫驗收用例)來緩解后期測試壓力。

瀑布模型變體:V模型

在這里插入圖片描述

  1. 對稱驗證結構(核心創新)

    • 左支:傳統瀑布開發流(需求→設計→編碼)
    • 右支:分層測試流(單元→集成→系統→驗收)
    • 關鍵映射:每個開發階段直接對應測試階段
  2. 階段對應關系(質量前移)

    開發階段對應測試階段驗證目標輸出產物
    需求分析驗收測試是否滿足用戶實際需求驗收測試用例(客戶簽字)
    系統設計系統測試整體功能是否符合設計規范系統測試方案
    詳細設計集成測試模塊間接口是否正確接口測試用例
    編碼實現單元測試單個函數/模塊邏輯是否正確單元測試報告
V模型 vs 傳統瀑布模型
V模型
設計
需求
編碼
測試
瀑布模型
測試
需求
設計
編碼
優勢與局限

? 核心優勢

  1. 缺陷預防優于缺陷檢測:需求階段發現的錯誤修復成本僅為編碼階段的1/100
  2. 可追溯性強:每個測試用例可追溯到具體需求條目
  3. 質量門禁明確:階段交付物必須包含對應測試方案

?? 主要局限

  1. 仍不適應頻繁需求變更(需凍結需求基線)
  2. 文檔工作量倍增(德國汽車行業項目統計:文檔占40%工作量)
  3. 對測試人員要求高(需提前理解系統架構)

行業應用:V模型是ISO 26262(汽車電子)、IEC 62304(醫療設備)等安全標準的推薦模型。例如博世ESP控制系統開發中,每個需求條目必須關聯驗證用例,并通過MIL/SIL/HIL多級測試實現V模型全閉環驗證。

增量模型

下面詳細解析增量模型(Incremental Model),結合Mermaid圖示、階段分解和典型場景說明其核心機制:


增量模型結構圖示(Mermaid)在這里插入圖片描述

增量2
增量1
增量N
交付用戶
增量N開發
? 最終模塊
? 優化功能
增量N測試
交付用戶
增量2測試
增量2開發
? 擴展模塊A
? 增強功能
交付用戶
增量1測試
增量1開發
? 核心功能模塊
? 基礎服務
整體架構設計
模塊拆分
核心架構設計
接口定義

核心原理分解

  1. 分治策略

    • 將系統拆解為多個功能增量包(通常3-5個)

    • 每個增量包是可獨立運行的功能子集

    • 示例:電商系統拆分:

      增量1:用戶注冊/登錄 + 商品展示
      增量2:購物車 + 基礎支付
      增量3:訂單管理 + 促銷系統
      增量4:客服系統 + 數據分析
      
  2. 架構先決條件

    • 開放-封閉原則:基礎架構需支持后續擴展
    • 關鍵設計約束:
模塊低耦合
接口標準化
數據模型可擴展
預留集成點
  1. 交付節奏

    增量階段持續時間用戶價值風險控制作用
    增量14-6周驗證核心流程可行性早期發現架構缺陷
    增量26-8周補充關鍵業務場景降低集成復雜度
    增量N8-12周完善邊緣功能規避范圍蔓延(Scope Creep)

工作流程詳解

用戶產品經理架構師開發組測試組完成全量架構設計確認增量優先級提交增量代碼反饋缺陷(72小時內)修復并回歸發布增量版本反饋使用問題調整后續增量需求loop[每個增量周期]用戶產品經理架構師開發組測試組

典型應用場景

  1. 政府政務平臺

    • 階段1: 信息公開門戶
    • 階段2: 在線辦事大廳
    • 階段3: 數據共享平臺
  2. 硬件配套軟件

    • 先交付基礎驅動(增量1)
    • 再追加配置工具(增量2)
    • 最后開發云服務平臺(增量3)

優劣對比分析

優勢挑戰應對方案
? 用戶早期獲得價值?? 架構設計壓力大投入資深架構師
? 降低一次性交付風險?? 增量間集成成本累積強制接口測試占工作量30%
? 靈活調整后續需求?? 用戶可能不滿“半成品”明確設定增量交付范圍
? 團隊可分批投入資源?? 文檔版本管理復雜采用Git+Confluence基線管理

與相似模型對比

分塊交付
重復優化
區別重點
模塊A(100%) + 模塊B(100%) = 系統
增量模型
迭代模型
功能X(30%→70%→100%)
增量模型
功能完整度逐步提升
迭代模型
同一功能持續深化

行業數據:據IEEE調查,采用增量模型的項目成功率比瀑布模型高27%,但要求架構師經驗級別提高40%。在銀行核心系統改造中,增量模型實施周期平均縮短至18個月(瀑布模型需3年)。

演化模型

1. 原型模型

在這里插入圖片描述

核心邏輯:構建→反饋→重構
不滿意
滿意
模糊需求
快速原型開發
用戶試用
修改原型
正式開發
交付最終系統

優劣勢對比

優勢劣勢
? 需求不明確時降低失敗率?? 原型代碼無法復用(資源浪費)
? 用戶深度參與減少后期變更?? 用戶誤將原型視為最終產品
? 平均縮短30%需求確認周期?? 復雜業務邏輯難以原型化

2. 螺旋模型:風險驅動引擎

核心邏輯:計劃→風險分析→開發→評估
繼續
終止
交付
計劃:確定目標
風險分析
開發驗證
客戶評估
項目停止
階段發布

風險控制工具箱

在這里插入圖片描述


原型模型 vs 螺旋模型 對比矩陣

適用場景
適用場景
螺旋模型
增量交付
高風險
風險分析
原型模型
拋棄原型
需求模糊
快速驗證
用戶界面/創新產品
軍工/航天/醫療設備
維度原型模型螺旋模型
核心驅動力需求不確定性項目風險
迭代目標驗證用戶需求控制關鍵風險
產出物性質拋棄型原型可累積的工程增量
成本分布原型開發占40%風險分析占30%
客戶參與點每輪原型評審階段評估會議

選擇決策樹

需求是否模糊?
是否涉及高風險?
選用瀑布/V模型
螺旋模型
原型模型
是否需要用戶界面?
原型+螺旋組合
純螺旋模型

數據支撐:IEEE統計顯示,在需求模糊型項目中:

  • 純原型模型成功率:68%
  • 原型+螺旋組合成功率:89%
    原因:組合模型同時覆蓋了需求驗證(原型)和風險控制(螺旋)雙重保障,尤其適用于醫療AI、自動駕駛等創新領域。

噴泉模型

噴泉模型(Fountain Model)——一種面向對象的迭代開發方法


噴泉模型核心理念圖示

并行活動
回溯需求
面向對象編碼
面向對象分析
面向對象設計
面向對象測試

模型核心特征

  1. 環形迭代結構
    • 分析→設計→編碼→測試形成閉環
    • 任何階段發現問題可立即回溯到前序階段
  2. 對象驅動開發
調用
依賴
訂單模塊
+訂單ID
+創建訂單()
+支付校驗()
-庫存鎖定()
支付模塊
庫存模塊
  1. 階段重疊機制

    開發周期分析設計編碼測試
    第1周80%20%0%0%
    第2周30%50%20%0%
    第3周10%30%40%20%
    第4周5%15%30%50%

與傳統瀑布模型對比

單向流動
多向流動
對象復用
模塊獨立開發
瀑布模型
噴泉模型
跨模塊繼承復用
變更響應
階段隔離,變更成本高
瀑布模型
噴泉模型
實時回溯,變更成本低
瀑布模型
需求分析 → 設計 → 編碼 → 測試
噴泉模型
分析?設計?編碼?測試
維度瀑布模型噴泉模型
階段關系嚴格順序交叉重疊
回溯機制僅能階段內調整任意階段自由回溯
核心資產文檔可復用對象
典型適用結構化語言開發Java/C#等OOP語言
需求變更響應延遲到維護階段下一迭代立即處理

噴泉模型工作流詳解

業務分析師架構師開發組測試組提交用戶故事對象輸出類圖設計交付可測試對象反饋場景覆蓋不足追加新方法需求擴展類接口loop[每2周迭代周期]業務分析師架構師開發組測試組

關鍵活動

  1. 無縫回溯觸發條件
發現設計矛盾
需求理解偏差
性能瓶頸
編碼階段
回溯設計
測試階段
回溯分析
部署階段
回溯架構

優劣勢與應對策略

優勢挑戰解決方案
? 高對象復用率(達60%-80%)?? 架構腐化風險SonarQube代碼質量門禁
? 需求變更響應速度提升40%?? 文檔與代碼不同步Swagger+Javadoc自動化
? 縮短20%開發周期?? 新手開發者難以掌握回溯邊界設立Senior架構評審委員會
? 更適合現代OOP框架開發?? 過度回溯導致進度延遲每個回溯必須附帶成本評估

模型選擇決策樹

中低
是否面向對象開發?
需求是否頻繁變更?
選用瀑布/V模型
采用噴泉模型
采用增量模型
系統復雜度?
噴泉+螺旋組合
純噴泉模型

行業數據:在Java企業級開發中,噴泉模型相比瀑布模型:

  • 缺陷密度降低32%(對象封裝減少耦合錯誤)
  • 需求變更成本下降45%(實時回溯機制)
  • 但文檔工作量增加20%(需維護類關系圖/接口文檔)
    典型用戶:Spring框架項目、Unity插件開發、SAP模塊擴展

基于構件的開發模型

基于構件的開發模型(Component-Based Development, CBD),這是一種通過組裝預置構件構建系統的工程方法。


CBD核心理念圖示

提取
提取
提取
構件庫
認證/日志/消息
基礎服務構件
領域通用構件
支付/用戶管理
專用業務構件
保險理賠/航班調度
構件庫
業務構件
技術構件
界面構件
組裝平臺
目標系統

核心三要素

要素說明實例
可復用構件預制的功能單元支付SDK、OCR識別引擎
組裝框架構件集成環境Spring容器、.NET Core
標準化接口構件交互契約REST API、gRPC協議

CBD開發流程

產品經理架構師開發組測試組構件庫組裝框架構件系統提交業務需求檢索可用構件返回構件清單設計組裝方案開發新構件入庫新構件alt[存在匹配構件][無匹配構件]集成構件驗證接口兼容性測試業務流產品經理架構師開發組測試組構件庫組裝框架構件系統

構件分層模型

調用
依賴
?構件集?
基礎服務層
+ 日志管理
+ 安全認證
+ 消息隊列
?構件集?
領域通用層
+ 支付網關
+ 用戶中心
+ 文件存儲
?構件集?
業務專用層
+ 保險精算
+ 航班調度
+ 醫療影像處理

典型行業案例

案例1:航空訂票系統
航班查詢構件
訂票引擎
支付接口構件
用戶管理構件
票務生成系統
短信通知構件

CBD vs 傳統開發對比

重復造輪子
積木式組裝
缺陷密度
傳統:15個
每千行代碼缺陷
CBD:6個
成本對比
傳統:1200萬元
100人月項目
CBD:720萬元
傳統開發
高成本長周期
CBD開發
效率提升40%
維度傳統開發模型CBD模型
開發重心從零編寫代碼構件篩選與組裝
核心資產文檔+源代碼可復用構件庫
技術棧要求語言/框架深度能力接口集成能力
項目啟動速度慢(需技術儲備)快(即插即用)
維護成本高(牽一發動全身)低(構件獨立升級)
典型適用創新算法開發企業級應用系統

實施挑戰與解決方案

挑戰解決方案工具鏈
構件兼容性沖突依賴隔離機制OSGi容器、Java模塊化
接口版本碎片化語義化版本控制SemVer規范
構件質量參差不齊認證中心+安全掃描SonarQube+OWASP
系統性能瓶頸構件級壓測JMeter組件測試
法律合規風險許可證審計FOSSA掃描工具

統一過程模型

在這里插入圖片描述


敏捷開發

一、敏捷核心概念與價值觀

敏捷開發是一種迭代、增量式的軟件開發方法,強調快速響應變化、持續交付價值和團隊協作。其核心基于《敏捷宣言》的四大價值觀:

  1. 個體與互動高于流程與工具
  2. 可工作的軟件高于詳盡的文檔
  3. 客戶協作高于合同談判
  4. 響應變化高于遵循計劃

1. 極限編程(Extreme Programming, XP)

核心思想
  • 適應性優先于可預測性:接受需求變化,強調快速響應和持續改進。
  • 輕量級、高效:通過簡單設計、小步迭代和自動化測試降低復雜性。
四大價值觀
  1. 溝通:加強面對面交流,減少文檔依賴。
  2. 簡單:避免過度設計,保持代碼簡潔。
  3. 反饋:通過測試和用戶反饋快速調整方向。
  4. 勇氣:敢于重構代碼、接受變更。
十二個最佳實踐
實踐名稱說明
計劃游戲通過客戶參與的迭代規劃,動態調整需求優先級。
小型發布每次發布功能盡可能小,快速交付可運行的軟件。
系統隱喻用統一術語描述系統架構,幫助團隊理解整體設計。
簡單設計僅滿足當前需求的設計,避免冗余。
測試先行(TDD)先寫單元測試,再開發代碼,確保質量。
重構持續優化代碼結構,消除技術債。
結對編程兩人協作編程,提高代碼質量和知識共享。
集體代碼所有制團隊共同維護代碼,避免個人“領地意識”。
持續集成頻繁集成代碼,快速發現沖突和錯誤。
40小時工作制避免過度加班,保持團隊健康和效率。
現場客戶客戶全程參與,提供即時反饋。
編碼標準統一代碼規范,提高可讀性和協作效率。
適用場景
  • 小團隊開發(如5-10人)。
  • 需求頻繁變更的項目(如互聯網產品迭代)。
  • 高風險、高復雜度的軟件項目。
Mermaid 流程圖
需求分析
計劃游戲
迭代開發
測試驅動開發
持續集成
交付可運行版本

2. 水晶法(Crystal Methods)

核心思想
  • 以人為中心:強調團隊協作和透明性,認為人的能力直接影響項目質量。
  • 靈活適配:針對不同項目規模和復雜度,選擇合適的實踐組合。
七大體系特征
  1. 經常交付:頻繁發布小版本,快速獲取用戶反饋。
  2. 反思改進:定期回顧問題并調整策略。
  3. 滲透式交流:通過面對面溝通解決問題。
  4. 個人安全:營造無責怪環境,鼓勵創新。
  5. 焦點:團隊集中精力完成當前迭代目標。
  6. 專家用戶聯系:與領域專家緊密合作,確保需求準確性。
  7. 技術環境支持:自動化測試、配置管理和持續集成工具支持。
實踐特點
  • 低紀律約束:相比XP,更注重靈活性而非嚴格流程。
  • 項目定制化:根據團隊規模和需求調整實踐(如小型項目用Crystal Clear,大型項目用Crystal Orange)。
適用場景
  • 中大型團隊(如10-50人)。
  • 需求明確但需靈活調整的項目(如企業級應用開發)。
  • 團隊協作文化成熟的組織。

3. 并列爭求法(Scrum)

核心思想
  • 迭代增量開發:通過短周期(Sprint)逐步交付功能。
  • 自組織團隊:團隊自主決策,減少層級管理。
核心角色
角色職責
產品負責人定義需求優先級,維護產品待辦事項(Product Backlog)。
Scrum Master確保團隊遵循Scrum規則,移除障礙。
開發團隊自組織完成Sprint目標,交付可用增量。
核心事件
  1. Sprint計劃會議:確定Sprint目標和任務。
  2. 每日站會(Daily Scrum):同步進展,協調問題。
  3. Sprint評審會議:展示成果,收集反饋。
  4. Sprint回顧會議:總結改進點,優化流程。
核心工件
  1. 產品待辦事項(Product Backlog):所有需求的優先級列表。
  2. Sprint待辦事項(Sprint Backlog):當前Sprint的具體任務。
  3. 增量(Increment):每個Sprint交付的可用軟件。
適用場景
  • 跨職能團隊(如前端、后端、測試協作)。
  • 需求優先級頻繁變化的項目(如MVP開發)。
  • 需要快速驗證假設的初創企業或敏捷團隊。
Mermaid 流程圖
Sprint計劃
每日站會
Sprint開發
Sprint評審
Sprint回顧

4. 自適應軟件開發(Adaptive Software Development, ASD)

核心理念
  • 動態適應性:ASD 基于復雜自適應系統(CAS)理論,認為軟件開發是高度不確定的動態過程,需通過試錯和持續學習逐步優化。
  • 三大核心原則
    1. 使命驅動(Mission-Driven)
      團隊圍繞共同目標(如“打造最佳用戶體驗”)協作,而非僵化遵循計劃。
      示例:目標是“6個月內上線一款顛覆市場的社交APP”,而非“完成100個需求點”。
    2. 基于特征(Feature-Based)
      以用戶價值為導向,交付可用的功能(Features),而非按階段劃分(如需求分析→設計→開發)。
      對比瀑布模型:ASD 每個迭代交付完整功能,瀑布模型階段結束后才交付完整產品。
    3. 迭代式(Iterative)
      通過短周期(如2-4周)迭代,持續獲取反饋并調整方向。
生命周期模型

ASD 的開發過程分為 3個非線性、可循環的階段

  1. 推測(Speculate)
    • 目標:制定初步計劃,但接受不確定性。
    • 活動:定義項目愿景、范圍,識別高風險用例,制定迭代計劃。
  2. 協作(Collaborate)
    • 目標:通過團隊協作和客戶反饋快速迭代。
    • 活動:開發功能、測試、集成,持續與客戶溝通調整需求。
  3. 學習(Learn)
    • 目標:總結經驗,優化流程和架構。
    • 活動:回顧會議、重構代碼、更新計劃。
適用場景
  • 高不確定性項目:需求頻繁變更、技術不成熟(如創新性產品開發)。
  • 快速驗證需求:需通過早期交付獲取市場反饋(如MVP開發)。
  • 小團隊協作:適合5-10人團隊,強調靈活性和快速響應。
Mermaid 流程圖
推測
協作
學習

5. 敏捷統一過程(Agile Unified Process, AgileUP)

核心理念
  • 輕量化迭代:AgileUP 是統一過程(UP)的輕量級變體,結合敏捷原則和UP的結構化框架。
  • 核心目標:通過頻繁迭代和早期反饋,確保項目在每個階段適應變化。
關鍵特性
  1. 快速迭代周期
    • 迭代周期更短(如1-2周),相比傳統UP的4-6周,提升響應速度。
  2. 輕量級過程設計
    • 簡化UP的文檔和流程,減少不必要的規范,聚焦于交付價值。
  3. 早期反饋
    • 在正式交付前盡早納入用戶反饋,通過原型或演示驗證需求。
  4. 靈活適配
    • 根據項目規模和復雜度調整實踐,如簡化用例驅動或架構設計。
七個主要因素

AgileUP 的核心指導原則可能包括以下要素(基于知識庫內容推斷):

  1. 范圍:明確項目邊界和目標。
  2. 時間:通過短迭代控制進度風險。
  3. 成本:動態調整資源分配。
  4. 質量:通過測試和評審確保交付質量。
  5. 風險:優先處理高風險用例。
  6. 團隊:自組織團隊協作。
  7. 客戶滿意度:持續交付用戶價值。
適用場景
  • 中大型項目:需平衡敏捷靈活性與UP的結構化(如企業級系統開發)。
  • 跨職能團隊:適合10-50人團隊,需兼顧流程規范和快速迭代。
  • 復雜架構需求:需在早期階段形成穩定架構(如金融或醫療系統)。
Mermaid 對比圖
重文檔 長迭代
輕量化 短迭代
傳統UP
AgileUP
敏捷開發
適用于大型項目
適用于小型項目

優勢與挑戰

方法優勢挑戰
XP高質量代碼、快速響應變化、團隊協作緊密。對團隊紀律性要求高,不適合需求不明確的項目。
Crystal靈活適配不同項目,強調團隊協作和透明性。缺乏統一框架,需團隊自行定制實踐。
Scrum明確角色和流程,適合跨職能團隊協作,快速交付價值。依賴團隊自組織能力,對Scrum Master要求高。
ASD高度適應不確定性,試錯和學習能力強。需要團隊高度自組織,缺乏固定流程可能導致混亂。
AgileUP平衡敏捷與規范,適合復雜項目,保留關鍵文檔。實施成本較高,需兼顧UP的結構化和敏捷的靈活性。

實際應用場景示例

方法典型場景
XP金融科技公司的高頻交易系統開發,需求頻繁變更。
Crystal大型醫療軟件項目,團隊規模50人,需靈活調整需求和資源。
Scrum電商初創團隊用Scrum開發MVP,每兩周Sprint迭代,快速驗證用戶需求。
ASDAI語音助手開發,需求不確定,通過短周期迭代和客戶協作調整方向。
AgileUP銀行核心交易系統開發,需兼顧安全性與敏捷性,早期構建穩定架構。

總結對比圖

敏捷開發方法
XP
Crystal
Scrum
ASD
AgileUP
嚴格流程, 適應性
靈活適配, 以人為本
迭代增量, 自組織
動態適應, 試錯學習
輕量UP, 結構化迭代

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90760.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 中圖標字符存儲問題探究:成因、解決方案及單字段編碼調整的利弊分析——仙盟創夢IDE

在 MySQL 數據庫應用中,常出現無法正確保存圖標字符,讀出時顯示為 “????” 的問題。本文深入剖析了該問題產生的原因,主要涉及字符編碼設置不匹配等因素。同時,提出了全面的解決方案,包括全局和單字段的字符編碼調…

快速上手UniApp(適用于有Vue3基礎的)

作為一位有Vue3基礎的開發者,學習UniApp將會是一個相對平滑的過程。UniApp是一個使用Vue.js開發跨平臺應用的前端框架,可以編譯到iOS、Android、H5以及各種小程序平臺。 一、UniApp簡介 UniApp是基于Vue.js的跨平臺開發框架,具有以下特點&a…

background和background-color的區別

前言:由于全局切換變量時,發現空頁面按鈕變量顏色未生效,審查元素發現變量未定義。實際上是背景色由純色變成了漸變色,而background-color不支持漸變色導致變量不生效特性backgroundbackground-color功能設置?所有?背景屬性&…

Vue Vue-route (5)

Vue 漸進式JavaScript 框架 基于Vue2的學習筆記 - Vue-route History模式和路由懶加載 目錄 History模式 設置history模式 后端配置 Apache 路由懶加載 配置 總結 History模式 設置history模式 Vue-route默認hash模式——使用URL的hash來模擬一個完整的URL&#xff0c…

家用智能攝像機PRV文件刪除的恢復方法

家用智能攝像頭一般采用的是mp4或者mov視頻方案,這一類方案文件通用性強、使用簡單,以MP4為例無論是APP在線播放還是TF卡接電腦查看都很輕松。即便如此,有些廠商還是走上了“自定義”的道路,自定義的文件結構導致無法正常播放&…

聊下easyexcel導出

直接上干貨&#xff0c;首先pom文件引入依賴 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version></dependency>接下來是java代碼 public void export(List<Liquidity…

[Python] Flask 多線程繪圖時報錯“main thread is not in main loop”的解決方案

在構建基于 Flask 的后端服務過程中,使用 matplotlib 繪圖時,很多開發者會遇到一個經典的運行時錯誤: RuntimeError: main thread is not in main loop這通常出現在服務開啟多線程時調用 matplotlib,本文將從原理、解決方式到部署建議進行全面解析。 一、問題來源:matpl…

dbEaver連接hbase,各種問題的終極解決

網上有不少文章&#xff0c;但基本都不行&#xff0c;主要還是hbase版本和phoenix版本的問題&#xff0c;經我測試&#xff0c;如下方法保證能連接成功。 1、下載phoenix: https://phoenix.apache.org/download.html 要選擇和你的hbase版本對應的版本。 2、解壓phoenix-hbase-2…

selenium中find_element()用法進行元素定位

1. 導入必要的模塊首先需要導入 By 類&#xff1a;from selenium.webdriver.common.by import By2. 常用定位方式(1) 通過ID定位element driver.find_element(By.ID, "username") element.send_keys("testuser") # 輸入內容 (2) 通過Name定位element dr…

第八講~~數據庫技術

前言&#xff1a;什么是數據庫&#xff1f;存儲數據的倉庫。常見的數據庫有哪些&#xff1f;————SQL Server&#xff08;數據庫較大 5G&#xff09;————Access————Oracle&#xff08;大型數據庫700多兆-200多兆&#xff09;&#xff08;付費&#xff09;————My…

無人機雷達模塊運行與技術解析

一、運行方式1. 傳感器數據采集 雷達發射高頻電磁波&#xff08;X/Ku波段或毫米波&#xff09;&#xff0c;接收無人機反射的回波信號。 多傳感器協同&#xff1a;雷達與光電、無線電偵測、聲學設備并行掃描空域&#xff0c;覆蓋不同頻段與物理特性&#xff08;如熱信號、聲紋…

STM32中ADC詳解

前言 在嵌入式系統中&#xff0c;模擬信號與數字信號的轉換是連接物理世界與數字系統的核心環節。ADC&#xff08;Analog-to-Digital Converter&#xff0c;模數轉換器&#xff09;作為實現這一轉換的關鍵外設&#xff0c;被廣泛應用于傳感器數據采集&#xff08;如溫濕度、光照…

機器學習(ML)、深度學習(DL)、強化學習(RL)關系和區別

機器學習&#xff08;ML&#xff09;、深度學習&#xff08;DL&#xff09;、強化學習&#xff08;RL&#xff09;關系和區別區別一、機器學習的技術分層與范疇二、深度學習&#xff08;DL&#xff09; vs. 強化學習&#xff08;RL&#xff09;&#xff1a;在ML中的對比三、深度…

醫療AI前端開發中的常見問題分析和解決方法

一、 前端性能優化問題 (醫療AI場景尤其關鍵) 頁面加載速度慢的原因及解決方案 原因: 海量數據加載: 加載高分辨率DICOM影像序列、大型患者數據集、復雜模型參數。復雜計算: 在瀏覽器端運行輕量級AI推理(如分割預覽)、大型圖表渲染。第三方庫臃腫: 醫學可視化庫(Corners…

python庫之jieba 庫

jieba 庫jieba 庫的原理分析jieba庫可用于將中文的一段語句分解為單詞,通常用于解析中文語句的含義。例如外國人需要學習中文而中文語句是一直連續的文字組合。例如“我們在學習Python辦公自動化”這句話,外國人在理解這句話的含義時,首先需要將這句話正確地分解為一個個單詞,即…

基于Hadoop的航空公司客戶數據分析與客戶群體K-measn聚類分析(含LRFMC模型)

文章目錄有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主項目介紹數據源介紹數據預處理hadoop集群分析建模分析總結每文一語有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主 項目介紹 本研究依托全國范圍內的航空公司…

實習內容總結

相關來自AI非內部資料 Monorepo 大倉 + pnpm + Turborepo 工程化實踐原理 核心概念解釋 1. Monorepo (單倉庫架構) 概念:將多個項目(packages)放在同一個代碼倉庫中管理,而非分散在多個倉庫。優勢:統一管理依賴、版本一致性、跨項目復用代碼、原子化提交、簡化CI/CD流程…

余電快速泄放電路

余電快速泄放電路&#xff0c;即放電電路&#xff0c;用在需要快速反復開關電源&#xff0c;且負載電路上有大容量電容的場景。 斷開電源開關后&#xff0c;如果負載電路有大電容&#xff0c;會引起負載電路上的電壓下降緩慢。此時如果重新接上電源開關&#xff0c;負載電路在未…

MOSFET驅動電路設計時,為什么“慢”開,“快”關?

MOSFET作為開關器件&#xff0c;在驅動電路中主要用于控制電流的通斷&#xff0c;比如在DC-DC轉換器、電機驅動或者功率放大電路中。它的開關過程&#xff08;開和關&#xff09;會直接影響電路的效率、發熱和可靠性。“慢開快關”的這個設計原則&#xff0c;背后有什么電路設計…

分音塔科技(BABEL Technology) 的公司背景、股權構成、產品類型及技術能力的全方位解讀

分音塔科技&#xff08;BABEL Technology&#xff09; 的公司背景、股權構成、產品類型及技術能力的全方位解讀 文章目錄**分音塔科技&#xff08;BABEL Technology&#xff09;** 的公司背景、股權構成、產品類型及技術能力的全方位解讀**一、公司背景&#xff1a;清華系AI企業…