軟件設計師知識點
UML建模
一.UML類圖關係
總的來說,後幾種關係所表現的強弱程度依次爲:組合>聚合>關聯>依賴。
聚合的局部和整體可以分離,組合則不可分離,同生命週期。
二.UML用例圖中包含(include)、擴展(extend)和泛化(generalization)三種關係詳解
包含:當可以從兩個或兩個以上的用例中提取公共行爲時,應該使用包含的關係來表示它們。其中這個提取出來的公共用例成爲抽象用例,而把原始用例成爲基本用例或基礎用例。其中“<>”是包含關係的構造型,箭頭指向抽象用例。
例如,在機房收費系統中“註冊學生信息”和“充值”兩個用例都需要操作員或者管理員登陸,爲此,可以定義一個抽象用例“用戶登陸”。用例“註冊學生信息”和“充值”與用例“用戶登陸”之間的關係就是包含關係。
擴展:如果一個用例明顯地混合了兩種或者兩種以上的不同場景,即根據情況可能發生多種分支,則可以將這個用例分爲一個基本用例和一個或多個擴展用例,這樣可能會使描述更加清晰。擴展用例爲基用例添加新的行爲。擴展用例可以訪問基用例的屬性,因此他能根據基用例中擴展點的當前狀態來決定是否執行自己。而擴展用例對基用例不可見。如機房收費系統中“維護學生信息”操作時如果發現信息有誤或者更新則需要使用“修改學生信息”用例完成更新,所以用例“查詢上機記錄”和“導出EXCEL”之間的關係就是擴展關係。“<>”是擴展關係的構造型,箭頭指向基本用例。
包含關係和擴展關係的聯繫和區別
聯繫:都是從現有的用例中抽取出公共的那部分信息,作爲一個單獨的用例,然後通後過不同的方法來重用這個公共的用例,以減少模型維護的工作量。
區別:
包含關係中基本用例的基本流執行時,包含用例一定會執行。
****擴展關係中基本用例的基本流執行時,擴展用例不一定執行,即擴展用例只有在基本用例滿足某種條件的時候纔會執行;
泛化:當多個用例共同擁有一種類似的結構和行爲時,可以將他們的共性抽象成爲父用例,其他的用例作爲泛化關係的子用例。在用例的泛化關係中,子用例是父用例的一種特殊形式,它繼承了父用例的所有結構、行爲、關係。其中三角箭頭指向父用例。假如在機房收費系統的註冊可以通過本地註冊和網上註冊。則
順序圖(時序圖)
當流程涉及到多個角色,並且通過多對角色交互展開時,順序圖是不二選擇。
簡單語法:
如下:
通信圖
通信圖則是強調相互之間的關係。順序圖和通信圖基本同構,但是很少使用通信圖,因爲順序圖更簡潔,更直觀。
設計模式
- 適配器模式 :將一個類的接口轉化成客戶希望的另一個接口
- 橋接模式: 將抽象部分與實現部分分離
- 外觀模式(Facade): 爲子系統的一組接口提供一個一致的界面
- 觀察者模式:在對象之間定義了一對多的依賴,這樣一來,當一個對象改變狀態,依賴它的對象會收到通知並自動更新。
基礎知識
- 表示媒體:用於數據交換的編碼,例如圖像編碼、文本編碼等。
- 表現媒體: 信息輸入和輸出的媒體,例如鍵盤、鼠標、喇叭、打印機等。
可靠度
- 並聯系統可靠度:R=1-(1-R1)×(1-R2)×…×(1-Rn) 。
- 串聯繫統可靠度:R=R1 * R2 *R3 … Rn
海明碼
- 設數據位爲n位,檢驗碼爲k位,則應滿足
2^k - 1 >= n + k
- 可以檢錯也可以糾錯,利用奇偶性。
軟件工程
- 甘特圖:不能反映依賴關係。
- 項目計劃評審技術(PERT圖):不能反映並行性。
計算機網絡常識
- HTTPS是由 http+SSL 協議構建的可進行加密和傳輸、身份認證的網絡協議。
- 用戶A獲取用戶B的數字證書後通過驗證CA的簽名來確認數字證書的有效性,驗證CA的簽名時使用的是CA的公鑰。
- 數字簽名技術是將摘要信息使用發送者的私鑰加密,接受者使用發送者的公鑰解密;數字簽名驗證則是一個解密過程。
- 常用端口號,https爲443
白盒測試
白盒測試中常見的覆蓋有六種:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋和路徑覆蓋。
- 語句覆蓋:我們設計出來的測試用例要保證程序中的每一個語句至少被執行一次。通常語句覆蓋被認爲是“最弱的覆蓋”。
- 路徑覆蓋,意思是說我們設計的測試用例可以覆蓋程序中所有可能的執行路徑。這種覆蓋方法可以對程序進行徹底的測試用例覆蓋,最強的覆蓋。
共享鎖和排它鎖(數據庫)
- 共享鎖
又稱讀鎖,獲得共享鎖可以讀取數據,不能修改和刪除數據。如果事務T對數據對象加上S鎖,則其他事務只能對該數據對象加上S鎖,不能加排他鎖。保證了可以併發讀取數據,同時不會有其他事務在存在事務持有共享鎖時修改數據。 - 排它鎖
又稱爲寫鎖、獨佔鎖。若事務T對數據對象A加上X鎖,則只允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務在T釋放A上的鎖之前不能再讀取和修改A。
關鍵路徑
- 最早開始時間:關鍵路徑 - 包含該點的最長路 ; 正向
- 最晚開始時間:關鍵路徑 - 包含該路徑的最小路 逆向
- 關鍵路徑中的某活動GH的鬆弛時間: 即爲關鍵路徑長度減去包含活動GH的最長路徑。
- 此題關鍵路徑長度20,活動KL的的前驅節點爲K,
最晚開始時間=(20+1)-3=18
(此處加1意義同上,但在計算最晚開始時間時只在最後活動加1,其他活動不必再加1,考慮考慮,這是符合常理的)
最早開始時間=max{c(ABDIJ),c(ABIJ),c(AEGJ),c(AEGH),c(ACFH)}+1=15
所以, KL:Earliest start Time:15, latest Start Time:18 Slacktime:3;
注意:工程意義需要加1
軟件法規
- 軟件著作權
軟件著作權屬於軟件開發者,軟件著作權自軟件開發完成之日起產生。
操作系統
文件結構
- 某文件系統採用多級索引結構,若磁盤塊的大小爲512B,每個塊號需佔3B,那麼根索引採用一級索引時的文件最大長度爲 ____ KB;採用二級索引時的文件最大長度爲_____KB。
本題考查操作系統中文件管理的基本知識。
根據題意,磁盤塊的大小爲512B,每個塊號需佔3B,因此一個磁盤物理塊可存放512/3=170個塊號。
n級索引即 :每級塊號的個數 ^ n * 塊號的大小
根索引採用一級索引時的文件最大長度爲:170×512/1024=87040/1024=85KB
根索引採用二級索引時的文件最大長度爲:170×170×512/1024=28900×512/1024=14450KB
例題
編譯時候的綁定爲靜態綁定,運行時的綁定爲動態綁定
-
快速恢復數據庫的方法有:將數據更新(插入、刪除、修改)的全部有關內容先寫入日誌文件
-
有窮自動機是進行詞法分析的工具。