系統(tǒng)分析師考試記憶背誦要點(diǎn)
1、企業(yè)信息化戰(zhàn)略與實(shí)施
1.1 信息化基本概念
分類
戰(zhàn)略級(jí):企業(yè)最高管理成
戰(zhàn)術(shù)級(jí):企業(yè)中層經(jīng)理及其管理部門
操作級(jí): 服務(wù)型企業(yè)的業(yè)務(wù)部門
事務(wù)級(jí):企業(yè)的管理業(yè)務(wù)人員
信息化戰(zhàn)略體系

第一階段:以數(shù)據(jù)處理為核心
企業(yè)系統(tǒng)規(guī)劃法
關(guān)鍵成功因素發(fā)
戰(zhàn)略集合轉(zhuǎn)化法
第二階段:以企業(yè)內(nèi)部MIS為核心,圍繞企業(yè)整體需求
戰(zhàn)略數(shù)據(jù)規(guī)劃法
信息工程發(fā)
戰(zhàn)略柵格法
第三階段:綜合考慮企業(yè)內(nèi)外環(huán)境以集成為核心,圍繞企業(yè)戰(zhàn)略需求
價(jià)值鏈分析法
戰(zhàn)略一致性模型
信息資源規(guī)劃IRP
用戶視圖收集
用戶視圖分組、分析
數(shù)據(jù)元素分析
職能域分析
業(yè)務(wù)域分析
業(yè)務(wù)流程梳理
業(yè)務(wù)需求分析
數(shù)據(jù)需求分析
信息系統(tǒng)開發(fā)方法
SO方法有是哪個(gè)主要抽象級(jí)別:操作、服務(wù)、業(yè)務(wù)流程
SOAD分為三個(gè)層次:基礎(chǔ)設(shè)計(jì)層、應(yīng)用結(jié)構(gòu)層和業(yè)務(wù)組織層
服務(wù)建模:分為服務(wù)發(fā)現(xiàn)、服務(wù)規(guī)約和服務(wù)實(shí)現(xiàn)三個(gè)階段。
更符合人們的思維習(xí)慣,更好的復(fù)用性
關(guān)鍵在于建立一個(gè)全面、合理、統(tǒng)一的模型
分析、設(shè)計(jì)、實(shí)現(xiàn)三個(gè)階段、界限不明確
適用于需求不明確的開發(fā)
按功能分:水平原型(界面)、垂直原型(復(fù)雜算法)
按最終結(jié)果分:拋棄式原型、演化式原型
用戶至上
嚴(yán)格區(qū)分工作階段,每個(gè)階段有任務(wù)與成果
強(qiáng)調(diào)系統(tǒng)開發(fā)過(guò)程的整體性和全局性
系統(tǒng)開發(fā)過(guò)程工程化,文檔資料標(biāo)準(zhǔn)化
自頂向下,逐步分解
結(jié)構(gòu)法
原型法
面向?qū)ο蠓椒?/span>
面向服務(wù)的方法
1.3 系統(tǒng)建模
過(guò)程

1.4 企業(yè)信息化與電子商務(wù)
企業(yè)資源計(jì)劃(ERP)

客戶關(guān)系管理(CRM)

供應(yīng)鏈管理(SCM)

商業(yè)智能(BI)
商業(yè)智能用于決策分析
商業(yè)智能=數(shù)據(jù)倉(cāng)庫(kù)+數(shù)據(jù)挖掘+聯(lián)機(jī)分析處理(OLAP)
數(shù)據(jù)倉(cāng)庫(kù)-》OLAP
數(shù)據(jù)庫(kù)-》OLTP
數(shù)據(jù)倉(cāng)庫(kù)
面向主題:數(shù)據(jù)按照主題組織
集成的:消除了源數(shù)據(jù)中的不一致性,提供整個(gè)企業(yè)的一致性全局信息。
相對(duì)穩(wěn)定的:主要進(jìn)行查詢操作,只有少量的修改和刪除
反映歷史變化:記錄了企業(yè)從過(guò)去某一個(gè)時(shí)刻到當(dāng)前各階段的信息,可對(duì)發(fā)展歷程和未來(lái)趨勢(shì)做定量分析和預(yù)測(cè)。
特點(diǎn)
過(guò)程

數(shù)據(jù)挖掘
關(guān)聯(lián)分析:挖掘出隱藏在數(shù)據(jù)間的相互關(guān)系
序列模式分析: 側(cè)重點(diǎn)是分析數(shù)據(jù)間的前后關(guān)系(因果關(guān)系)
分類分析:為每一個(gè)記錄賦予一個(gè)標(biāo)記再按標(biāo)記分類
聚類分析:分類分析法的逆過(guò)程
知識(shí)管理
知識(shí)生產(chǎn)工具:知識(shí)獲取、知識(shí)合并、知識(shí)創(chuàng)新
知識(shí)編碼工具:通過(guò)標(biāo)準(zhǔn)形式表現(xiàn)知識(shí)
知識(shí)轉(zhuǎn)移工具:使知識(shí)能在企業(yè)內(nèi)傳播和分享
顯性知識(shí):規(guī)范、系統(tǒng)、結(jié)構(gòu)化、明確
隱形知識(shí):未規(guī)范、零星、非正式、未編碼、不易保存、傳遞。
知識(shí)管理工具
業(yè)務(wù)流程分析法
價(jià)值鏈分析法:找出或設(shè)計(jì)出那些能使顧客滿意,實(shí)現(xiàn)顧客價(jià)值最大化的業(yè)務(wù)流程
客戶關(guān)系分析法:把CRM用在業(yè)務(wù)流程分析上
供應(yīng)鏈分析法:從企業(yè)供應(yīng)鏈角度分析企業(yè)業(yè)務(wù)流程。
基于ERP的分析法:將企業(yè)的業(yè)務(wù)流程看作是一個(gè)緊密聯(lián)接的供應(yīng)鏈,將供應(yīng)商和企業(yè)內(nèi)部采購(gòu)、生產(chǎn)、銷售,以及客戶緊密聯(lián)系起來(lái)。
業(yè)務(wù)流程重組:通過(guò)重新審視企業(yè)的價(jià)值鏈,從功能成本的比較分析中,確定企業(yè)在安歇環(huán)節(jié)中比較優(yōu)勢(shì)。
1.5 企業(yè)應(yīng)用集成
集成圖

