軟體設計師衝刺筆記(一)

2021-08-29 20:10:54 字數 2813 閱讀 5160

目錄

軟體開發模型

軟體測試-mccabe複雜度

軟體維護

專案管理

物件導向的基本概念

物件導向設計7大原則

uml物件導向設計-設計模式分類

規範化理論-圖示法 求候選鍵

規範化理論

模式分解

軟考中演算法特徵(只有4種)

瀑布模型:需求必須是穩定的,明確的,只適合二次開發或需求是穩定的情況;

原型化模型:對需求明確性最低的模型,適用於需求不明確的情況,構造乙個簡易系統從而獲取需求;

螺旋模型:是多種模型的中合體,依據原型化模型發展來的,但融入了瀑布模型迭代模型等,還考慮到了風險性;

敏捷方法:輕量級的方法,強調小步快跑的模式完成系統開發,放棄文件以及相應的流程;

計算有向圖g的環路複雜度公式:v(g)=m-n+2    //邊-點+2

軟體維護型別

改正性維護:原軟體存在有bug,測試的時候沒有發現bug,在維護階段發現有問題要及時修正

適應性維護:環境因數變化;

預防性維護:對未來可能要進行的維護工作提前所做的準備;

完善性維護:擴充功能和改善效能;

gant圖:簡單直觀時間管理圖,直觀展現專案的計畫(粗線)以及實現(細線)的情況,以及對比分析,但活動之間邏輯依賴關係難以表達關係;

pert圖(活動網路圖):每乙個結點,每一條邊都構成乙個活動,清晰了解專案裡哪個活動比較早開展,哪個活動比較晚開展,分析關鍵路徑展示情況;

物件:屬性(資料)+方法(操作)+物件id

類:(實體類/控制類/邊界類)

繼承與泛化:復用機制

封裝:隱藏物件的屬性和實現細節,僅對外公開介面

多型:不同物件收到同樣的訊息產生不同的結果(用上層的物件指標進行統一的操作)

介面:一種特殊的類,他有方法定義沒有實現

過載:乙個類可以有多個同名的引數型別不同的方法

單一職責原則:設計目的單一的類

開放-封閉原則:對擴充套件開放,對修改封閉

李氏(liskov)替換原則:子類可以替換父類

依賴倒置原則:要依賴於抽象,而不是具體實現;針對介面程式設計,不要針對實現程式設計

介面隔離原則:使用多個專門的介面比使用單一的介面要好

組合重用原則:要盡量使用組合,而不是繼承關係達到重用的目的

迪公尺特(demeter)原則(最少知識法則):乙個物件應當對其他物件有盡可能少的了解

結構圖(靜態圖):類圖、物件圖、構件圖、部署圖(軟硬體之間對映)

行為圖(動態圖):用例圖(系統與外部參與者的互動)、順序圖(強調時間順序)、通訊圖(協助圖)、狀態圖(狀態轉換)、活**(類似程式流程圖、並行行為)

依賴關係(虛線+實心三角形):乙個事物發生變化影響另乙個事物

泛化關係(實線+空心三角形):特殊/一般關係

關聯關係(聚合+組合):描述一組鏈,鏈是物件之間的的連線

聚合關係(實線+空心菱形):整體與部分生命週期不同

組合關係(實線+實心菱形):整體與部分生命週期相同

實現關係(虛線+空心三角形):介面與類之間的關係

設計模式的思想:復用乙個解決方案,這些模式裡面已經存在了哪些介面,哪些類,這些類應該如何進行互動;

建立型模式(進行物件的建立)

1.工廠方法(factory method)模式:專門構造乙個方法,這個工廠的職能非常單一,就是生成物件;就是把建立物件的活給外部了,只需要指定的格式去呼叫工廠方法,就能夠得到需要的物件;

2.抽象工廠(abstract factory)模式

3.原型(prototype)模式

4.單例(singleton)模式:最大特點是每個類只能例項出乙個物件

5.構建器(builder)模式

結構型模式:

1.介面卡(adapter)模式:從一種介面轉換為另外一種介面

2.橋接(bridge)模式:解決類**問題

3.組合(composite)模式:整體和部分的構建

4.裝飾(decorator)模式

5.外掛程式(facade)模式

6.享元(flyweight)模式

7.**(proxy)模式

行為型模式

1.職責鏈(chain of responsibility)模式

2.命令(command)模式

3.直譯器(interpreter)模式

4.迭代器(iterator)模式

5.中介者(mediator)模式

6.備忘錄(memento)模式

7.觀察者(observer)模式

8.狀態(state)模式

9.策略(strategy)模式

10.模板方法(template method)模式

11.訪問者(visitor)模式

1.將關係的函式依賴關係,用「有向圖」表示;

2.找入讀為0的點,遍歷圖,如果能遍歷完所有的點,那麼就是候選鍵;

3.中間結點(既有入度,又有出度的點)進行遍歷,如果能遍歷所有結點,就是候選鍵;

1nf:屬性都是不可分的原子

2nf:消除非主屬性對候選鍵的部分函式依賴(當候選鍵是單屬性的時候,肯定是2nf)

3nf:消除非主屬性對候選鍵的傳遞函式依賴(a->b->c這就存在傳遞依賴)

bcnf:消除主屬性對候選鍵的部分和傳遞依賴

無損分解:能通過關聯查詢,恢復成原關係

保持函式依賴分解:出冗餘依賴,替他均能在拆分後的關係中找到

1.分治法:拆分,遞迴

2.動態規劃法(用於求最優解):拆分,但用陣列存

3.回溯法:不行就回退,然後不斷的嘗試

4.貪心法(用於求滿意解):只進行一步的策略,單步策略,累積起來可能是最優的策略

中級軟體設計師筆記

二進位制 10100.01 1x2的4次方 1x2的2次方 1x2的 2次方 七進製 604.01 6 7的2次方 4 7的0次方 1 7的 2次方 十進位制轉其他進製 短除法。求差 求和 等。短除法 94轉換為二進位制 2 94 餘 0 2 47 1 2 23 1 2 11 1 2 5 1 2 2...

軟體設計師複習(一)

1 常用的虛擬儲存器由 主存 輔存 兩級儲存器組成。2 中斷向量可提供 中斷服務程式的入口位址 3 為了便於實現多級中斷巢狀,使用 堆疊 來保護斷點和現場最有效。4 dma工作方式下,在 主存與外設 之間建立了直接的資料通路。5 利用報文摘要演算法生成報文主要的目的是 防止傳送的報文被篡改 6 防火...

軟體設計師教程目錄

第1章 計算機系統知識 1.1計算機系統基礎知識1 1.2計算機體系結構1 1.3安全性 可靠性與系統效能評測基礎知識34 第2章 程式語言基礎知識51 2.1程式語言概述5 1 2.2語言處理程式基礎6l 第3章 作業系統知識94 3.1作業系統基礎知識94 3.2處理機管理98 3.3儲存管理 ...