OOAD-UML考試要點(diǎn)

簡(jiǎn)答題

1. KISS law,2/8 law,2+-7 law,separate of concern

1.1 KISS原則

KISS是Keep It Stupid Simple或 Keep It Simple,Stupid。其核心思想就是“解耦,解耦,再解耦”,職責(zé)單一化,功能單一化為以后的維護(hù)和重構(gòu)都會(huì)帶來(lái)極大的便利。

1.2 2/8原則

計(jì)算機(jī)在80%的時(shí)間執(zhí)行20%的常用代碼或是系統(tǒng)在80%的時(shí)間使用著20%的常用數(shù)據(jù)。

1.3 separate of concern

關(guān)注點(diǎn)分離,只與“特定概念、目標(biāo)”(關(guān)注點(diǎn))相關(guān)聯(lián)的軟件組成部分進(jìn)行“標(biāo)識(shí)、封裝和操縱”的能力,即標(biāo)識(shí)、封裝和操縱關(guān)注點(diǎn)的能力。

2. 軟件的作用

  1. 系統(tǒng)軟件用于計(jì)算機(jī)內(nèi)部的管理、維護(hù)、控制和運(yùn)行以及計(jì)算機(jī)程序的翻譯、裝入、編輯、控制和運(yùn)行。
  2. 應(yīng)用軟件是為某種實(shí)際應(yīng)用或解決某類問(wèn)題所編制的各種應(yīng)用程序。

3. 軟件的復(fù)雜性

3.1 定義:

軟件復(fù)雜性主要表現(xiàn)在程序的復(fù)雜性。程序的復(fù)雜性主要指模塊內(nèi)程序的復(fù)雜性。它直接關(guān)聯(lián)到軟件開(kāi)發(fā)費(fèi)用的多少、開(kāi)發(fā)周期長(zhǎng)短和軟件內(nèi)部潛伏錯(cuò)誤的多少。同時(shí)它也是軟件可理解性的另一種度量。

3.2 主要原因在于:

  • 問(wèn)題域的復(fù)雜性:軟件系統(tǒng)一般都是處理邏輯或業(yè)務(wù)規(guī)則比較復(fù)雜的問(wèn)題。
  • 管理開(kāi)發(fā)過(guò)程的困難性:不存在標(biāo)準(zhǔn)的流程,且現(xiàn)有的各種流程都只適合特定的團(tuán)隊(duì)、項(xiàng)目或者產(chǎn)品。
  • 軟件實(shí)現(xiàn)的靈活性:軟件的實(shí)現(xiàn)是沒(méi)有標(biāo)準(zhǔn)的,即便存在一些所謂的原則(如面向?qū)ο笤O(shè)計(jì)原則),這些原則也可以在進(jìn)度或特定限制下妥協(xié)。
  • 描述離散系統(tǒng)行為的問(wèn)題:離散系統(tǒng)永遠(yuǎn)都只能是對(duì)連續(xù)過(guò)程的抽樣和模擬,這就使得系統(tǒng)一直是從一個(gè)狀態(tài)變到另一個(gè)狀態(tài),而這些狀態(tài)又容易受到外部的干擾。

3.3 如何克服軟件的復(fù)雜性

克服軟件的復(fù)雜性

4. 軟件危機(jī)

4.1 定義

軟件危機(jī)是指落后的軟件生產(chǎn)方式無(wú)法滿足迅速增長(zhǎng)的計(jì)算機(jī)軟件需求,從而導(dǎo)致軟件開(kāi)發(fā)與維護(hù)過(guò)程中出現(xiàn)一系列嚴(yán)重問(wèn)題的現(xiàn)象。

4.2 產(chǎn)生的原因

  1. 軟件的規(guī)模越來(lái)越大,結(jié)構(gòu)越來(lái)越復(fù)雜。
  2. 軟件開(kāi)發(fā)的管理困難。
  3. 軟件開(kāi)發(fā)費(fèi)用不斷增加。
  4. 軟件開(kāi)發(fā)技術(shù)、開(kāi)發(fā)工具落后,生產(chǎn)率提高緩慢。
  5. 生產(chǎn)方式落后。軟件仍然采用個(gè)體手工方式開(kāi)發(fā)。
  6. 開(kāi)發(fā)工具落后,生產(chǎn)率提高緩慢

4.3 如何克服軟件危機(jī)

  1. 充分吸收和借鑒人類長(zhǎng)期以來(lái)從
    事各種工程項(xiàng)目中積累的行之有效的有效原理、概念、技術(shù)與方法,特別是吸取幾十年來(lái)人類從事計(jì)算機(jī)硬件研究和開(kāi)發(fā)的經(jīng)驗(yàn)教訓(xùn)。在開(kāi)發(fā)軟件的過(guò)程中努力作到良好的組織,嚴(yán)格的管理,相互友好的協(xié)作。
  2. 推廣在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功的技術(shù)和方法,并研究更好、更有效的技術(shù)和方法,盡快克服在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤概念和作法。
  3. 根據(jù)不同的應(yīng)用領(lǐng)域,開(kāi)發(fā)更好的軟件工具并使用這些工具。將軟件開(kāi)發(fā)各個(gè)階段使用的軟件工具集合成一個(gè)整體,形成一個(gè)很好的軟件開(kāi)發(fā)環(huán)境。

5. 軟件工程及其三要素

5.1 什么是軟件工程

軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。它涉及程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)、軟件開(kāi)發(fā)工具、系統(tǒng)平臺(tái)、標(biāo)準(zhǔn)、設(shè)計(jì)模式等方面。

5.2 簡(jiǎn)述軟件工程的三要素