界面集成
效果:統(tǒng)一入口、產(chǎn)生整體感覺
集成點(diǎn):界面層
數(shù)據(jù)集成
效果:不同來(lái)源的數(shù)據(jù)邏輯或物理上集中
集成點(diǎn):數(shù)據(jù)層
控制集成
效果:調(diào)用其他系統(tǒng)已有方法,達(dá)到集成效果
集成點(diǎn):應(yīng)用邏輯層
業(yè)務(wù)流程集成
效果:跨企業(yè)、或優(yōu)化流程而非直接調(diào)用
集成點(diǎn):應(yīng)用邏輯層
門戶集成
將內(nèi)部系統(tǒng)對(duì)接到互聯(lián)網(wǎng)上
1.6 企業(yè)門戶
2、系統(tǒng)規(guī)劃
2.1 項(xiàng)目的機(jī)會(huì)選擇
2.2 可行性分析
系統(tǒng)規(guī)劃步驟
1、初步調(diào)查:根據(jù)企業(yè)戰(zhàn)略目標(biāo),分析企業(yè)現(xiàn)狀以及系統(tǒng)運(yùn)行狀況。
2、確定系統(tǒng)目標(biāo):確定系統(tǒng)的服務(wù)范圍質(zhì)量
3、分析子系統(tǒng)的組成:做系統(tǒng)劃分并制定子系統(tǒng)功能
4、擬定系統(tǒng)的實(shí)施方案:分析系統(tǒng)優(yōu)先級(jí),確定開發(fā)順序
5、進(jìn)行可行性研究:編寫可行性研究報(bào)告
6、制定系統(tǒng)建設(shè)方案:根據(jù)可研各項(xiàng)技術(shù)指標(biāo)分析、比較,落實(shí)各項(xiàng)假設(shè)前提條件,制定系統(tǒng)建設(shè)方案,形成系統(tǒng)設(shè)計(jì)任務(wù)書,作為系統(tǒng)建設(shè)的依據(jù)。
可行性分析
管理可行性:系統(tǒng)與現(xiàn)有管理機(jī)制的一致性,改革的可能性
運(yùn)行可行性:用戶方便使用的程度。
經(jīng)濟(jì)可行性:成本收益分析,包括建設(shè)成本、運(yùn)行陳本和項(xiàng)目建設(shè)后可能的經(jīng)濟(jì)收益。
技術(shù)可行性:技術(shù)風(fēng)險(xiǎn)分析,現(xiàn)有技術(shù)能否支持系統(tǒng)的目標(biāo)實(shí)現(xiàn)
法律可行性
用戶使用可行性
成本效益分析
把各個(gè)年份的資金凈收益,轉(zhuǎn)成現(xiàn)值累加,如果是投資,則記為負(fù)收益。
銷售額=固定陳本+可變成本+稅費(fèi)+利潤(rùn)
銷售額=固定成本+可變成本+稅費(fèi)(盈虧平衡時(shí))
按照成本形態(tài)分類
從項(xiàng)目管理角度對(duì)成本分類
固定成本:管理人員的工資、辦公費(fèi)、固定資產(chǎn)折舊費(fèi)、員工培訓(xùn)費(fèi)、廣告費(fèi)、技術(shù)開發(fā)經(jīng)費(fèi)等。
變動(dòng)成本:直接材料費(fèi)、產(chǎn)品包裝費(fèi)、外包費(fèi)、開發(fā)獎(jiǎng)金等。
混合成本:水電費(fèi)、電話費(fèi)、質(zhì)量保證人員的工資、設(shè)備動(dòng)力費(fèi)等。
直接成本:項(xiàng)目組人員工資、材料費(fèi)用
間接成本:水電費(fèi)、員工培訓(xùn)費(fèi)
開發(fā)成本:開發(fā)人員工資,開發(fā)材料資源類成本。
運(yùn)營(yíng)成本:運(yùn)維人員工資,運(yùn)維耗材
有形收益:資源要求的減少,運(yùn)行效率的改進(jìn),提高工作效率,每個(gè)月節(jié)約的人員工資
無(wú)形收益:企業(yè)形象的改善、提高客戶滿意度和忠誠(chéng)度
收益
成本
盈虧臨界分析
凈現(xiàn)值
2.3 成本效益分析
3、需求工程
3.1 需求工程概述
軟件需求是指用戶對(duì)系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望
軟件需求是指用戶解決問(wèn)題或達(dá)到目標(biāo)所需的條件或能力,是系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其他正式規(guī)定文檔所需要具有的條件或能力。
3.2 需求獲取
需求分類
基本需求(明示、常規(guī)需求)
期望需求(隱含)
興奮需求(多余)
業(yè)務(wù)需求(整體全局)
用戶需求(用戶視角)
系統(tǒng)需求(計(jì)算機(jī)化)
功能需求
非功能需求
設(shè)計(jì)約束
分類
QFD
需求獲取方法
用戶訪談:1對(duì)1-3,有代表性的用戶
問(wèn)卷調(diào)查:用戶多,無(wú)法一一訪談
現(xiàn)場(chǎng)觀摩:針對(duì)較復(fù)雜的流程和操作
聯(lián)合需求計(jì)劃(JRP):高度組織的群體會(huì)議,各方參與,陳本較高
情節(jié)串聯(lián)板:一系列圖片,通過(guò)圖片來(lái)講故事
收集資料:把與系統(tǒng)有關(guān)的、對(duì)系統(tǒng)開發(fā)有益的信息收集起來(lái)
參加業(yè)務(wù)時(shí)間:有效的發(fā)現(xiàn)問(wèn)題的本質(zhì)和尋找解決問(wèn)題的辦法
閱讀歷史文檔:對(duì)收集數(shù)據(jù)性的信息較為有用
抽樣調(diào)查:降低成本
3.3 需求分析
結(jié)構(gòu)化需求分析
數(shù)據(jù)元素
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)流
數(shù)據(jù)存儲(chǔ)
加工邏輯
外部實(shí)體
狀態(tài)(初態(tài)、終態(tài))
事件
實(shí)體
聯(lián)系
平衡原則
包含內(nèi)容
黑洞:一個(gè)加工只有輸入數(shù)據(jù)流而無(wú)輸出數(shù)據(jù)流
奇跡:一個(gè)加工只有輸出數(shù)據(jù)流而無(wú)輸入數(shù)據(jù)流
灰洞:若一個(gè)加工的輸入數(shù)據(jù)流無(wú)法通過(guò)加工產(chǎn)生輸出流
數(shù)據(jù)流
加工
數(shù)據(jù)存儲(chǔ)
外部實(shí)體
功能模型:數(shù)據(jù)流圖DFD
數(shù)據(jù)模型:實(shí)體聯(lián)系圖(ER)
行為模型:狀態(tài)轉(zhuǎn)換圖(STD)
數(shù)據(jù)字典
面向?qū)ο笮枨蠓治?/span>
用例模型
分析模型
包含關(guān)系
擴(kuò)展關(guān)系
泛化關(guān)系
用例名稱
簡(jiǎn)要說(shuō)明
事件流
非功能需求
前置條件
后置條件
擴(kuò)展點(diǎn)
優(yōu)先級(jí)
識(shí)別參與者
合并需求獲得用例
細(xì)化用例描述
調(diào)整用例模型
依賴、關(guān)聯(lián)、聚合、組合、泛化、實(shí)現(xiàn)
定義概念類
識(shí)別類之間關(guān)系
為類添加職責(zé)
建立交互圖
邏輯視圖
實(shí)現(xiàn)視圖
進(jìn)程視圖
部署視圖
用例視圖
系統(tǒng)分析、設(shè)計(jì)人員
類與對(duì)象
展現(xiàn)系統(tǒng)功能
程序員
物理代碼文件和組件
源代碼結(jié)構(gòu)
系統(tǒng)集成人員
線程、進(jìn)程、并發(fā)
并發(fā)與同步結(jié)構(gòu)
系統(tǒng)和網(wǎng)絡(luò)工程師
軟件到硬件的映射
軟件構(gòu)件到物理節(jié)點(diǎn)映射
最終用戶
需求分析模型
靜態(tài)圖(結(jié)構(gòu)圖)
動(dòng)態(tài)圖(行為圖)
對(duì)象圖描述一組對(duì)象及它們之間的關(guān)系,對(duì)象圖描述了在類圖中所簡(jiǎn)歷事物實(shí)例的靜態(tài)快照。
依賴關(guān)系:一個(gè)事物發(fā)生變化影響另一個(gè)事物
泛化關(guān)系:特殊與一般關(guān)系
組合關(guān)系:整體與部分生命周期相同
聚合關(guān)系: 整體與部分生命周期不同
實(shí)現(xiàn)關(guān)系:接口與類之間關(guān)系
實(shí)線實(shí)心箭頭
實(shí)線空心箭頭
實(shí)線實(shí)心菱形箭頭
實(shí)線空心菱形箭頭
虛線空心三角箭頭
類圖:一組類、接口、協(xié)作和它們之間的關(guān)系
對(duì)象圖:一組對(duì)象及它們之間關(guān)系
構(gòu)件圖:一個(gè)封裝的類和它的接口
部署圖:軟硬件之間映射
包圖:由模型本身分解而成的組織單元,以及他們之間的依賴關(guān)系。
活動(dòng)圖將進(jìn)程或其他計(jì)算結(jié)構(gòu)展現(xiàn)為計(jì)算內(nèi)部一步步控制流和數(shù)據(jù)流。活動(dòng)圖專注于系統(tǒng)動(dòng)態(tài)視圖,它對(duì)系統(tǒng)功能建模和業(yè)務(wù)流程建模特別重要,并強(qiáng)調(diào)對(duì)象間的控制流程。
狀態(tài)圖描述一個(gè)狀態(tài)機(jī),它由狀態(tài)、轉(zhuǎn)移、事件和活動(dòng)組成。狀態(tài)視圖給出了對(duì)象動(dòng)態(tài)視圖,他對(duì)于接口、類或協(xié)作的行為建模尤其重要。
順序圖是一種交互圖,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互。
用例圖描述一組用例、參與者及它們之間關(guān)系、用戶角度描述系統(tǒng)功能,參與者是外部觸發(fā)因素(包括用戶、組織、外部系統(tǒng)、時(shí)間);用例是功能單元。
關(guān)系
建模流程
包含關(guān)系:例如學(xué)習(xí)課程和課程測(cè)試都包含檢測(cè)權(quán)限
擴(kuò)展關(guān)系:如課程測(cè)試擴(kuò)展充入學(xué)習(xí)幣
泛化關(guān)系:課程注冊(cè)泛化電話注冊(cè)和網(wǎng)上注冊(cè)
識(shí)別參與者
合并需求獲取用例
細(xì)化用例描述
調(diào)整用例模型
用例圖:系統(tǒng)與外部參與者的交互
順序圖:強(qiáng)調(diào)按時(shí)間順序
通信圖:(協(xié)作圖)
定時(shí)圖:強(qiáng)調(diào)實(shí)際時(shí)間
狀態(tài)圖:狀態(tài)轉(zhuǎn)換變遷
活動(dòng)圖:類似程序流程圖,并行行為
構(gòu)造塊
規(guī)則
公共機(jī)制
結(jié)構(gòu)事務(wù):最靜態(tài)的部分,包括類、接口、協(xié)作、用例、活動(dòng)類、構(gòu)件和節(jié)點(diǎn)。
行為事務(wù):代表時(shí)間和空間上的動(dòng)作。包括消息、動(dòng)作次序、連續(xù)。
分組事務(wù):看成是個(gè)盒子,如包,構(gòu)件。
注釋事務(wù):UML模型的解釋部分,描述、說(shuō)明和模型標(biāo)注模型的元素。
事務(wù)
關(guān)系
圖
范圍:給一個(gè)名字以特定含義的語(yǔ)境
可見性:怎么使用或看見名字
完整性:事物如何正確、一致地相互聯(lián)系
執(zhí)行:運(yùn)行或模擬動(dòng)態(tài)模型的含義是什么
規(guī)格說(shuō)明:事務(wù)語(yǔ)義的細(xì)節(jié)描述,他是模型真正的核心
修飾:通過(guò)修飾表達(dá)更多信息
公共分類:類與對(duì)象、接口與實(shí)現(xiàn)
擴(kuò)展機(jī)制:允許添加新的規(guī)則
對(duì)象:屬性(數(shù)據(jù))+方法(操作)+ 對(duì)象ID
類(實(shí)體類、控制類、邊界類)
繼承與泛化:復(fù)制機(jī)制
封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口
多態(tài):不同對(duì)象收到同樣消息產(chǎn)生不同結(jié)果
接口:一種特殊類,他只有方法定義沒有實(shí)現(xiàn)
重載:一個(gè)類可以有多個(gè)同名而參數(shù)類型不同的方法
消息和消息通信:消息是異步通信的
概念
UML
UML圖
4+1視圖
需求建模
3.4 需求定義
嚴(yán)格定義法
瀑布模型思想
原型法
3.5 需求驗(yàn)證
需求評(píng)審
正式評(píng)審
非正式評(píng)審
需求測(cè)試
3.6 需求管理
定義需求基線
需求跟蹤
用戶原始需求
軟件需求
4、系統(tǒng)設(shè)計(jì)
4.1 處理流程設(shè)計(jì)
業(yè)務(wù)流程建模
標(biāo)桿瞄準(zhǔn)
IDEF
DEMO
Petri網(wǎng)
業(yè)務(wù)流程建模語(yǔ)言
基于服務(wù)BPM
4.2 軟件架構(gòu)設(shè)計(jì)
軟件架構(gòu)風(fēng)格
數(shù)據(jù)流風(fēng)格
調(diào)用、返回風(fēng)格
獨(dú)立構(gòu)件風(fēng)格
虛擬機(jī)風(fēng)格:解釋器、基于規(guī)則的系統(tǒng)
倉(cāng)庫(kù)風(fēng)格:數(shù)據(jù)庫(kù)系統(tǒng)、超文本系統(tǒng)、黑板系統(tǒng)
批處理序列、管道過(guò)濾器
主程序/子程序、面向?qū)ο?、層次結(jié)構(gòu)
進(jìn)程通信、事件驅(qū)動(dòng)系統(tǒng)(隱士調(diào)用)
架構(gòu)設(shè)計(jì)的核心問(wèn)題是否能達(dá)到架構(gòu)級(jí)的軟件復(fù)用
架構(gòu)風(fēng)格反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語(yǔ)義特性,并指導(dǎo)如何將各個(gè)構(gòu)件有效的組織成一個(gè)完整的系統(tǒng)
架構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語(yǔ)表和一組指導(dǎo)構(gòu)建系統(tǒng)的規(guī)則
常用的架構(gòu)風(fēng)格
4.3 結(jié)構(gòu)化設(shè)計(jì)
概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)
保持模塊的大小適中
盡可能減少調(diào)用的深度
多扇人、少扇出
單入口、單出口
模塊的作用域應(yīng)該在模塊之內(nèi)
功能應(yīng)該是可預(yù)測(cè)的
抽象化
自頂而下、逐步求精
信息隱藏
模塊獨(dú)立(高內(nèi)聚、低耦合)
特征
注意事項(xiàng)
4.4 面向?qū)ο笤O(shè)計(jì)
基本過(guò)程
架構(gòu)圖(用包圖表示)
用例實(shí)現(xiàn)圖(用交互圖表示)
類圖
其他(狀態(tài)圖和活動(dòng)圖)
設(shè)計(jì)用例實(shí)現(xiàn)方案
設(shè)計(jì)技術(shù)支撐實(shí)施
設(shè)計(jì)用戶界面
細(xì)化設(shè)計(jì)模型
分析模型
用例模型
領(lǐng)域模型
分析階段
設(shè)計(jì)師
設(shè)計(jì)模型
設(shè)計(jì)原則
一個(gè)對(duì)象應(yīng)當(dāng)對(duì)其他對(duì)象盡可能少的了解
要盡量使用組合,而不是繼承關(guān)系達(dá)到重用目的
使用多個(gè)專門的接口比使用單一的總接口要好
需要依賴抽象,而不是具體實(shí)現(xiàn);針對(duì)接口編程,不要針對(duì)實(shí)現(xiàn)編程
子類可以替換父類
對(duì)擴(kuò)展開放,對(duì)修改封閉
設(shè)計(jì)目的單一的類
單一職責(zé)原則
開放封閉原則
李氏替換原則
依賴倒置原則
接口分離原則
組合重用原則
迪米特原則
設(shè)計(jì)模式
責(zé)任鏈(chain of resposibility)
命令(command)
解釋器(interpreter)
迭代器(iterator)
中介者(mediator)
備忘錄(memento)
觀察者(observer)
狀態(tài)(state)
策略(strategy)
模板方法(template method)
訪問(wèn)者(visitor)
速記關(guān)鍵字:傳遞職責(zé)
通過(guò)給多個(gè)對(duì)象處理請(qǐng)求的機(jī)會(huì),減少請(qǐng)求的發(fā)送者與接收者之間的耦合,將接收對(duì)象鏈接起來(lái),在鏈中傳遞請(qǐng)求,直到有一個(gè)對(duì)象處理這個(gè)請(qǐng)求。
速記關(guān)鍵字:日志記錄,可撤銷
將一個(gè)對(duì)象封裝為一個(gè)對(duì)象,從而可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化,將請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,支持可撤銷操作。
速記關(guān)鍵字:虛擬機(jī)的機(jī)制
給一種語(yǔ)言,定義他的文法表示,并定義一個(gè)解釋器,該解釋器用來(lái)根據(jù)文法表示來(lái)解釋語(yǔ)言中的句子
速記關(guān)鍵字:數(shù)據(jù)集
提供一種方法來(lái)順序訪問(wèn)一個(gè)聚合對(duì)象中的各個(gè)元素,而不需要暴露該對(duì)象內(nèi)部的表示
用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互,它使各對(duì)象不需要顯示的相互調(diào)用,從而達(dá)到低耦合,還可以獨(dú)立改變對(duì)象間的交互。
速記關(guān)鍵字:游戲存檔
在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在改對(duì)象之外保存這個(gè)狀態(tài),從而可以在以后將該對(duì)象恢復(fù)到原先保存的狀態(tài)
速記關(guān)鍵字:聯(lián)動(dòng)
定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并自動(dòng)更新
速記關(guān)鍵字:狀態(tài)變成類
允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為
速記關(guān)鍵字:多方案切換
定義一系列算法,把它們一個(gè)個(gè)封裝起來(lái),并且是他們之間相互替換,從而讓算法可以獨(dú)立于使用它的用戶而變換
定義一個(gè)操作中的算法骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個(gè)算法的結(jié)構(gòu)既可重新定義算法的某些特定步驟
表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作,使得在不改變各元素的類的前提下定義作用于這些元素的新操作。
適配器(adapter)
橋接(bridge)
組合(composite)
裝飾(decorator)
外觀(facade)
享元(flyweight)
代理(proxy)
速記關(guān)鍵字:接口轉(zhuǎn)換
將一個(gè)類的接口轉(zhuǎn)換成用戶希望得到的另一個(gè)接口,它使原本不相容的接口得以協(xié)同
速記關(guān)鍵字:繼承樹拆分
將類的抽象部分與它的實(shí)現(xiàn)部分分離開來(lái),使它們可以獨(dú)立的變化
速記關(guān)鍵字:樹形結(jié)構(gòu)目錄
將對(duì)象組合成樹形結(jié)構(gòu)以表示整體-部分的層次結(jié)構(gòu),使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性
速記關(guān)鍵字:附加職責(zé)
動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。它提供了用子類擴(kuò)展功能的一個(gè)靈活替代,比派生一個(gè)子類更加靈活
速記關(guān)鍵字:對(duì)外統(tǒng)一接口
定義一個(gè)高層接口,為子系統(tǒng)中的一組接口提供一個(gè)一直的外觀,從而簡(jiǎn)化了該子系統(tǒng)的使用
速記關(guān)鍵字:一篇文字中的同一個(gè)文字對(duì)象共享
提供支持大量細(xì)粒度對(duì)象共享的有效方法
速記關(guān)鍵字:快捷方式
為其他對(duì)象提供一個(gè)鐘代理控制這個(gè)對(duì)象的訪問(wèn)
工廠方法(factory method)
抽象工廠(abstract factory)
原型(prototype)
單例(singleton)
構(gòu)建器(builder)
速記關(guān)鍵字:動(dòng)態(tài)生成對(duì)象
定義一個(gè)創(chuàng)建對(duì)象的接口,但由子類決定實(shí)例化哪一個(gè)類
速記關(guān)鍵字:生成系列對(duì)象
提供一個(gè)接口,可以創(chuàng)建一系列相關(guān)或相互依賴的對(duì)象,而無(wú)需指定他們具體的類
速記關(guān)鍵字:克隆對(duì)象
用原型實(shí)例指定創(chuàng)建對(duì)象類型,并通過(guò)拷貝這個(gè)原型來(lái)創(chuàng)建新的對(duì)象
速記關(guān)鍵字:?jiǎn)螌?shí)例
保證一個(gè)類只有一個(gè)實(shí)例,并提供訪問(wèn)它的全局訪問(wèn)點(diǎn)
速記關(guān)鍵字:復(fù)雜對(duì)象構(gòu)建
將一個(gè)復(fù)雜類的表示與構(gòu)造相分離,使得相同的構(gòu)建過(guò)程能夠得出不同的表示
架構(gòu)模式
軟件設(shè)計(jì)中的高層決策,例如cs結(jié)構(gòu)就屬于架構(gòu)模式,架構(gòu)模式反映了開發(fā)系統(tǒng)過(guò)程中所作的基本設(shè)計(jì)決策。
設(shè)計(jì)模式:主要關(guān)注軟件系統(tǒng)的設(shè)計(jì),與具體實(shí)現(xiàn)語(yǔ)言無(wú)關(guān)
慣用法:是最低層的模式,關(guān)注軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),實(shí)現(xiàn)時(shí)通過(guò)某種特定的程序設(shè)計(jì)語(yǔ)言來(lái)描述構(gòu)件與構(gòu)件之間的關(guān)系,每種編程語(yǔ)言都有它自己特定的模式,即語(yǔ)言的慣用法。
概念
創(chuàng)建型模式
結(jié)構(gòu)型模式
行為型模式
4.5 web應(yīng)用設(shè)計(jì)
從架構(gòu)來(lái)看
REST
1、網(wǎng)絡(luò)上的所有事物都被抽象為資源
2、每個(gè)資源對(duì)應(yīng)一個(gè)唯一的資源標(biāo)識(shí)
3、通過(guò)通用的連接件接口對(duì)資源進(jìn)行操作
4、對(duì)資源的各種操作不會(huì)改變資源標(biāo)識(shí)
5、所有的操作都是無(wú)狀態(tài)的。
MVC,MVP,MVVM,REST,Webservice,微服務(wù)
從緩存來(lái)看
MemCache:是一個(gè)高性能的分布式的內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫(kù)負(fù)載。Memcache通過(guò)在內(nèi)存里維護(hù)一個(gè)統(tǒng)一的巨大的hash表,它能夠用來(lái)存儲(chǔ)各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫(kù)檢索的結(jié)果能。
Redis: 是一個(gè)開源的使用C語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日之星、KV數(shù)據(jù)庫(kù)、并提供多種語(yǔ)言的API
Squid:Squid是一個(gè)高性能的代理緩存服務(wù)器,Squid支持FTP、gopher、HTTPS和HTTP協(xié)議,和一般的代理緩存軟件不同,Squid用一個(gè)單獨(dú)的、非模塊化的、IO驅(qū)動(dòng)的進(jìn)程來(lái)處理所有客戶端請(qǐng)求
MemCache,Redis,Squid
從并發(fā)分流來(lái)看
負(fù)載均衡技術(shù)
有狀態(tài)與無(wú)狀態(tài)
DNS域名解析負(fù)載均衡:DNS域名解析負(fù)載均衡就是用戶在請(qǐng)求DNS服務(wù)器時(shí),獲取域名對(duì)應(yīng)的IP地址時(shí),DNS服務(wù)器直接給出負(fù)載均衡的服務(wù)器IP. ? ?特點(diǎn):效率比HTTP重定向高,減少維護(hù)負(fù)載均衡服務(wù)器成本,但一個(gè)應(yīng)用服務(wù)器故障,不能及時(shí)通知DNS,而且DNS負(fù)載均衡的控制權(quán)再域名服務(wù)商那里,網(wǎng)址無(wú)法做更多的改善和更大的管理。
基于NAT的負(fù)載均衡:基于NAT的負(fù)載均衡將一個(gè)外部IP地址映射為多個(gè)IP地址,對(duì)每次連接請(qǐng)求動(dòng)態(tài)地址轉(zhuǎn)換為一個(gè)內(nèi)部節(jié)點(diǎn)地址。特點(diǎn):技術(shù)較成熟,一般在網(wǎng)關(guān)位置,可以通過(guò)硬件實(shí)現(xiàn),像四層交換機(jī)一般就采用了這種技術(shù)。
http重定向:Http重定向就是應(yīng)用層的請(qǐng)求轉(zhuǎn)發(fā),用戶的請(qǐng)求其實(shí)已經(jīng)到了HTTP重定向負(fù)載均衡服務(wù)器,服務(wù)器根據(jù)算法要求用戶重定向,用戶收到重定向請(qǐng)求后,再次請(qǐng)求真正的集群。t特點(diǎn):實(shí)現(xiàn)簡(jiǎn)單、但性能較差
反向代理服務(wù)器:在用戶的請(qǐng)求到達(dá)反向代理服務(wù)器時(shí),由反向代理服務(wù)器根據(jù)算法轉(zhuǎn)發(fā)到具體的服務(wù)器。常用的apache,nginx都可以充當(dāng)反向代理服務(wù)器。特點(diǎn):部署簡(jiǎn)單,但代理服務(wù)器可能成為性能瓶頸。
硬件負(fù)責(zé)均衡:FS
軟件負(fù)載均衡:LVS、Nginx、HAproxy
靜態(tài)算法:輪轉(zhuǎn)法、加權(quán)輪轉(zhuǎn)算法、源地址哈希散列算法、目標(biāo)地址哈希散列算法、隨機(jī)法。
動(dòng)態(tài)算法: 最小連接數(shù)算法、加權(quán)最小連接數(shù)算法、加權(quán)百分比算法
基于特定軟件的負(fù)載均衡(HTTP重定向)應(yīng)用層
反向代理負(fù)載均衡(應(yīng)用層)
基于DNS的負(fù)載均衡(傳輸層)
基于NAT的負(fù)載均衡(傳輸層)
混合型負(fù)載均衡
不同層的負(fù)載均衡
負(fù)載均衡算法
軟硬件負(fù)載均衡
應(yīng)用層負(fù)載均衡
傳輸層負(fù)載均衡
無(wú)狀態(tài)服務(wù):對(duì)于單次請(qǐng)求的處理,不依賴其他請(qǐng)求,也就是說(shuō),處理一次請(qǐng)求所需要的全部信息,要么都包含在這個(gè)請(qǐng)求里,要么可以從外部獲取,服務(wù)器本身不存任何信息。
有狀態(tài)服務(wù):則相反,它會(huì)在自身保存一些數(shù)據(jù),先后的請(qǐng)求是有關(guān)聯(lián)的。
集群(負(fù)載均衡)、CDN
從數(shù)據(jù)庫(kù)來(lái)看
主從庫(kù)(主從復(fù)制)、內(nèi)存數(shù)據(jù)庫(kù)、反規(guī)范化技術(shù)、NoSql,分區(qū)分表技術(shù),視圖與物理視圖
從持久化來(lái)看
Hibernate,Mybatis
從分布式存儲(chǔ)來(lái)看
Hadoop,F(xiàn)astDFS,區(qū)塊鏈
從數(shù)據(jù)編碼來(lái)看
XML擴(kuò)展標(biāo)記語(yǔ)言
Json 一種輕量級(jí)的數(shù)據(jù)交換格式
XML文件龐大,文件格式復(fù)雜,輸出占帶寬
服務(wù)器端與客戶端都需要花費(fèi)大量代碼來(lái)解析XML,導(dǎo)致服務(wù)器端和客戶端代碼變得異常復(fù)雜且不易維護(hù)
客戶端不同瀏覽器之間解析XML的方式不一致,需要重復(fù)編寫很多代碼。
服務(wù)器端和客戶端解析XML花費(fèi)較多的資源和時(shí)間
格式統(tǒng)一,符合標(biāo)準(zhǔn)
容易與其他系統(tǒng)進(jìn)行遠(yuǎn)程交互,數(shù)據(jù)共享比較方便
優(yōu)點(diǎn)
缺點(diǎn)
沒有xml格式這么推廣的深入人心和喜用廣泛,沒有XML那么通用性。
數(shù)據(jù)格式簡(jiǎn)單,易于讀寫,格式都是壓縮的,占用帶寬小
易于解析,客戶端javascript可以通過(guò)eval()進(jìn)行Json數(shù)據(jù)的讀取
支持多種語(yǔ)言,便于服務(wù)器端解析
因?yàn)镴SON格式能直接為服務(wù)器端代碼使用,大大簡(jiǎn)化了服務(wù)器端和客戶端的代碼開發(fā)量,且完成任務(wù)不變,并且易于維護(hù)。
優(yōu)點(diǎn)
缺點(diǎn)
XML,JSON
從web應(yīng)用服務(wù)器來(lái)看
Web應(yīng)用服務(wù)器
進(jìn)行業(yè)務(wù)邏輯的處理
把瀏覽器發(fā)過(guò)來(lái)的Request請(qǐng)求,返回HTML頁(yè)面
WEB服務(wù)器
應(yīng)用服務(wù)器
Apache、WebSphere、Weblogic、Tomcat、JBOSS、IIS
其它
靜態(tài)化,有狀態(tài)與無(wú)狀態(tài),響應(yīng)式Web設(shè)計(jì)
5、系統(tǒng)測(cè)試與維護(hù)
5.1 軟件測(cè)試概念與方法
盡早、不斷的進(jìn)行測(cè)試,程序員避免測(cè)試自己設(shè)計(jì)的程序;既要選擇有效、合理數(shù)據(jù),也要選擇無(wú)效、不合理數(shù)據(jù);修改后應(yīng)進(jìn)行回歸測(cè)試;尚未發(fā)現(xiàn)的錯(cuò)誤數(shù)量與該程序已發(fā)現(xiàn)錯(cuò)誤數(shù)成正比
動(dòng)態(tài)測(cè)試
基本路勁測(cè)試
循環(huán)覆蓋測(cè)試
邏輯覆蓋測(cè)試
語(yǔ)句覆蓋、判定覆蓋、條件覆蓋……
等價(jià)類劃分
邊界值分析
錯(cuò)誤推測(cè)
因果圖
黑盒測(cè)試
白河測(cè)試
灰盒測(cè)試
靜態(tài)測(cè)試
桌前檢查
代碼審查
代碼走查
5.2 系統(tǒng)測(cè)試
測(cè)試階段
安全性測(cè)試
壓力測(cè)試
性能測(cè)試
可靠性測(cè)試
單元測(cè)試:模塊測(cè)試、模塊功能、性能、接口等
集成測(cè)試:模塊間的接口
確認(rèn)測(cè)試:驗(yàn)證軟件與需求一致性。內(nèi)部確認(rèn)測(cè)試、alpha\beta測(cè)試,驗(yàn)收測(cè)試
系統(tǒng)測(cè)試:真實(shí)環(huán)境下,驗(yàn)證完整的軟件配置項(xiàng)是否能和系統(tǒng)連接
回歸測(cè)試:測(cè)試軟件變之后,變更部分的正確性對(duì)變更需求的符合性。
面向?qū)ο鬁y(cè)試
算法層(單元測(cè)試):包括等價(jià)累劃分測(cè)試、組合功能測(cè)試、遞歸函數(shù)測(cè)試和多態(tài)消息測(cè)試
類層(模塊測(cè)試):包括不變式邊界測(cè)試、模態(tài)類測(cè)試和非模態(tài)類測(cè)試
模板層/類樹層(集成測(cè)試):包括多態(tài)服務(wù)測(cè)試和展平測(cè)試
系統(tǒng)層(系統(tǒng)測(cè)試)
測(cè)試自動(dòng)化
提高測(cè)試執(zhí)行效率
提高運(yùn)行效率
保證測(cè)試結(jié)果正確性
連續(xù)運(yùn)行測(cè)試腳本
模擬現(xiàn)實(shí)環(huán)境下受約束的情況
軟件評(píng)審
不應(yīng)以測(cè)試代替評(píng)審
評(píng)審人員應(yīng)該關(guān)注產(chǎn)品而不應(yīng)評(píng)論開發(fā)人員
評(píng)審人員應(yīng)關(guān)注于實(shí)質(zhì)性問(wèn)題
驗(yàn)證與確認(rèn)
驗(yàn)證是指軟件開發(fā)周期中一個(gè)給定階段的產(chǎn)品是否達(dá)到上一階段確立的需求的過(guò)程
確認(rèn)是指在軟件開發(fā)過(guò)程結(jié)束時(shí)對(duì)軟件進(jìn)行評(píng)價(jià)以確定它是否和軟件需求相一致的過(guò)程
測(cè)試是指通過(guò)執(zhí)行程序來(lái)有意識(shí)的發(fā)現(xiàn)程序中的設(shè)計(jì)錯(cuò)誤和編碼錯(cuò)誤的過(guò)程。測(cè)試是驗(yàn)證和確認(rèn)的手段之一。
6、項(xiàng)目管理
6.1 范圍管理
確定項(xiàng)目的邊界,即哪些工作是項(xiàng)目應(yīng)該做的,哪些工作不應(yīng)該包括在項(xiàng)目中
6.2 時(shí)間管理
也叫進(jìn)度管理,是采用科學(xué)的方法,確定進(jìn)度目標(biāo),編制進(jìn)度計(jì)劃和資源供應(yīng)計(jì)劃,進(jìn)行進(jìn)度控制,在質(zhì)量、成本目標(biāo)協(xié)調(diào)的基礎(chǔ)上,實(shí)現(xiàn)工期目標(biāo)。
估算方法
專家判斷法
三點(diǎn)估算法
功能點(diǎn)估算法
自上而下的估算
自下而上的估算
過(guò)程
活動(dòng)定義-》活動(dòng)排序-》活動(dòng)資源估算-》活動(dòng)歷時(shí)估算-》制定進(jìn)度計(jì)劃-》進(jìn)度控制
6.3 成本管理
在整個(gè)項(xiàng)目實(shí)施過(guò)程中,未確保項(xiàng)目在批準(zhǔn)的預(yù)算條件下盡可能保質(zhì)按期完成,而對(duì)所需的各個(gè)過(guò)程進(jìn)行管理與控制
6.4 軟件質(zhì)量管理
質(zhì)量保證一般是每隔一定時(shí)間進(jìn)行的,主要通過(guò)系統(tǒng)的質(zhì)量審計(jì)和過(guò)程分析來(lái)保證項(xiàng)目的質(zhì)量
質(zhì)量控制是實(shí)時(shí)監(jiān)控項(xiàng)目的具體結(jié)果,以判斷他們是否符合相關(guān)質(zhì)量標(biāo)準(zhǔn),制定有效方案,以消除產(chǎn)品質(zhì)量問(wèn)題的原因
一定時(shí)間內(nèi)質(zhì)量控制的結(jié)果也是質(zhì)量保證質(zhì)量設(shè)計(jì)的對(duì)象。質(zhì)量保證的成果又可以指導(dǎo)下一階段的質(zhì)量工作,包括質(zhì)量控制和質(zhì)量改進(jìn)。
6.5 軟件配置管理
開發(fā)庫(kù):動(dòng)態(tài)庫(kù)、程序庫(kù)、工作庫(kù);動(dòng)態(tài)系統(tǒng)、開發(fā)者系統(tǒng)、開發(fā)系統(tǒng)、工作空間
受控庫(kù):主庫(kù)、系統(tǒng)庫(kù);主系統(tǒng)、受控系統(tǒng)
產(chǎn)品庫(kù):備份庫(kù)、靜態(tài)庫(kù)、軟件倉(cāng)庫(kù);靜態(tài)系統(tǒng)
檢查點(diǎn):指在規(guī)定的時(shí)間間隔內(nèi)對(duì)項(xiàng)目進(jìn)行檢查,比較實(shí)際與計(jì)劃之間的差異,并根據(jù)差異進(jìn)行調(diào)整
里程碑:完成階段性工作標(biāo)志,不同類型的項(xiàng)目里程碑不同
6.6 風(fēng)險(xiǎn)管理
項(xiàng)目風(fēng)險(xiǎn)
潛在的預(yù)算、進(jìn)度、人員和組織、用戶和需求問(wèn)題
項(xiàng)目復(fù)雜性、規(guī)模和結(jié)構(gòu)的不確定性
技術(shù)風(fēng)險(xiǎn)
潛在的設(shè)計(jì)、實(shí)現(xiàn)、接口、測(cè)試和維護(hù)方面問(wèn)題
規(guī)格說(shuō)明的多義性、技術(shù)上的不確定性、技術(shù)陳舊、最新技術(shù)不成熟
商業(yè)風(fēng)險(xiǎn)
市場(chǎng)風(fēng)險(xiǎn): 系統(tǒng)雖然優(yōu)秀,但不是市場(chǎng)真正所想要的
策略風(fēng)險(xiǎn):系統(tǒng)不再符合企業(yè)信息系統(tǒng)戰(zhàn)略
銷售風(fēng)險(xiǎn):開發(fā)了銷售部門不清楚如何推銷的系統(tǒng)
管理風(fēng)險(xiǎn):由于重點(diǎn)轉(zhuǎn)移或人員變動(dòng)而失去上級(jí)支持
預(yù)算風(fēng)險(xiǎn): 開發(fā)過(guò)程沒有得到預(yù)算或人員的保證
7、系統(tǒng)安全分析與設(shè)計(jì)
7.1 安全基礎(chǔ)技術(shù)
對(duì)稱與非對(duì)稱加密
常見
缺陷:加密速度慢
RSA
ECC
缺點(diǎn)
常見對(duì)稱加密
加密強(qiáng)度不高,但效率搞
密鑰分發(fā)困難
DES
RC-5
IDEA
對(duì)稱加密
非對(duì)稱加密
公鑰體系

PKI公鑰體系

數(shù)據(jù)簽名

信息摘要
常用的消息摘要算法有MD5,SHA等,市場(chǎng)上廣泛使用的MD5,SHA算法的散列值分別為128和160位,SHA更安全。
7.2 網(wǎng)絡(luò)安全
安全協(xié)議

8、知識(shí)產(chǎn)權(quán)與標(biāo)準(zhǔn)化
8.1 保護(hù)范圍與對(duì)象

8.2 保護(hù)期限

8.3 知識(shí)產(chǎn)權(quán)人確定


8.4 侵權(quán)判斷

