目錄
- 軟考官網 報名通道
- 軟考架構師筆記(一):計算機系統基礎
- 軟考架構師筆記(二):計算機網絡基礎與信息安全
- 軟考架構師筆記(三):操作系統基礎
- 軟考架構師筆記(四):企業信息化與系統規划
- 軟考架構師筆記(五):系統需求工程 需求分析
- 軟考架構師筆記(六):數據庫
- 軟考架構師筆記(七):系統分析 系統設計
- 軟考架構師筆記(八):系統架構
- 軟考架構師筆記(九):軟件工程與項目管理
- 軟考架構師筆記(十):系統測試 維護 穩定性
系統設計
圖的選擇
(1)需求分析階段:數據流圖。
(2)概要設計階段:模塊結構圖、層次圖和HIPO圖。
(3)詳細設計階段:程序流程圖、偽代碼、盒圖。
處理流程設計
業務流程建模:
- 標桿瞄准
確定需要進行標桿研究的流程和影響流程成敗的關鍵因素確定瞄准目標的標桿企業、組織及其流程通過走訪、調研、會談、廣告等采集數據,並進行分析從眾多標桿數據中,選定最佳改進標准。
根據標桿指標,評估企業的既有流程,並確立改進目標 - IDEF(一系列建模、分析和仿真方法的統稱)
IDEF0(業務流程 功能建模)、
IDEF1(信息建模)、
IDEF1X(數據建模)、
IDEF2(仿真建模設計)、
IDEF3(過程描述獲取)、
IDEF4(面向對象設計)、
IDEF5(本體論描述獲取)、
IDEF6(設計原理獲取)、
IDEF7(信息系統審計)、
IDEF8(用戶界面建模)、
IDEF9(場景驅動信息系統設計)、
IDEF10(實施架構建模)、
IDEF11(信息制品建模)、
IDEF12(組織建模)、
IDEF13(三模式映射設計)
IDEF14(網絡規划)。 - DEMO(組織動態本質建模法)
- Petri網
- 業務流程建模語言
- 業務流程重組BPR
BPR是對企業的業務流程進行根本性的再思考和徹底性的再設計,從而獲得可以用諸如成本、質量、服務和速度等方面的業績來衡量的顯著性的成就 - 業務流程管理BPM
BPM是一種以規范化的構造端到端的卓越業務流程為中心,以持續的提高組織業務績效為目的的系統化方法。
IDEFO的建模特點使它可以用來描述企業的業務流程,它的階梯層次可用來描述業務流程的階梯結構特性。從高層次看,IDEFO的功能活動與業務流程相對應;而從低層次看,功能活動與流程的業務活動相對應。利用IEDFO的活動描述方式及活動之間的聯系方式,可以很好地描述業務流程的架構。IDEF0模型形象、直觀、易於理解和分析,但是,這種圖形化的模型沒有深刻揭示業務流程的內部結構特征和規律,而且當業務流程很復雜時,所對應的有向圖就成為一個相互交叉、混亂的網絡,不利於分析流程的特征。
BPM與BPR管理思想最根本的不同就在於流程管理並不要求對所有的流程進行再造。構造卓越的業務流程並不是流程再造,而是根據現有流程的具體情況,對流程進行規范化的設計
人機界面設計
- 置於用戶控制之下
以不強迫用戶進入不必要的或不希望的動作的方式來定義交互方式
提供靈活的交互
允許用戶交互可以被中斷和撤消
當技能級別增加時可以使交互流水化並允許定制交互
使用戶隔離內部技術細節
設計應允許用戶和出現在屏幕上的對象直接交互
- 減少用戶的記憶負擔
減少對短期記憶的要求
建立有意義的缺省
定義直覺性的捷徑
界面的視覺布局應該基於真實世界的隱喻
以不斷進展的方式揭示信息
- 保持界面的一致性
允許用戶將當前任務放入有意義的語境在應用系列內保持一致性
如過去的交互模型已建立起了用戶期望,除非有迫不得已的理由下要改變它
結構化設計
系統設計的主要內容包括概要設計和詳細設計。
- 抽象化
- 自頂而下、逐步求精
- 信息隱蔽
- 模塊獨立(高內聚、低耦合)
概要設計又稱為系統總體結構設計,它是系統開發過程中很關鍵的一步,
其主要任務是將系統的功能需求分配給軟件模塊,確定每個模塊的功能和調用關系,形成軟件的模塊結構圖,即系統結構圖。
在概要設計中,將系統開發的總任務分解成許多個基本的、具體的任務,為每個具體任務選擇適當的技術手段和處理方法的過程稱為詳細設計。
內聚與耦合
內聚
- 功能內聚:完成一個單一功能,各個部分協同工作,缺一不可
- 順序內聚:處理元素相關,而且必須順序執行
- 通信內聚:所有處理元素集中在一個數據結構的區域上
- 過程內聚:處理元素相關,而且必須按特定的次序執行
- 瞬時內聚(時間內聚):所包含的任務必須在同一時間間隔內執行
- 邏輯內聚:完成邏輯上相關的一組任務
- 偶然內聚(巧合內聚):完成一組沒有關系或松散關系的任務
耦合
- 非直接耦合:兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的
- 數據耦合:一組模塊借助參數表傳遞簡單數據
- 標記耦合:一組模塊通過參數表傳遞記錄信息(數據結構)
- 控制耦合:模塊之間傳遞的信息中包含用於控制模塊內部邏輯的信息
- 外部耦合:一組模塊都訪問同一全局簡單變量,而且不是通過參數表傳遞該全局變量的信息
- 公共耦合:多個模塊都訪問同一個公共數據環境
- 內容耦合:一個模塊真接訪問另一個模塊的內部數據;一個模塊不通過正常入口轉到另一個模塊的
面向對象設計
基本過程
- 分析模型:設計用例模型, 分析模型
- 設計師:設計用例實現方案,設計技術支撐實施,設計用戶界面,細化設計模型
- 設計模型:架構圖(用包圖表示),用例實現圖(用交互圖表示),類圖(完整、精確),其他(狀態圖、活動圖等)
設計原則
- 單一職責原則:設計目的單一的類
- 開放-封閉原則:對擴展開放,對修改封閉
- 李氏(Liskov)替換原則:子類可以替換父類依賴倒置原則:要依賴於抽象,而不是具體實現;針對接口編程,不要針對實現編程
- 接口隔離原則:使用多個專門的接口比使用單一的總接口要好
- 組合重用原則:要盡量使用組合,而不是繼承關系達到重用目的
- 迪米特(Demeter)原則(最少知識法則):一個對象應當對其他對象有盡可能少的了解
設計模式
模式概念
架構模式:軟件設計中的高層決策,例如C/S結構就屬於架構模式,架構模式反映了開發軟件系統過程中所作的基本設計決策
設計模式:主要關注軟件系統的設計,與具體的實現語言無關
慣用法:是最低層的模式,關注軟件系統的設計與實現,實現時通過某種特定的程序設計語言來描述構件與構件之間的關系。每種編程語言都有它自己特定的模式,即語言的慣用法。例如引用-計數就是C++語言中的一種慣用法
逆向工程
逆向工程(reverse engineering)有的人也叫反求工程,其大意是根據已有的東西和結果,通過分析來推導出具體的實現方法。軟件逆向工程的基本原理是抽取軟件系統的主要部分而隱藏細節,然后使用抽取出的實體在高層上描述軟件系統。
逆向工程抽取的實體應比源代碼更容易推理和接近應用領域,同時在高層上對軟件系統的抽象表示要求簡潔和易於理解。在軟件工程領域,迄今為止沒有統一的逆向工程定義。較為通用的是Eliot Chikafsky和Cross在文獻中定義的逆向工程的相關術語。
正向工程:從高層抽象和獨立於實現的邏輯設計到一個系統的物理實現的傳統開發過程。
逆向工程:分析目標系統,認定系統的構件及其交互關系,並且通過高層抽象或其他形式來展現目標系統的過程。
與逆向工程相關的其他術語包括:再文檔(Redocumentation):根據源代碼,在同一層次上創建或修改系統文檔。
設計恢復(Design Recovery):結合目標系統、領域知識和外部信息認定更高層次的抽象。
重構(Restructuring):保持系統外部行為(功能和語義),在同一抽象層次上改變表示形式。
再工程(Reengineering):結合逆向工程、重構和正向工程對現有系統進行審查和改造,將其重組為一種新形式。
體系結構再現:用於從源碼、性能分析信息、設計文檔及專家知識等現有信息中抽象出一個更高層次表示的技術和過程。
其中,再文檔、設計恢復不改變系統。重構改變了系統,但不改變其功能。再工程通常涉及逆向工程與正向工程的聯合使用,逆向工程解決程序的理解問題,正向工程檢驗哪些功能需要保留、刪除或增加。再工程改變了系統的功能和方向,是最根本和最有深遠影響的擴展。由此可見,重構是指在同一抽象層次上改變系統的表示形式,將某種形式表示的軟件轉換成更高抽象形式表示的軟件的活動不屬於重構,而屬於軟件的逆向工程。