軟件工程包括三個(gè)要素:方法、工具和過(guò)程。

  • 軟件工程方法為軟件開(kāi)發(fā)提供了“如何做”的技術(shù)。
  • 軟件工具為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。
  • 軟件工程的過(guò)程則是將軟件工程的方法和工具綜合起來(lái)以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)的目的。

6. 面向?qū)ο笈c面向過(guò)程軟件開(kāi)發(fā)方法

6.1 概述面向?qū)ο螅∣O)和面向過(guò)程(PO)的區(qū)別

  • 面向?qū)ο蠛?jiǎn)單,面向過(guò)程對(duì)人員要求素質(zhì)過(guò)高
  • 面向過(guò)程就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了。
  • 面向?qū)ο笫前褬?gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。

7. 迭代軟件開(kāi)發(fā)過(guò)程與瀑布軟件開(kāi)發(fā)過(guò)程

7.1 迭代軟件開(kāi)發(fā)

所有的階段可以細(xì)分為迭代。每一次的迭代都會(huì)產(chǎn)生一個(gè)可以發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。
優(yōu)點(diǎn):

  1. 降低了在一個(gè)增量上的開(kāi)支風(fēng)險(xiǎn)。
  2. 降低了產(chǎn)品無(wú)法按照既定進(jìn)度進(jìn)入市場(chǎng)的風(fēng)險(xiǎn)。
  3. 加快了整個(gè)開(kāi)發(fā)工作的進(jìn)度。
  4. 適應(yīng)需求的變化會(huì)更容易。

7.2 瀑布軟件開(kāi)發(fā)流程

講軟件生命周期分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫(xiě)、軟件測(cè)試和運(yùn)行維護(hù)六個(gè)基本活動(dòng),并且規(guī)定他們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。
優(yōu)點(diǎn):

  1. 為項(xiàng)目提供了按階段劃分的檢查點(diǎn)
  2. 當(dāng)前一階段完成后,你只需要去關(guān)注后續(xù)階段
  3. 可在迭代模型中應(yīng)用瀑布模型。

8. 軟件的基本技能

分析,設(shè)計(jì),編碼,測(cè)試,維護(hù)

9. 業(yè)務(wù)建模

描述組織內(nèi)部各系統(tǒng)(人肉系統(tǒng)、機(jī)械系統(tǒng)、電腦系統(tǒng)......)如何協(xié)作,使得組織
可以為其他組織提供有價(jià)值的服務(wù)。業(yè)務(wù)建模的目的是從組織的角度來(lái)定位系統(tǒng)應(yīng)該提供的價(jià)值。

業(yè)務(wù)建模的步驟

  1. 選定要改進(jìn)的組織
  2. 組織的業(yè)務(wù)用例圖
  3. 現(xiàn)狀業(yè)務(wù)序列圖

10. 需求的重要性與困難

  1. 用戶與開(kāi)發(fā)人員很難進(jìn)行交流;
  2. 用戶的需求是動(dòng)態(tài)變化的;
  3. 系統(tǒng)變更的代價(jià)呈非線性增長(zhǎng)

11. 軟件設(shè)計(jì)

設(shè)計(jì)階段:工程管理角度,概要設(shè)計(jì),詳細(xì)設(shè)計(jì);技術(shù)角度,體系結(jié)構(gòu)數(shù)據(jù),數(shù)據(jù)設(shè)計(jì),接口設(shè)計(jì),過(guò)程設(shè)計(jì);面向?qū)ο蠼嵌?,體系結(jié)構(gòu)設(shè)計(jì),類設(shè)計(jì),接口設(shè)計(jì),構(gòu)件設(shè)計(jì)
設(shè)計(jì)過(guò)程:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案,結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。
9個(gè)步驟:設(shè)想供選擇的方案;合理選取方案;推薦最佳方案;功能分解;設(shè)計(jì)軟件結(jié)構(gòu);設(shè)計(jì)數(shù)據(jù)庫(kù);制定測(cè)試計(jì)劃;書(shū)寫(xiě)文檔;審查和復(fù)審。
設(shè)計(jì)原理:模塊化

12. 業(yè)務(wù)用理與系統(tǒng)用例

業(yè)務(wù)用例指業(yè)務(wù)執(zhí)行者希望通過(guò)和組織交互達(dá)到的,而且組織能提供的價(jià)值。業(yè)務(wù)用例是組織的、而不是組織內(nèi)某個(gè)系統(tǒng)的用例。組織的用例不會(huì)因?yàn)槟硞€(gè)人肉系統(tǒng)或電腦系統(tǒng)的存在或消失而改變。
系統(tǒng)用例的定義:系統(tǒng)能夠?yàn)閳?zhí)行者提供的、涉眾可以接受的價(jià)值。

13. 業(yè)務(wù)工人和業(yè)務(wù)實(shí)體

業(yè)務(wù)工人(Business Worker)─組織內(nèi)的人肉系統(tǒng)
業(yè)務(wù)實(shí)體就是組織中的非人系統(tǒng)
業(yè)務(wù)工人會(huì)被業(yè)務(wù)實(shí)體替換

14. 系統(tǒng)執(zhí)行者和業(yè)務(wù)執(zhí)行著

系統(tǒng)執(zhí)行者的定義:在所研究系統(tǒng)外,與該系統(tǒng)發(fā)生功能性交互的其他系統(tǒng)。?
系統(tǒng)執(zhí)行者不是所研究系統(tǒng)的一部分,是該系統(tǒng)邊界外的一個(gè)系統(tǒng)
系統(tǒng)執(zhí)行者必須和系統(tǒng)有交互,不和系統(tǒng)交互的不算是系統(tǒng)的執(zhí)行者。
系統(tǒng)執(zhí)行者和重要無(wú)關(guān)

業(yè)務(wù)執(zhí)行者是一個(gè)組織(或人群),而不是系統(tǒng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容