【軟件設計師】知識點總結

  1. 馮式結構計算機:存儲器、運算器、控制器、輸入設備和輸出設備。
  2. 算術運算和邏輯運算的等價關係:一般而言,左移1位相當於*2,右移一位相當於/2,但注意符號位。
  3. 所謂尋址就是尋找操作數的地址,操作數所處的位置,可以決定指令的尋址方式:
    ①立即尋址:操作數包含在指令中;
    ②寄存器尋址:操作數在寄存器中;
    ③寄存器間接尋址:操作數的地址在寄存器中;
    ④相對尋址方式的實際地址是程序計數器的內容加上指令中形式地址值,得到需要的地址。
  4. 特權指令是計算機的操作系統的基本指令,是由系統執行的,主要用於系統資源的分配和管理。
  5. 中央處理器(Centrol Processing Unit)由寄存器組、算術邏輯單元ALU和控制單元CU這三部分組成。
    CPU的功能包括:讀取指令、解釋指令、讀取數據、處理數據、保存數據
  6. 計算機中的存儲系統是用來保存數據和程序的,對存儲器的最基本的要求就是存儲容量要大、存取速度快、成本價格低。
  7. 相聯存儲器的訪問方式最重要的特徵是按照存儲器中的單元內容訪問,而不是按照地址訪問。
  8. 高速緩存(Cache)用來存放當前最活躍的程序和數據。Cache 位於主存與 CPU之間,解決主存與 CPU 速度匹配問題。其功能全部由硬件來實現。Cache 由兩部分組成:控制部分和 Cache 存儲器部分。
  9. Cache中常見的映射方法有三種:直接映射(一對一)、全相聯映射(多對多)、組相聯映射(將塊劃分成組,主存中的一組與Cache相對應)。
  10. 替換算法的目標是使 Cache 獲得最高的命中率。
  11. FORTRAN 是第一個被廣泛用於科學計算的高級語言。
  12. COBOL 是一種面向事務處理的高級語言。
  13. PASCAL 語言提供爲數不多但相當緊湊的機制,使得這個語言具有相當強的表達能力。
  14. C 是一種通用程序設計語言。C 作爲一種較低級的語言,提供了指針和地址操作的功能。C 與 UNIX 操作系統緊密相關,UNIX 操作系統及其上的許多軟件都是 C 編寫的。
  15. C++是在 C 語言的基礎上發展起來的與 C 兼容的語言。主要增加了類功能,成爲面向對象的程序設計語言。
  16. 磁盤存取時間=尋道時間+等待時間。一般用磁道旋轉一週所用的時間的一半作爲平均等待時間。
  17. 直接存儲器訪問(DMA,Direct Memory Acess,又稱直接內存存取)是一種快速傳遞大量數據常用的技術。
  18. 軟件的生存週期,主要有可行性分析與項目開發計劃、需求分析、設計(概要設計和詳細設計)、編碼、測試、維護等活動。軟件生存期模型用來描述這些階段的具體實現。總體分爲三種模型:第一個是文檔驅動,第二個是需求驅動,第三個是風險驅動。
  19. 軟件的開發和維護分爲 8 個階段,分爲可行性研究和計劃、需求分析、概要設計、詳細設計、實現、組裝測試、確認測試和使用維護。其中單元測試是在實現階段完成的,組裝測試的計劃是在概要設計階段制定的,確認測試的計劃是在需求分析階段制定的。
  20. 結構化設計(Structured Design,SD)方法是一種面向數據流的設計方法。
  21. Jackson 設計方法是一種典型的面向數據結構的設計方法。
  22. Jackson 分析方法是面向數據流的分析方法。
  23. 常見的軟件生存週期模型有瀑布模型、演化模型、螺旋模型、噴泉模型
    調\color{#FF0000}{瀑布模型本質上是一種線性順序模型,各階段之間存在着嚴格的順序性和依賴性,特別強調預先定義需求的重要性。}瀑布模型屬於整體開發模型,它規定在開始下一個階段的工作之前,必須完成前一階段的所有細節,缺乏靈活性,無法解決軟件需求不明確或不準確的問題,突出的缺點是不適應用戶需要的變動。\color{#FF0000}{與瀑布模型相適應的軟件開發方法是結構化方法}
    軟件開發模型用於指導軟件的開發。演化模型是在快速開發一個原型的基礎上,逐步演化成最終的軟件,演化模型特別適用於對軟件需求缺乏準確認識的情況。螺旋模型綜合了瀑布模型和演化模型的優點,並增加了風險分析。\color{#FF0000}{噴泉模型是一種以用戶需求爲動力,以對象作爲驅動的模型,適用於面向對象的開發方法,反映了該開發過程的迭代和無間隙特徵。}採用螺旋模型時,軟件開發沿着螺線自內向外旋轉,每轉一圈都要對風險進行識別和分析,並採取相應的對策。螺旋線第一圈的開始點可能是一個概念項目。第二圈開始,一個新產品開發項目開始了,新產品的演化沿着螺旋線進行若干次迭代,一直運行到軟件生命期結束。使\color{#FF0000}{在開發一個系統時,如果用戶對系統的目標不是很清楚,難以定義需求,這裏最好使用原型法。}
  24. 白盒測試方法一般適用於單元測試。黑盒測試也稱爲功能測試。黑盒測試不能發現是否存在冗餘代碼。軟件測試的目的是儘可能多地發現軟件系統中的錯誤和缺陷。
  25. Alpha 測試是由一個用戶在開發者的場所來進行的, Beta 測試是由軟件的最終用戶在一個或多個用戶場所來進行的,開發都通常不在現場。
  26. 軟件工程技術應遵循分解、一致性、確定性及抽象和信息隱蔽的原則。軟件工程的三要素:方法、工具和過程。軟件可行性研究包括技術可行性、經濟可行性、法律可行性、社會可行性。
  27. CVS 是一種版本控制工具。(Concurrent Version System 版本控制系統)
  28. 軟件工程是將系統化的、規範的、可定量的方法應用於軟件的開發、運行和維護的過程,它包括方法、工具和過程 3 個要素。
  29. 信號量:一個與隊列有關的表示資源實體的整型變量,其值僅能由 P、V 操作來改變。信號量的物理意義:當信號量的值大於或等於 0 時,表示系統當前可用資源實體數目;當信號量的值小於 0 時,其絕對值表示系統中等待該信號量的進程數目。
  30. 操作系統的功能模塊有:處理器(機)管理、存儲管理、設備管理、文件管理、
    用戶接口。
  31. 數據庫按數據模型來分,可分爲層次模型數據庫、網狀模型數據庫和關係數據庫 3 大類。
  32. ISO/OSI 的參考模型共有七層,由低層到高層分別爲:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層
    物理層提供爲建立、維護和拆除物理鏈路所需的機械、電氣、功能和規程的特性。提供有關在傳輸介質上傳輸非結構的二進制流及物理鏈路故障檢測指示。在這一層,數據還沒有被組織,僅作爲原始的位流或電氣電壓處理,單位是比特。
    數據鏈路層負責在兩個相鄰結點間的線路上,通過校驗、確認和反饋重發等方法將原始的不可靠的物理連接發行成無差錯的數據通道,並進行流量控制。每一幀包括一定數量的數據和一些必要的控制信息。與物理層相似,數據鏈路層要負責立、維護和釋放數據鏈路的連接。在傳送數據時,如果接收點檢測到所傳數據中有差錯,就要通知對方重發這一幀。
    網絡層爲傳輸層實體提供端到端的交換網絡數據傳送功能,包括通信子網中從源到目標路徑的選擇。提供數據報服務和虛電路服務兩類典型的數據分組傳送服務方式。服務訪問點:邏輯地址(網絡地址)。代表協議有IP、IPX等。
    運輸層也稱傳輸層,爲會話層實體提供透明、可靠的數據傳輸服務,保證端到端的數據完整性。服務訪問點:端口。代表協議TCP、UDP、SPX等。
    會話層的作用是允許在不同的主機上的各種進程之間進行會話。建立、管理、終止應用程序之間的會話
    表示層爲應用層提供共同需要的數據或信息語法表示交換。數據的壓縮、解壓縮、加密和解密等工作都由表示層負責。
    應用層提供 OSI 用戶服務,是用戶訪問開放式系統互聯模型的界面,它向用戶提供各種直接的應用服務,如文件傳送、電子郵件、虛擬終端、遠程數據庫訪問等。HTTP、Telnet、FTP、SMTP等
    整個模型圖
  33. SNMP 用於網絡管理,WAP 用於移動電話無線上網,PPP 可用於家庭撥號上網,HDLC 是一種面向比特的數據鏈路通信規程,OSPF 是一種路由選擇協議。
  34. 不同的對象收到同一消息可以產生完全不同的結果,這一現象叫做多態。多態有幾種不同的形式,參數多態和包含多態稱爲通用多態,過載多態和強制多態稱爲特定多態。面向對象技術中,對已有的實例的特徵稍作改變就可生成其他的實例,這種方式稱爲繼承。
  35. 統一建模語言(Unified Modeling Language)UML 由三個要素構成:UML 的基本構造塊、支配這些構造塊如何放置在一起的規則和運用於整個語言的一些公共機制
  36. UML 的詞彙表包含了 3 種構造塊:事物、關係和圖。事物是對模型中最具有代表性的成分的抽象;關係把事物結合在一起;圖聚集了相關的事物;UML 中有4 種事物:結構事物、行爲事物、分組事物和註釋事物。
  37. UML 中有 4 種關係:依賴(帶箭頭虛線,由依賴的一方指向被依賴的一方)、關聯(聚合關係、組合關係)、泛化(繼承的反關係)和實現。
  38. 模型圖分爲二大類:
    ·靜態模型(系統結構)
    用例圖、類圖、對象圖、構件圖、部署圖(軟硬件)
    ·動態模型(系統行爲)
    狀態圖、活動圖、順序圖、協作圖

數據結構及算法基礎

  1. 廣義表的深度定義是,廣義表中括弧的層數。廣義表的長度定義是,廣義表中元素的個數。
  2. 若廣義表 L=((1,2,3)),則 L 的長度和深度分別爲 1 和 2 。若一個具有 n 個結點、k 條邊的非連通無向圖是一個森林(n>k),則該森林必有 n-k 棵樹。
  3. 在一棵度爲 3 的樹中,若有 2 個度爲 3 的結點,有 1 個度爲 2 的結點,則有 6 個度爲 0 的結點。【結點的度:一個結點含有的子樹的個數稱爲該結點的度;樹的度:一棵樹中,最大的結點的度稱爲樹的度;】
  4. 在二叉樹的第 i 層至多有 2^(i-1) 個結點(i>=1)
  5. 深度爲 k 的二叉樹至多有 2^k - 1 個結點(k>=1)
  6. 對任何一棵二叉樹,葉子結點數=度爲 2 的結點總數+1
  7. 具有 n 個結點的完全二叉樹的深度爲log 1 2 n 
    設森林 F 中有 n 個非葉子結點,則由它轉換得到的二叉樹中右域爲空的結點
    個數爲 n+1
  8. 任何一個藉助“比較”進行排序的算法,在最壞情況下所需的比較次數至少爲 |log₂(n!)|
  9. 無論是深度優先還是廣度優先搜索遍歷,圖中 N 個結點都必須被訪問一次。用鄰接矩陣做圖的存儲結構時,其時間複雜度爲 O(n²) 。若用鄰接表作爲存儲結構,時間複雜度爲 O(n+e) 。深度優先搜索遍歷和廣度優先搜索遍歷的空間複雜度都爲 O(n)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章