2018軟考《系統(tǒng)集成項(xiàng)目管理工程師》復(fù)習(xí)考點(diǎn)6
3.4面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)
●面向?qū)ο蟮幕靖拍?/p>
基本概念:對(duì)象、類、抽象、封裝、繼承、多態(tài)、接口、消息、組件、模式、復(fù)用。
對(duì)象3要素:對(duì)象標(biāo)識(shí)、對(duì)象狀態(tài)、對(duì)象行為。
類的數(shù)據(jù)(屬性)表現(xiàn)類靜態(tài)方面;類的函數(shù)(功能)表現(xiàn)類動(dòng)態(tài)方面。
類和對(duì)象的關(guān)系:每個(gè)對(duì)象都是某一個(gè)類的實(shí)例;每個(gè)類有零或多個(gè)實(shí)例;類是生成對(duì)象的模板;類是靜態(tài)的,它的存在、語義和關(guān)系在程序執(zhí)行前就已經(jīng)定義好了,對(duì)象是動(dòng)態(tài)的,它在程序執(zhí)行時(shí)可以被創(chuàng)建和刪除。
繼承表示類之間的關(guān)系,可分為單繼承和多繼承。Java是單繼承語言,C++是多繼承語言。
多態(tài)是一種方法,使得多個(gè)類中可以定義同一個(gè)操作或?qū)傩悦⒃诿總(gè)類中都有不同的實(shí)現(xiàn)。
接口是對(duì)操作規(guī)范的說明,定義操作應(yīng)該做什么,沒有定義操作如何做,即沒有定義實(shí)現(xiàn)細(xì)節(jié)。
消息是對(duì)象間的交互手段。
組件是軟件系統(tǒng)可替換的、物理的組成部分,它封裝了實(shí)現(xiàn)體(實(shí)現(xiàn)某個(gè)功能),并提供了一組接口的實(shí)現(xiàn)方法。組件應(yīng)利于復(fù)用,同時(shí)提供公共特性和可變特性。
模式是一條由3部分組成的規(guī)則,表示了一個(gè)特定環(huán)境、一個(gè)問題、一個(gè)解決方案之間的關(guān)系。每個(gè)模式描述了一個(gè)重復(fù)發(fā)生的問題,以及該問題的解決方案。
●統(tǒng)一建模語言UML與可視化建模
統(tǒng)一建模語言(UML,UnifiedModelingLanguage)是一個(gè)通用的可視化建模語言,它是面向?qū)ο蠓治龊驮O(shè)計(jì)的一種標(biāo)準(zhǔn)化表示,用于對(duì)軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)的文檔。
UML描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,它將系統(tǒng)描述為一些獨(dú)立的相互作用的對(duì)象,構(gòu)成為外界提供一定功能的模型結(jié)構(gòu)。靜態(tài)結(jié)構(gòu)定義了系統(tǒng)中重要對(duì)象的屬性和服務(wù);動(dòng)態(tài)行為定義了對(duì)象的時(shí)間特性和對(duì)象為完成目標(biāo)而進(jìn)行相互間通訊的機(jī)制。
UML不是一種可視化的程序設(shè)計(jì)語言,是一種可視化的建模語言。UML沒有定義一種標(biāo)準(zhǔn)的開發(fā)過程,但它比較適用于迭代式的開發(fā)過程,是為支持面向?qū)ο蟮拈_發(fā)過程設(shè)計(jì)的。
●面向?qū)ο笙到y(tǒng)分析
面向?qū)ο蟮南到y(tǒng)分析指運(yùn)用面向?qū)ο蟮姆椒ǚ治鰡栴}域,建立基于對(duì)象、消息的業(yè)務(wù)模型,形成對(duì)客觀世界和業(yè)務(wù)本身的正確認(rèn)識(shí)。
面向?qū)ο蟮姆治瞿P陀捎美P、?對(duì)象模型、對(duì)象-關(guān)系模型、對(duì)象-行為模型組成。
(1)用例模型描述用戶和系統(tǒng)間的交互;
(2)類-對(duì)象模型描述系統(tǒng)涉及的全部對(duì)象和類;
(3)對(duì)象-關(guān)系模型描述對(duì)象間的靜態(tài)關(guān)系;
(4)對(duì)象-行為模型描述系統(tǒng)的動(dòng)態(tài)行為。
●面向?qū)ο笙到y(tǒng)設(shè)計(jì)
面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)指用分析階段給出的問題域模型,用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)出軟件基礎(chǔ)架構(gòu)(概要設(shè)計(jì))和完整的類結(jié)構(gòu)(詳細(xì)設(shè)計(jì)),以實(shí)現(xiàn)業(yè)務(wù)功能。
面向?qū)ο笤O(shè)計(jì)階段:用例設(shè)計(jì)、類設(shè)計(jì)、子系統(tǒng)設(shè)計(jì)。
3.5軟件系統(tǒng)結(jié)構(gòu)(軟件架構(gòu))
●軟件體系結(jié)構(gòu)定義
軟件架構(gòu)定義:將軟件系統(tǒng)劃分為多個(gè)模塊,明確各模塊間的相互作用,組合起來實(shí)現(xiàn)系統(tǒng)的全部特性。
軟件架構(gòu)不僅確定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),還顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)各要素間的對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原則。
●典型體系結(jié)構(gòu)
軟件架構(gòu)設(shè)計(jì)的一個(gè)核心問題是能夠使用重復(fù)的架構(gòu)模式,能否達(dá)到架構(gòu)級(jí)的軟件復(fù)用。
常見的架構(gòu)模式:
管道/過濾器模式;面向?qū)ο竽J?事件驅(qū)動(dòng)模式;分層模式;知識(shí)庫模式;C/S模式;
●軟件體系結(jié)構(gòu)設(shè)計(jì)方法
軟件架構(gòu)設(shè)計(jì)是動(dòng)態(tài)的,初期的設(shè)計(jì)并不能完全確定下來,和建筑設(shè)計(jì)不同。
架構(gòu)設(shè)計(jì)的目標(biāo):最大化復(fù)用;復(fù)雜問題簡單化(這也是中間件和多層技術(shù)的根本目標(biāo));靈活的擴(kuò)展性;
●軟件體系結(jié)構(gòu)分析與評(píng)估
軟件架構(gòu)設(shè)計(jì)注意事項(xiàng):關(guān)系數(shù)據(jù)庫優(yōu)于對(duì)象數(shù)據(jù)庫,前者成熟,多廠商支持,后者技術(shù)先進(jìn);用戶界面選擇使用HTML(HTTP);靈活性與性能考慮,即考慮獨(dú)立于廠家方案還是單廠家方案;選擇成熟的技術(shù)可以規(guī)避項(xiàng)目風(fēng)險(xiǎn);聘請(qǐng)經(jīng)驗(yàn)豐富的架構(gòu)設(shè)計(jì)師。
●軟件中間件
中間件(Middleware)用來解決分布系統(tǒng)的異構(gòu)問題。中間件是位于硬件、操作系統(tǒng)等平臺(tái)和應(yīng)用之間的通用服務(wù),這些服務(wù)有標(biāo)準(zhǔn)的程序接口(API)和協(xié)議。
中間件的分類:
數(shù)據(jù)庫訪問中間件(ODBC-Windows;JDBC-Java);遠(yuǎn)程過程調(diào)用中間件(RPC);面向消息的中間件(MOM);分布式對(duì)象中間件(CORBA;EJB;DCOM);事務(wù)中間件(TPM);
最新資訊
- 2021年上半年軟考職稱考試高頻考點(diǎn)一2021-04-23
- 2020年軟件水平考試知識(shí)點(diǎn)之端口掃描2020-03-31
- 2020年軟件水平考試知識(shí)點(diǎn)之?dāng)?shù)學(xué)建模過程2020-03-31
- 2020年軟件水平考試知識(shí)點(diǎn)之需求分析的目標(biāo)2020-03-31
- 2020年軟件水平考試知識(shí)點(diǎn)之項(xiàng)目完整的收尾流程2020-03-31
- 2020年軟件水平考試知識(shí)點(diǎn)之計(jì)算機(jī)網(wǎng)絡(luò)安全體系結(jié)構(gòu)2020-03-31
- 2020年軟件水平考試知識(shí)點(diǎn)之項(xiàng)目成本估算2020-03-30
- 2020年軟件水平考試知識(shí)點(diǎn)之項(xiàng)目范圍定義2020-03-30
- 2020年軟件水平考試知識(shí)點(diǎn)之招標(biāo)文件2020-03-30
- 2020年軟件水平考試知識(shí)點(diǎn)之回歸測(cè)試2020-03-30