1. 程式人生 > >軟體設計師衝刺筆記(一)

軟體設計師衝刺筆記(一)

目錄

軟體維護

專案管理

UML

規範化理論

模式分解

軟體開發模型

瀑布模型:需求必須是穩定的,明確的,只適合二次開發或需求是穩定的情況; 原型化模型:對需求明確性最低的模型,適用於需求不明確的情況,構造一個簡易系統從而獲取需求; 螺旋模型:是多種模型的中合體,依據原型化模型發展來的,但融入了瀑布模型迭代模型等,還考慮到了風險性; 敏捷方法:輕量級的方法,強調小步快跑的模式完成系統開發,放棄文件以及相應的流程;

軟體測試-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.貪心法(用於求滿意解):只進行一步的策略,單步策略,累積起來可能是最優的策略