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