Skip to main content

Command Palette

Search for a command to run...

Latest articles

  1. 筆記 - 軟體工程: 現代化方式 測試

    概述 軟體測試的重要性:軟體系統容易出現各種bug,測試是防止bug進入生產環境的重要手段。 測試的演變:從傳統的瀑布模型到敏捷方法,測試從單獨階段演變為與開發過程緊密結合。 自動化測試:現代測試強調自動化,開發者不僅實現系統類,還要編寫測試這些類的代碼。 測試金字塔 測試金字塔是一種用來分類和優先排序自動化測試的模型,最早由Mike Cohn提出。它將測試分為三個層次,從底部到頂部依次為單元測試、集成測試和端到端測試。每個層次的測試數量和複雜度隨著金字塔的高度增加而減少。 單元測試(...

    Jan 4, 20252 min read
    筆記 - 軟體工程: 現代化方式 測試
  2. 筆記 - 軟體工程: 現代化方式 架構

    架構定義 架構的定義在軟體工程中具有重要意義,通常涉及高層次的設計。這意味著重點從個別類別的組織和介面轉移到更大的單位,如包、組件、模組、子系統、層或服務。具體的術語可能會有所不同,但核心概念是相同的:架構關注的是系統的整體結構和組織,而不是細節 。 這種高層次的設計方法有助於確保系統的可擴展性、可維護性和可重用性。通過將系統分解為更大的單位,開發人員可以更容易地理解和管理複雜的軟體系統。 系統與元件 架構和元件之間有著密切的關係。架構定義了系統的高層次設計和組織結構,而元件是實現這些設計和結構...

    Jan 1, 20251 min read
  3. 筆記 - 軟體工程: 現代化方式 設計原則

    設計原則 設計原則是軟體工程中的核心概念,旨在指導開發者如何構建高質量、可維護和可擴展的軟體系統。這些原則提供了一套經過驗證的方法,幫助開發者處理複雜性,提高系統的穩定性和靈活性。 概念完整性 概念完整性是指系統設計中的每個概念應該是完整和一致的。這意味著每個模塊或類應該有明確的職責和界限,並且應該與系統的其他部分協同工作。概念完整性有助於提高系統的可理解性和可維護性。 資訊隱藏 資訊隱藏是指隱藏模塊內部的細節,只暴露必要的接口。這有助於減少模塊之間的依賴性,提高系統的模塊化和可維護性。資訊隱藏...

    Dec 29, 20241 min read
    筆記 - 軟體工程: 現代化方式 設計原則
  4. 筆記 - 軟體工程: 現代化方式 需求

    需求定義 需求定義了系統應該做什麼以及其運行的約束條件。系統應該做什麼屬於功能需求,而約束條件則由非功能需求描述。功能需求與非功能需求的區別 功能需求定義了系統應該執行的具體功能和行為,這些需求描述了系統在特定輸入或條件下應該如何運作,並且通常與用戶或其他系統的互動有關。 非功能需求與系統的質量屬性相關,包括性能、可用性、安全性、可移植性、隱私性以及內存和磁碟使用情況等。 需求規範的重要性 需求規範是軟體開發過程中的關鍵階段,即使系統設計優良、使用現代編程語言、採用最佳開發流程並具有高測...

    Dec 29, 20242 min read
    筆記 - 軟體工程: 現代化方式 需求
  5. 筆記 - 軟體工程:現代化方式 流程

    敏捷宣言 最早的軟體開發流程,如 1970 年代開發的瀑布流程,遵循線性、順序的方法。通常,項目從需求規範階段開始,經過實施、測試、部署和維護階段。 採用這種嚴格順序的方法是合乎邏輯的,傳統工程領域的項目通常遵循基於詳細和前期計劃的順序流程。新興的軟體工程領域最初模仿了電子、土木、機械和航空航天工程等更成熟學科的流程。然而到了 1980 年代,軟體開發與其他工程實踐有顯著不同,這些項目經常超出時間和預算。 2001 年,十七位軟體行業專業人士在猶他州的 Snowbird 聚會,討論並提出一種替代...

    Dec 29, 20242 min read
    筆記 - 軟體工程:現代化方式 流程
  6. 筆記 - 軟體工程:現代化方式 簡介

    歷史及定義 軟體工程的定義:軟體工程是一門系統化、規範化和可量化的方法,用於開發、運行和維護軟體,即將工程化方法應用於軟體開發,以確保軟體產品的高質量和可靠性。 歷史背景: 軟體工程的概念最早可以追溯到1960年代,當時隨著計算機技術的快速發展,軟體開發的複雜性和規模也在不斷增加。1968年,北大西洋公約組織(NATO)舉辦了第一次軟體工程會議,正式提出了「軟體工程」這一術語,強調了將工程原則應用於軟體開發的重要性。 軟體危機:20世紀60年代和70年代,軟體開發面臨著許多挑戰,包括項目延期、超...

    Dec 28, 20241 min read
    筆記 - 軟體工程:現代化方式  簡介
  7. Lld - 狀態圖

    狀態機圖(State Machine Diagram),是用於描述單一物件在其生命週期中,因事件觸發而產生的狀態變化的重要工具。狀態機圖的主要目的是幫助開發者和設計者理解對象在其生命周期內的行為和狀態變化,並作為系統設計和實現的工具。它可以用於需求分析、系統設計、嵌入式系統開發和文檔編寫等階段。 狀態機圖的核心概念 狀態機圖主要用於描述單一物件在其生命週期內,由於事件觸發而產生的狀態變化。它著重於「物件在不同時間點可能處於的狀態」,以及「導致這些狀態變化的事件」。與活動圖著重於流程不同,狀態機圖...

    Dec 22, 20241 min read
    Lld - 狀態圖
  8. Lld - 活動圖

    活動圖(Activity Diagram)是統一建模語言(UML)中的一種圖形化表示方法,用於描述系統中的動態行為和工作流程,類似於流程圖,但更強調物件的行為和並行活動的處理。 活動圖的主要目的是幫助開發者和設計者理解系統中的動態行為和工作流程,並作為系統設計、業務流程建模和工作流管理的工具。它可以用於需求分析、系統設計、業務流程重組和文檔編寫等階段。 活動圖的基本元素 起始節點:表示活動的起點,以實心圓表示。一個活動圖通常只有一個起始節點。 活動:表示一個執行的步驟或任務,以圓角矩形表示。...

    Dec 22, 20241 min read
    Lld - 活動圖
  9. Lld - 循序圖

    循序圖(Sequence Diagram)是統一建模語言(UML)中的一種圖形化表示方法,用於描述系統中對象之間的動態互動。它著重於描述物件之間訊息傳遞的時間順序,以時間為縱軸,物件為橫軸,清楚地展示了物件如何互動以完成特定的使用案例或場景。循序圖常用於詳細設計階段,幫助開發團隊理解和驗證系統的行為。 循序圖的主要目的是幫助開發者和設計者理解系統中對象之間的互動過程,並作為系統設計和實現的工具。它可以用於需求分析、系統設計、測試案例設計和文檔編寫等階段。 循序圖的基本元素 物件 (Object...

    Dec 22, 20241 min read
    Lld - 循序圖