架構師備考的一些思考(三)

kiba518發表於2024-09-12

前言

這個考題的大部分內容,我感覺都是我們會的,但所有的考題都穿上了馬甲,穿上馬甲我們就不好認了,而且如果是一個兩個人穿馬甲,還好推斷,如果1000人穿馬甲,你識別的機率就會急速下降。
有些題的內容則是即無法識別,也無法背,因為它也沒有個前因後果,完全是出題人拍腦袋想的,所以,這種題我們是無法透過知識來判斷的,因為用知識來判斷,你會發現,四個選項全是正確的,這時我們可以採用逐字讀題法,就是一個字一個字的讀,然後把答案分別放裡,看看哪個讀起來更順。

  • 例如這題:
    資訊系統規劃方法中,關鍵成功因素法透過對關鍵成功因素的識別,找出實現目標所需要的關鍵資訊集合,從而確定系統開發的()。關鍵成功因素來源於組織的目標,透過組織的目標分解和關鍵成功因素識別、( )識別,一直到產生資料字典。
    A.系統邊界 B. 功能指標 C.優先次序 D.效能指標
    逐字閱讀,會發現C和D適合倆個空。

正題

嵌入式系統

就是安卓系統,安裝系統是計算模式。

  • 混成系統
    嵌入式系統子類
    就是安卓系統加入了感測器的SDK,就是汽車上的安卓系統

控制模式

  • 計算模式控制
    就是cpu分配模式,合理利用資源,缺點一癱瘓全癱瘓。
  • 同步非同步控制
    就是同步非同步,缺點就是會有延遲,優點是一個延遲不影響別人。市面的大系統沒有這模式的,這模式一般是我們開發的系統,比如交易,流水線等等。

tcp埠號作用

這個比較冷門,是對應用層程序定址用的,我們寫tcp程式碼時是要寫埠號的,但那個是屬於tcp協議部分,tcp協議用那個埠號建立連線,如果單問埠號的作用,那它就是應用層程序定址用的。

DHCP

DHCP(Dynamic Host Configuration Protocol)就是自動給電腦分配IP的一個協議,電腦插上網線就會發這個協議,路由器收到後就會回一個訊息,給電腦一個ip,然後我們使用ipconfig命令就能看到IP地址了。

概要設計和詳細設計

  • 概要設計:講軟體需求轉化為資料結構和軟體系統結構。
  • 詳細設計:過程設計,透過對結構細化,得到軟體詳細資料結構和演算法。
    注意1:這裡的資料結構不是我們認知中的資料結構,他是指流程圖,我們在寫概要設計時,即使再省略,也還是要寫流程圖的。
    注意2:詳細設計的演算法,就是我們寫的虛擬碼,加減乘除,連表查詢在這裡都是演算法。

軟體結構化設計

就是網站開發,好聽點就是叫網站應用開發,或者高階點ERP,MIS,CRM。
步驟是:繫結構設計、介面設計、資料設計和過程設計。
這個其實是特指java+vue的前後臺分離開發中的java後臺介面專案的設計。具體對應真實操作如下:
繫結構設計:框架開發。
介面設計:controller設計。
資料設計:資料庫設計。
過程設計:程式碼開發。

軟體逆向工程

軟體逆向工程匯出資訊的四個抽象層次:
A.實現級:程式碼
B.結構級:函式
C.功能級:類
D.領域級:package包/名稱空間

測試方法

強度測試:是在系統資源特別低的情況下考查軟體系統極限執行情況。
負載測試:用於測試超負荷環境中程式是否能夠承擔。透過負載測試,確定在各種工作負載下系統的效能,目標是測試當負載逐漸增加時,系統各項效能指標的變化情況。
壓力測試:透過確定系統的瓶頸或不能接收的效能點,來獲得系統能夠提供的最大服務級別的測試。負載測試和壓力測試可以結合進行,統稱為負載壓力測試。
容量測試:併發測試也稱為容量測試,主要用於測試系統可同時處理的線上最大使用者數量。

  • 強度測試:測試效能,測系統卡不卡,什麼時候卡。
  • 負載測試:測可靠性,測系統掛不掛,什麼情況掛,理解為用人的數量測。
  • 壓力測試:測可靠性,測系統掛不掛,什麼情況掛,理解為用介面呼叫次數測。
  • 容量測試:測併發數。

設計方法

ABSD/ABSDM——基於體系結構的軟體設計,這個應該是必考的,需要背。
其步驟如下:
【需求=>設計=>文件化=>複審=>實現=>演化】
這個設計模式還是挺好的,可以學習一下,我以前也寫過關於他的文章。
ABSD/ABSDM

軟體方法學是

軟體方法學是以軟體開發方法為研究物件的學科。
自定向下開發方法:是先對最高層次中的問題.進行定義、設計、程式設計和測試,而將其中未解決的問題作為一個子任務放到下一層次中去解決。
自底向上開發方法:是根據系統功能要求,從具體的器件、邏輯部件或者相似系統開始,透過對其進行相互連線、修改和擴大,構成所要求的系統。
形式化開發方法:是建立在嚴格數學基礎上的軟體開發方法。
非形式化方法(代表-頭腦風暴):不把嚴格性作為其主要著眼點,通常以各種開發模型的形式得以體現。從適應範圍來看,可分為整體性方法與區域性性方法。適用於軟體開發全過程的方法稱為整體性方法;適用於開發過程某個具體階段的軟體方法稱為區域性性方法。

必死題

關於模組化設計,( )是錯誤的。
A.模組是指執行某一特定任務的資料結構和程式程式碼
B.模組的介面和功能定義屬於其模組自身的內部特性
C.每個模組完成相對獨立的特定子功能,與其他模組之間的關係最簡單
D.模組設計的重要原則是高內聚、低耦合

首先要理解,這裡的模組是[專指]java的專案下的子專案,就是IDEA裡的new->module。
這道題答案是B,但4個答案都是正確的,而且是那種完全正確的那種。
解析:

模組的介面是模組與其他模組進行互動的部分,所以介面的定義不僅僅屬於其模組自身的內部特性,與外部模組也具有相關性。B 選項的描述是錯誤的。

這是純純的文字遊戲,按這種解析方式,我也可以把上面4個答案都解析成錯的。
那也就是說,今年再出這題,換一個解析方式,答案就可以是A,C,D。
比如模組設計的重要原則是不僅僅是高內聚、低耦合,還有職責分離原則。所以D是錯的,這也能解釋的過去。
所以這樣的題,就只能放棄了,必死題。

構件組裝是指將庫中的構件經適當修改後相互連線構成新的目標軟體。()不屬於構件組裝技術。
A.基於功能的構件組裝技術
B. 基於資料的構件組裝技術
C.基於實現的構件組裝技術
D.物件導向的構件組裝技術

解析:

構件組裝技術大致可分為基於功能的組裝技術、基於資料的組裝技術和麵向物件的組裝技術。
答案:C。

構件組裝有這個概念,但基於xxx的構件組裝技術,這是純純的他們憑空想象出來的概念,這種題一般都只考一次,因為明年他們會再想一個新的概念考你,背也沒用,首先不會再考,其次,現實中沒這定義。


注:此文章為原創,任何形式的轉載都請聯絡作者獲得授權並註明出處!



若您覺得這篇文章還不錯,請點選下方的【推薦】,非常感謝!

https://www.cnblogs.com/kiba/p/18409540

相關文章