一、軟件系統建模
系統建模流程包括如下:
二、人機交互設計
黃金三法則:
1、置于用戶控制之下
以不強迫用戶進入不必要的或不希望的動作的方式來定義交互方式
提供靈活的交互
允許用戶交互可以被中斷和撤銷
當技能級別增加時可以使交互流水化并允許定制交互
使用戶隔離內部技術細節
設計應允許用戶和出現在屏幕上的對象直接交互
2、減少用戶的記憶負擔
減少對短期記憶的要求
建立有意義的缺省、
定義直覺性的捷徑
界面的視覺布局應該基于真實世界的隱喻
以不斷進展的方式揭示信息
3、保持界面的一致性
允許用戶將當前任務放入有意義的語境
在應用系列內保持一致性
如過去的交互模型已建立起了用戶期望,除非有迫不得已的理由,不要改變它
例子:
下列關于用戶界面設計的敘述中,錯誤的是()。
A 界面交互模型應經常進行修改
B 界面的視覺布局應該盡量與真實世界保持一致
C所有可視信息的組織需要按照統一的設計標準
D 確保用戶界面操作和使用的一致性
參考答案:A
三、結構化設計
概要設計【外部設計】:功能需求分配給軟件模塊,確定每個模塊的功能和調用關系,形成模塊結構圖
詳細設計【內部設計】:為每個具體任務選擇適當的技術手段和處理方法
結構化設計原則:
模塊獨立性原則(高內聚、低耦合)
保持模塊的大小適中多扇入,少扇出
深度和寬度均不宜過高(深度過高調用層次太多,寬度即分支多)
內聚:
高內聚-》低內聚
內聚類型
功能內聚 :完成一個單一功能,各個部分協同工作,缺一不可
順序內聚:處理元素相關,而且必須順序執行
通信內聚:所有處理元素集中在一個數據結構的區域上
過程內聚:處理元素相關,而且必須按特定的次序執行
時間內聚(瞬時內聚):所包含的任務必須在同一時間間隔內執行
邏輯內聚:完成邏輯上相關的一組任務
偶然內聚(巧合內聚):完成一組沒有關系或松散關系的任務
耦合
低耦合 -》高耦合:
非直接耦合:兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的
數據耦合:一組模塊借助參數表傳遞簡單數據
標記耦合:一組模塊通過參數表傳遞記錄信息(數據結構)
控制耦合:模塊之間傳遞的信息中包含用于控制模塊內部邏輯的信息
外部耦合:一組模塊都訪問同一全局簡單變量,而且不是通過參數表傳遞該全局變量的信息
公共耦合:多個模塊都訪問同一個公共數據環境
內容耦合:一個模塊直接訪問另一個模塊的內部數據;一個模塊不通過正常入口轉到另一個模塊的內部;兩個模塊有一部分程序代碼重疊;一個模塊有多個入口
模塊四要素:
模塊的四個要素
輸入和輸出: 模塊的輸入來源和輸出去向都是同一個調用者,即一個塊從調用者那兒取得輸入,進行加工后再把輸出返回調用者。
處理功能: 指模塊把輸入轉換成輸出所做的工作。
內部數據: 指僅供該模塊本身引用的數據。
程序代碼: 指用來實現模塊功能的程序。
四、面向對象設計
1、基本過程
分析模型:分用例模型、分析模型(領域模型
設計師參與:設計用例實現方案、設計技術支撐實施、設計用戶界面、細化設計模型
設計模型:架構圖(用包圖表示)、用例實現圖(用交互圖表示)、類圖(完整、精確)、
其他(狀態圖、活動圖等)
2、類的分類
邊界類: 機器接口、API接口、人機交互、用戶界面,例:窗口、通信協議、打印機接口、傳感器、終端、報表、對話
框菜單、顯示屏、二維碼
控制類: 應用邏輯、業務邏輯、數據訪問邏輯
例:身份驗證器
實體類: 數據 例:學員類、課程類
3、面向對象設計原則
單一職責原則: 設計目的單一的類
開放-封閉原則: 對擴展開放,對修改封閉
李氏(Liskov)替換原則(里氏): 子類可以替換父類,泛化,子類繼承了父類的所有特性
依賴倒置原則: 要依賴于抽象,而不是具體實現;針對接口編程,不要針對實現編程,基于某個標準要求
接口隔離原則: 使用多個專門的接口比使用單一的總接口要好
組合重用原則: 要盡量使用組合,而不是繼承關系達到重用目的
迪米特(Demeter)原則(最少知識原則):一個對象應當對其他對象有盡可能少的了解
例子:
最少知識原則(也稱為迪米特原則)是面向對象設計原則之一,指一個軟件實體應當盡可能少地與其他實體發生相互作用。這樣,當一個實體被修改時,就會盡可能少地影響其他的實體。下列敘述中,“()”不符合最少知識原則。
A 在類的劃分上,應當盡量創建松耦合的類
B 在類的設計上,只要有可能,一個類型應當設計成不變類
C 在類的結構設計上,每個類都應當盡可能提高對其屬性和方法的訪問權限
D 在對其他類的引用上,一個對象對其他對象的引用應當降到最低
參考答案:C
設計模式考得比較少,屬于中級考試內容