软件设计师冲刺笔记(一)
目錄
軟件開(kāi)發(fā)模型
軟件測(cè)試-McCabe復(fù)雜度
軟件維護(hù)
項(xiàng)目管理
面向?qū)ο蟮幕靖拍?/p>
面向?qū)ο笤O(shè)計(jì)7大原則
UML
面向?qū)ο笤O(shè)計(jì)-設(shè)計(jì)模式分類
規(guī)范化理論-圖示法 求候選鍵
規(guī)范化理論
模式分解
軟考中算法特征(只有4種)
軟件開(kāi)發(fā)模型
瀑布模型:需求必須是穩(wěn)定的,明確的,只適合二次開(kāi)發(fā)或需求是穩(wěn)定的情況;
原型化模型:對(duì)需求明確性最低的模型,適用于需求不明確的情況,構(gòu)造一個(gè)簡(jiǎn)易系統(tǒng)從而獲取需求;
螺旋模型:是多種模型的中合體,依據(jù)原型化模型發(fā)展來(lái)的,但融入了瀑布模型迭代模型等,還考慮到了風(fēng)險(xiǎn)性;
敏捷方法:輕量級(jí)的方法,強(qiáng)調(diào)小步快跑的模式完成系統(tǒng)開(kāi)發(fā),放棄文檔以及相應(yīng)的流程;
?
軟件測(cè)試-McCabe復(fù)雜度
計(jì)算有向圖G的環(huán)路復(fù)雜度公式:V(G)=m-n+2?? ?//邊-點(diǎn)+2
?
軟件維護(hù)
軟件維護(hù)類型
改正性維護(hù):原軟件存在有BUG,測(cè)試的時(shí)候沒(méi)有發(fā)現(xiàn)BUG,在維護(hù)階段發(fā)現(xiàn)有問(wèn)題要及時(shí)修正
適應(yīng)性維護(hù):環(huán)境因數(shù)變化;
預(yù)防性維護(hù):對(duì)未來(lái)可能要進(jìn)行的維護(hù)工作提前所做的準(zhǔn)備;
完善性維護(hù):擴(kuò)充功能和改善性能;
?
項(xiàng)目管理
Gant圖:簡(jiǎn)單直觀時(shí)間管理圖,直觀展現(xiàn)項(xiàng)目的計(jì)劃(粗線)以及實(shí)現(xiàn)(細(xì)線)的情況,以及對(duì)比分析,但活動(dòng)之間邏輯依賴關(guān)系難以表達(dá)關(guān)系;
Pert圖(活動(dòng)網(wǎng)絡(luò)圖):每一個(gè)結(jié)點(diǎn),每一條邊都構(gòu)成一個(gè)活動(dòng),清晰了解項(xiàng)目里哪個(gè)活動(dòng)比較早開(kāi)展,哪個(gè)活動(dòng)比較晚開(kāi)展,分析關(guān)鍵路徑展示情況;
?
面向?qū)ο蟮幕靖拍?/h1>
對(duì)象:屬性(數(shù)據(jù))+方法(操作)+對(duì)象ID
類:(實(shí)體類/控制類/邊界類)
繼承與泛化:復(fù)用機(jī)制
封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開(kāi)接口
多態(tài):不同對(duì)象收到同樣的消息產(chǎn)生不同的結(jié)果(用上層的對(duì)象指針進(jìn)行統(tǒng)一的操作)
接口:一種特殊的類,他有方法定義沒(méi)有實(shí)現(xiàn)
重載:一個(gè)類可以有多個(gè)同名的參數(shù)類型不同的方法
?
面向?qū)ο笤O(shè)計(jì)7大原則
單一職責(zé)原則:設(shè)計(jì)目的單一的類
開(kāi)放-封閉原則:對(duì)擴(kuò)展開(kāi)放,對(duì)修改封閉
李氏(Liskov)替換原則:子類可以替換父類
依賴倒置原則:要依賴于抽象,而不是具體實(shí)現(xiàn);針對(duì)接口編程,不要針對(duì)實(shí)現(xiàn)編程
接口隔離原則:使用多個(gè)專門(mén)的接口比使用單一的接口要好
組合重用原則:要盡量使用組合,而不是繼承關(guān)系達(dá)到重用的目的
迪米特(Demeter)原則(最少知識(shí)法則):一個(gè)對(duì)象應(yīng)當(dāng)對(duì)其他對(duì)象有盡可能少的了解
?
UML
結(jié)構(gòu)圖(靜態(tài)圖):類圖、對(duì)象圖、構(gòu)件圖、部署圖(軟硬件之間映射)
行為圖(動(dòng)態(tài)圖):用例圖(系統(tǒng)與外部參與者的交互)、順序圖(強(qiáng)調(diào)時(shí)間順序)、通信圖(協(xié)助圖)、狀態(tài)圖(狀態(tài)轉(zhuǎn)換)、活動(dòng)圖(類似程序流程圖、并行行為)
依賴關(guān)系(虛線+實(shí)心三角形):一個(gè)事物發(fā)生變化影響另一個(gè)事物
泛化關(guān)系(實(shí)線+空心三角形):特殊/一般關(guān)系
關(guān)聯(lián)關(guān)系(聚合+組合):描述一組鏈,鏈?zhǔn)菍?duì)象之間的的連接
聚合關(guān)系(實(shí)線+空心菱形):整體與部分生命周期不同
組合關(guān)系(實(shí)線+實(shí)心菱形):整體與部分生命周期相同
實(shí)現(xiàn)關(guān)系(虛線+空心三角形):接口與類之間的關(guān)系
?
面向?qū)ο笤O(shè)計(jì)-設(shè)計(jì)模式分類
設(shè)計(jì)模式的思想:復(fù)用一個(gè)解決方案,這些模式里面已經(jīng)存在了哪些接口,哪些類,這些類應(yīng)該如何進(jìn)行交互;
創(chuàng)建型模式(進(jìn)行對(duì)象的創(chuàng)建)
1.工廠方法(factory method)模式:專門(mén)構(gòu)造一個(gè)方法,這個(gè)工廠的職能非常單一,就是生成對(duì)象;就是把創(chuàng)建對(duì)象的活給外部了,只需要指定的格式去調(diào)用工廠方法,就能夠得到需要的對(duì)象;
2.抽象工廠(abstract factory)模式
3.原型(prototype)模式
4.單例(singleton)模式:最大特點(diǎn)是每個(gè)類只能實(shí)例出一個(gè)對(duì)象
5.構(gòu)建器(builder)模式
結(jié)構(gòu)型模式:
1.適配器(adapter)模式:從一種接口轉(zhuǎn)換為另外一種接口
2.橋接(bridge)模式:解決類爆炸問(wèn)題
3.組合(composite)模式:整體和部分的構(gòu)建
4.裝飾(decorator)模式
5.外掛(facade)模式
6.享元(flyweight)模式
7.代理(proxy)模式
行為型模式
1.職責(zé)鏈(chain of responsibility)模式
2.命令(command)模式
3.解釋器(interpreter)模式
4.迭代器(iterator)模式
5.中介者(mediator)模式
6.備忘錄(memento)模式
7.觀察者(observer)模式
8.狀態(tài)(state)模式
9.策略(strategy)模式
10.模板方法(template method)模式
11.訪問(wèn)者(visitor)模式
?
規(guī)范化理論-圖示法 求候選鍵
1.將關(guān)系的函數(shù)依賴關(guān)系,用“有向圖”表示;
2.找入讀為0的點(diǎn),遍歷圖,如果能遍歷完所有的點(diǎn),那么就是候選鍵;
3.中間結(jié)點(diǎn)(既有入度,又有出度的點(diǎn))進(jìn)行遍歷,如果能遍歷所有結(jié)點(diǎn),就是候選鍵;
?
規(guī)范化理論
1NF:屬性都是不可分的原子
2NF:消除非主屬性對(duì)候選鍵的部分函數(shù)依賴(當(dāng)候選鍵是單屬性的時(shí)候,肯定是2NF)
3NF:消除非主屬性對(duì)候選鍵的傳遞函數(shù)依賴(A->B->C這就存在傳遞依賴)
BCNF:消除主屬性對(duì)候選鍵的部分和傳遞依賴
?
模式分解
無(wú)損分解:能通過(guò)關(guān)聯(lián)查詢,恢復(fù)成原關(guān)系
保持函數(shù)依賴分解:出冗余依賴,替他均能在拆分后的關(guān)系中找到
?
軟考中算法特征(只有4種)
1.分治法:拆分,遞歸
2.動(dòng)態(tài)規(guī)劃法(用于求最優(yōu)解):拆分,但用數(shù)組存
3.回溯法:不行就回退,然后不斷的嘗試
4.貪心法(用于求滿意解):只進(jìn)行一步的策略,單步策略,累積起來(lái)可能是最優(yōu)的策略
總結(jié)
以上是生活随笔為你收集整理的软件设计师冲刺笔记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 编码风格工作笔记-初步模仿大佬编码风格
- 下一篇: C++ STL list排序