Sslimeinslime21023.hashnode.dev·Jan 4, 2025 · 2 min read筆記 - 軟體工程: 現代化方式 測試概述 軟體測試的重要性:軟體系統容易出現各種bug,測試是防止bug進入生產環境的重要手段。 測試的演變:從傳統的瀑布模型到敏捷方法,測試從單獨階段演變為與開發過程緊密結合。 自動化測試:現代測試強調自動化,開發者不僅實現系統類,還要編寫測試這些類的代碼。 測試金字塔 測試金字塔是一種用來分類和優先排序自動化測試的模型,最早由Mike Cohn提出。它將測試分為三個層次,從底部到頂部依次為單元測試、集成測試和端到端測試。每個層次的測試數量和複雜度隨著金字塔的高度增加而減少。 單元測試(...00
Sslimeinslime21023.hashnode.dev·Jan 1, 2025 · 1 min read筆記 - 軟體工程: 現代化方式 架構架構定義 架構的定義在軟體工程中具有重要意義,通常涉及高層次的設計。這意味著重點從個別類別的組織和介面轉移到更大的單位,如包、組件、模組、子系統、層或服務。具體的術語可能會有所不同,但核心概念是相同的:架構關注的是系統的整體結構和組織,而不是細節 。 這種高層次的設計方法有助於確保系統的可擴展性、可維護性和可重用性。通過將系統分解為更大的單位,開發人員可以更容易地理解和管理複雜的軟體系統。 系統與元件 架構和元件之間有著密切的關係。架構定義了系統的高層次設計和組織結構,而元件是實現這些設計和結構...00
Sslimeinslime21023.hashnode.dev·Dec 29, 2024 · 1 min read筆記 - 軟體工程: 現代化方式 設計原則設計原則 設計原則是軟體工程中的核心概念,旨在指導開發者如何構建高質量、可維護和可擴展的軟體系統。這些原則提供了一套經過驗證的方法,幫助開發者處理複雜性,提高系統的穩定性和靈活性。 概念完整性 概念完整性是指系統設計中的每個概念應該是完整和一致的。這意味著每個模塊或類應該有明確的職責和界限,並且應該與系統的其他部分協同工作。概念完整性有助於提高系統的可理解性和可維護性。 資訊隱藏 資訊隱藏是指隱藏模塊內部的細節,只暴露必要的接口。這有助於減少模塊之間的依賴性,提高系統的模塊化和可維護性。資訊隱藏...00
Sslimeinslime21023.hashnode.dev·Dec 29, 2024 · 2 min read筆記 - 軟體工程: 現代化方式 需求需求定義 需求定義了系統應該做什麼以及其運行的約束條件。系統應該做什麼屬於功能需求,而約束條件則由非功能需求描述。功能需求與非功能需求的區別 功能需求定義了系統應該執行的具體功能和行為,這些需求描述了系統在特定輸入或條件下應該如何運作,並且通常與用戶或其他系統的互動有關。 非功能需求與系統的質量屬性相關,包括性能、可用性、安全性、可移植性、隱私性以及內存和磁碟使用情況等。 需求規範的重要性 需求規範是軟體開發過程中的關鍵階段,即使系統設計優良、使用現代編程語言、採用最佳開發流程並具有高測...00
Sslimeinslime21023.hashnode.dev·Dec 29, 2024 · 2 min read筆記 - 軟體工程:現代化方式 流程敏捷宣言 最早的軟體開發流程,如 1970 年代開發的瀑布流程,遵循線性、順序的方法。通常,項目從需求規範階段開始,經過實施、測試、部署和維護階段。 採用這種嚴格順序的方法是合乎邏輯的,傳統工程領域的項目通常遵循基於詳細和前期計劃的順序流程。新興的軟體工程領域最初模仿了電子、土木、機械和航空航天工程等更成熟學科的流程。然而到了 1980 年代,軟體開發與其他工程實踐有顯著不同,這些項目經常超出時間和預算。 2001 年,十七位軟體行業專業人士在猶他州的 Snowbird 聚會,討論並提出一種替代...00