版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、安徽工程大學(xué)軟件工程復(fù)習(xí)資料-張祥微型計(jì)算機(jī)及接口專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)科學(xué)與技術(shù)21022013年6月第一章軟件定義:軟件是:(1)指令的集合(計(jì)算機(jī)程序),通過(guò)執(zhí)行這些指令來(lái)滿足預(yù)期的特征、功能和性能需求; (2)數(shù)據(jù)結(jié)構(gòu),使得程序可以合理的利用信息;(3)文檔描述,用來(lái)描述程序操作和使用。軟件與硬件的區(qū)別:(1)軟件是設(shè)計(jì)開(kāi)發(fā)的,而不是傳統(tǒng)意義上的生產(chǎn)制造的。(2)軟件不會(huì)“磨損”。(3)雖然整個(gè)工業(yè)向著基于構(gòu)件的構(gòu)造模式發(fā)展,然而大多數(shù)軟件仍是根據(jù)實(shí)際的顧客需求定制的這張圖表示的意思?(1)在完整的生存周期里,軟件將會(huì)面臨變更,每次變更都可能引入新的錯(cuò)誤。不斷的變更是軟件退化的根
2、本原因。(2)軟件維護(hù)要應(yīng)對(duì)變更請(qǐng)求,比硬件維護(hù)更為復(fù)雜。軟件工程定義:1.種子定義:軟件工程是:建立和使用一套合理的工程原則,以便經(jīng)濟(jì)地獲得可靠的、可以在實(shí)際機(jī)器上高效運(yùn)行的軟件。2.IEEE 定義:軟件工程是:(1)將系統(tǒng)化的、規(guī)范的、可量化的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù),即將工程化方法應(yīng)用于軟件。(2)在(1)中所述方法的研究軟件工程三要素:軟件工程的基礎(chǔ)是過(guò)程(process)層軟件工程方法(method)為構(gòu)建軟件提供技術(shù)上的解決方法(“如何做”)軟件工程工具(tool)為過(guò)程和方法提供自動(dòng)化或半自動(dòng)化的支持根基:質(zhì)量關(guān)注點(diǎn)(軟件工程的目標(biāo))軟件工程五個(gè)最基本的過(guò)程框架活動(dòng)是什么
3、? 溝通、策劃、建模、構(gòu)建、部署軟件危機(jī)的概念、產(chǎn)生原因及其表現(xiàn)? a) 軟件危機(jī):指的是在計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重的問(wèn)題。 b) 表現(xiàn):軟件代價(jià)高、開(kāi)發(fā)進(jìn)度難以控制、工作量估計(jì)困難、質(zhì)量差、修改維護(hù)困難。 c) 產(chǎn)生的原因:用戶的需求不明確、缺乏正確的理論指導(dǎo)、軟件規(guī)模越來(lái)越大、軟件的復(fù)雜度越來(lái)越大、軟件靈活行要求高、影響軟件生產(chǎn)率與質(zhì)量因素十分復(fù)雜。第二章瀑布模型特點(diǎn): 文檔驅(qū)動(dòng)優(yōu)點(diǎn):(1)消除非結(jié)構(gòu)化軟件;(2)降低軟件的復(fù)雜度,促進(jìn)軟件開(kāi)發(fā)工程化。簡(jiǎn)述瀑布模型在實(shí)際運(yùn)用中所面臨的問(wèn)題(缺點(diǎn)):1.實(shí)際的項(xiàng)目
4、很少遵守瀑布模型提出的順序。雖然線性模型可以加入迭代,但是它是用間接的方式實(shí)現(xiàn)的,結(jié)果是,隨著項(xiàng)目的推進(jìn),變更可能造成混亂。2.客戶通常難以清楚地描述所有的需求。而瀑布模型卻需要客戶明確需求,因此很難適應(yīng)在許多項(xiàng)目開(kāi)始階段必然存在的不確定性。3.客戶必須要有耐心,因?yàn)橹挥性陧?xiàng)目接近尾聲的時(shí)候,他們才能得到可執(zhí)行的程序。對(duì)于系統(tǒng)中存在的重大缺陷,如果在可執(zhí)行程序評(píng)審之前沒(méi)有被發(fā)現(xiàn),將可能造成慘重?fù)p失。原型模型優(yōu)點(diǎn) :(1)需求表示清楚,用戶滿意度較高 (2)降低開(kāi)始風(fēng)險(xiǎn)和開(kāi)發(fā)成本 缺點(diǎn) :(1)原型法不適用于開(kāi)發(fā)大型的信息系統(tǒng) (2)系統(tǒng)難于維護(hù)
5、 (3)如果用戶合作不好,盲目糾錯(cuò),會(huì)拖延開(kāi)發(fā)進(jìn)程 第四章需求工程包括七個(gè)不同的活動(dòng):起始、導(dǎo)出、精化、協(xié)商、規(guī)格說(shuō)明、確認(rèn)和管理為什么需求的捕獲這么難? 范圍問(wèn)題:系統(tǒng)的邊界不清楚理解問(wèn)題:客戶并不能完全確定需要說(shuō)明易變問(wèn)題:需求隨時(shí)間變化導(dǎo)出需求:協(xié)作收集需求、質(zhì)量功能部署、用戶的場(chǎng)景、調(diào)查表、對(duì)用戶的現(xiàn)場(chǎng)觀察等質(zhì)量功能部署(QFD):是一種將客戶要求轉(zhuǎn)化成軟件技術(shù)需求的質(zhì)量管理技術(shù)。用例(use case):是外部可見(jiàn)的系統(tǒng)單元,這些功能由系統(tǒng)單元所提供,并通過(guò)一系列系統(tǒng)單元與一個(gè)或多個(gè)參與者之間交換的消息所表達(dá)。測(cè)試用例(testing case):指為實(shí)施一次測(cè)試
6、而向被測(cè)試系統(tǒng)提供的輸入數(shù)據(jù),操作各種環(huán)境設(shè)置。會(huì)畫(huà)簡(jiǎn)單的用例圖:用例的關(guān)系:包含(include)、擴(kuò)展(extend)、關(guān)聯(lián)(ascociation)、泛化(generalization)用例規(guī)約的基本內(nèi)容:簡(jiǎn)要說(shuō)明、事件流、用例場(chǎng)景、特殊需求、前置條件、后置條件第五章需求建模涉及的方法:結(jié)構(gòu)化分析方法、面向?qū)ο蠓治龇椒ɑ诮5脑兀夯趫?chǎng)景模型、基于類模型、基于行為模型、基于流模型用例圖、活動(dòng)圖、類圖(應(yīng)用題):基本畫(huà)法、基本關(guān)系第六章數(shù)據(jù)流圖(DFD)的四個(gè)符號(hào):即外部實(shí)體、數(shù)據(jù)加工、數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)(07年軟件設(shè)計(jì)師下午試題一)狀態(tài)圖、順序圖第七章模塊化(Modularity):是
7、關(guān)注點(diǎn)分離最常見(jiàn)的表現(xiàn),軟件被劃分為獨(dú)立命名的、可處理的構(gòu)件,有時(shí)被稱為模塊,把這些構(gòu)建集成到一起可以滿足問(wèn)題的需求。模塊化的優(yōu)點(diǎn):模塊化設(shè)計(jì)(以及由其產(chǎn)生的程序)是開(kāi)發(fā)工作更易于規(guī)劃,可以定義和交付軟件增量,更容易實(shí)施變更,能夠更有效地開(kāi)展測(cè)試和調(diào)試,可以長(zhǎng)期維護(hù)而沒(méi)有嚴(yán)重的副作用。獨(dú)立性可以通過(guò)兩條定性的標(biāo)準(zhǔn)進(jìn)行評(píng)估:內(nèi)聚性和耦合性。內(nèi)聚性顯示了某個(gè)模塊相關(guān)功能的強(qiáng)度。耦合性顯示了模塊間的相互依賴性。為什么我們總是努力構(gòu)造獨(dú)立模塊?(翻譯)具有有效模塊化(也就是獨(dú)立模塊)的軟件更容易開(kāi)發(fā),這是因?yàn)楣δ鼙环指舳医涌诒缓?jiǎn)化。獨(dú)立模塊更容易維護(hù)和測(cè)試,因?yàn)樾薷脑O(shè)計(jì)或修改代碼所引起的副作用被限制
8、,減少了錯(cuò)誤擴(kuò)散,而且模塊復(fù)用也成為可能。概括的說(shuō),功能獨(dú)立是良好設(shè)計(jì)的關(guān)鍵,而設(shè)計(jì)又是軟件質(zhì)量的關(guān)鍵。第八章體系風(fēng)格的分類:以數(shù)據(jù)為中心的體系結(jié)構(gòu)數(shù)據(jù)流體系結(jié)構(gòu)調(diào)用和返回體系結(jié)構(gòu)面向?qū)ο篌w系結(jié)構(gòu)層次體結(jié)構(gòu)結(jié)構(gòu)設(shè)計(jì)是一種映射技術(shù),常被作為面向數(shù)據(jù)流的方法,因?yàn)樗峁┝藦臄?shù)據(jù)流圖到軟件體系結(jié)構(gòu)的便捷的轉(zhuǎn)化變換的七個(gè)步驟:1評(píng)審基本系統(tǒng)模型 2評(píng)審和精化軟件的數(shù)據(jù)流圖 3確定DFD是否含有變換流或事物流特征 4通過(guò)確定輸入和輸出流的邊界,分隔出變換中心 5完成“第一級(jí)分解” 6完成“第二級(jí)分解” 7使用提高軟件質(zhì)量的設(shè)計(jì)啟發(fā)式方式,精化第一次迭代得到的體系結(jié)構(gòu)數(shù)據(jù)流圖(DFD)一般可分為“變換流”
9、,“事物流”兩種。變換流(transform flow):由輸入、輸出、變換三部分組成,是一順序結(jié)構(gòu)。事物流:它的某個(gè)加工,分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并且根據(jù)輸入值選擇其中一個(gè)路徑來(lái)執(zhí)行。第九章構(gòu)件(Component):系統(tǒng)中模塊化的、可部署的和可替換的部件,該部件封裝了實(shí)現(xiàn)并暴露一組接口。內(nèi)聚性(Cohesion):內(nèi)聚性指一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。耦合性(Coupling):耦合性是指模塊間互相連接的緊密程度的度量。結(jié)構(gòu)化程序設(shè)計(jì)的特征是程序模塊只有一個(gè)入口和一個(gè)出口、程序中只包含順序、條件和循環(huán)三種控制結(jié)構(gòu)。決策表(應(yīng)用題)十四章軟件測(cè)試的總體策略過(guò)
10、程:?jiǎn)卧獪y(cè)試、編碼、集成測(cè)試、設(shè)計(jì)、確認(rèn)測(cè)試、需求、系統(tǒng)測(cè)試、系統(tǒng)工程單元測(cè)試的目的:驗(yàn)證代碼能否達(dá)到詳細(xì)設(shè)計(jì)的預(yù)期要求。發(fā)現(xiàn)代碼中不符合編碼規(guī)范的地方。準(zhǔn)確定位發(fā)現(xiàn)的錯(cuò)誤,以便排除錯(cuò)誤。集成測(cè)試的優(yōu)缺點(diǎn)(自頂向下集成):優(yōu)點(diǎn):能盡早地對(duì)程序的主要控制和決策機(jī)制進(jìn)行檢驗(yàn),因此較早地發(fā)現(xiàn)錯(cuò)誤。缺點(diǎn):在測(cè)試較高層模塊時(shí)低層處理采用樁模塊替代不能反映真實(shí)情況,重要數(shù)據(jù)不能及時(shí)回送到上層模塊,因此測(cè)試并不充分?;貧w測(cè)試(regression testing):是指在發(fā)生修改之后重新測(cè)試先前的測(cè)試以保證修改的正確性。alpha測(cè)試是在用戶組織模擬軟件系統(tǒng)的運(yùn)行環(huán)境下的一種驗(yàn)收測(cè)試,由用戶或第三方測(cè)試公司
11、進(jìn)行的測(cè)試,模擬各類用戶行為對(duì)即將面市的軟件產(chǎn)品進(jìn)行測(cè)試,試圖發(fā)現(xiàn)并修改錯(cuò)誤。Beta測(cè)試是用戶公司組織各方面的典型終端用戶在日常工作中實(shí)際使用beta版本,并要求用戶報(bào)告異常情況,提出批評(píng)意見(jiàn)。區(qū)別:兩者的主要區(qū)別是測(cè)試的場(chǎng)所不同。Alpha測(cè)試是指把用戶請(qǐng)到開(kāi)發(fā)方的場(chǎng)所來(lái)測(cè)試,beta測(cè)試是指在一個(gè)或多個(gè)用戶的場(chǎng)所進(jìn)行的測(cè)試。Alpha測(cè)試的環(huán)境是受開(kāi)發(fā)方控制的,用戶的數(shù)量相對(duì)比較少,時(shí)間比較集中。而beta測(cè)試的環(huán)境是不受開(kāi)發(fā)方控制的,誰(shuí)也不知道用戶如何折磨軟件,用戶數(shù)量相對(duì)比較多,時(shí)間不集中。一般地,alpha測(cè)試先于beta測(cè)試執(zhí)行。通用的軟件產(chǎn)品需要較大規(guī)模的beta測(cè)試,測(cè)試周期
12、比較長(zhǎng)。如果產(chǎn)品通過(guò)了beta測(cè)試,那么就可以正式發(fā)行了測(cè)試和調(diào)試的區(qū)別1。測(cè)試的目的是找出存在的錯(cuò)誤;而調(diào)試的目的是定位錯(cuò)誤并修改程序以修改錯(cuò)誤。2。調(diào)試是測(cè)試之后的活動(dòng),測(cè)試和調(diào)試在目標(biāo),方法和思路上都有所不同3。測(cè)試從一個(gè)已知的條件開(kāi)始,使用預(yù)先定義的過(guò)程,有預(yù)知的結(jié)果;調(diào)試從一個(gè)未知的條件開(kāi)始,結(jié)束的過(guò)程不可預(yù)計(jì)4。測(cè)試過(guò)程可以實(shí)現(xiàn)設(shè)計(jì),進(jìn)度可實(shí)現(xiàn)確定;調(diào)試不能描述過(guò)程或者持續(xù)時(shí)間。5。測(cè)試是在軟件生命周期的全過(guò)程中,而調(diào)試只在軟件生命周期的編碼階段中6。測(cè)試主要由測(cè)試人員進(jìn)行,而編碼主要由開(kāi)發(fā)人員進(jìn)行。軟件測(cè)試:軟件測(cè)試是為了度量和提高被測(cè)試軟件的質(zhì)量,對(duì)測(cè)試條件進(jìn)行工程設(shè)計(jì),實(shí)施和
13、維護(hù)的整個(gè)生命周期過(guò)程。白盒測(cè)試(White-box testing):有時(shí)也稱為玻璃盒測(cè)試,是一種測(cè)試用例設(shè)計(jì)方法,它利用作為構(gòu)件層設(shè)計(jì)的一部分所描述的控制結(jié)構(gòu)來(lái)生成測(cè)試用例。黑盒測(cè)試(Black-box testing):也稱行為測(cè)試,側(cè)重于軟件的功能需求。即黑盒測(cè)試使軟件工程師能設(shè)計(jì)出將測(cè)試程序所有功能需求的輸入條件集。基本路徑測(cè)試(應(yīng)用題)黑盒測(cè)試和百合測(cè)試的區(qū)別:前者基于功能,后者基于結(jié)構(gòu)。黑盒測(cè)試常用技術(shù):邊界值、等價(jià)類、因果圖、錯(cuò)誤推測(cè)法等白盒測(cè)試常用技術(shù):靜態(tài)結(jié)構(gòu)分析法、邏輯覆蓋法、基本路徑測(cè)試法、域測(cè)試。復(fù)雜性(yclomatic):是一種軟件度量,它為程序的邏輯復(fù)雜性提供一
14、個(gè)量化的測(cè)度;導(dǎo)出測(cè)試用例:1 以設(shè)計(jì)或源代碼為基礎(chǔ),畫(huà)出相應(yīng)的流圖。 2 確定所得流圖的環(huán)復(fù)雜性。 3 確定線性獨(dú)立路徑的基本集合。 4 準(zhǔn)備測(cè)試用例,強(qiáng)制執(zhí)行基本集合中的每條路徑。(課本396-398)等價(jià)類劃分的基本思路:先從程序的規(guī)格說(shuō)明書(shū)中找出各個(gè)輸入條件,再為每個(gè)輸入條件劃分兩個(gè)或多個(gè)等價(jià)類,形成若干的互不相交的子集。等價(jià)類劃分步驟:(1)先考慮輸入數(shù)據(jù)的類型(合法型和非法型)(2)再考慮數(shù)據(jù)范圍(合法型中的合法區(qū)間和非法區(qū)間)(3)畫(huà)出示意圖,區(qū)分等價(jià)類(4)為每一個(gè)等價(jià)類編號(hào)。需求分析的方法:結(jié)構(gòu)化分析(傳統(tǒng)建模方法)、面向?qū)ο蠓治?。一、結(jié)構(gòu)化分析方法1、結(jié)構(gòu)化分析方法(Str
15、ucture Analysis-SA)(1) 定義是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。(2)結(jié)構(gòu)化分析的主要步驟通過(guò)對(duì)用戶的調(diào)查,以軟件的需求為線索,獲取當(dāng)前系統(tǒng)的具體模型;去掉具體模型中非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型;根據(jù)計(jì)算機(jī)的特點(diǎn)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型;完善目標(biāo)系統(tǒng)并補(bǔ)充細(xì)節(jié),寫(xiě)出目標(biāo)系統(tǒng)的軟件需求規(guī)格說(shuō)明。2、結(jié)構(gòu)化分析方法使用的常用工具(1)數(shù)據(jù)流圖(DFDData Flow Diagram ) 作用從數(shù)據(jù)傳遞和加工的角度,在需求分析階段以圖形的方式描述數(shù)據(jù)
16、流從輸入到輸出的移動(dòng)變換過(guò)程,為系統(tǒng)建立邏輯模型。 注意:數(shù)據(jù)流圖中的箭頭表示的是數(shù)據(jù)流。程序流程圖中的箭頭表示的是控制流。 數(shù)據(jù)流圖中的基本圖形符號(hào)意義 數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達(dá)數(shù)據(jù)處理過(guò)程的數(shù)據(jù)加工情況,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個(gè)系統(tǒng)。 在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個(gè)加工,它代表被開(kāi)發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)。 底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層。 中間層流圖則表示對(duì)其上層父圖的細(xì)化。它的每一加工可能繼續(xù)細(xì)化,形成子圖。 建立數(shù)據(jù)流圖
17、的步驟第1步由外向里:先畫(huà)系統(tǒng)的輸入輸出,然后畫(huà)系統(tǒng)的內(nèi)部。第2步自頂向下:順序完成頂層、中間層、底層數(shù)據(jù)流圖。第3步逐層分解。(2)數(shù)據(jù)字典 定義是所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,以及精確、嚴(yán)格的詳細(xì)定義。 作用對(duì)DFD中出現(xiàn)的被命名的圖形元素的確切解釋,數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表達(dá)數(shù)據(jù)處理的要求。 數(shù)據(jù)字典的組成數(shù)據(jù)項(xiàng):是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu):是若干數(shù)據(jù)項(xiàng)的有意義的集合;數(shù)據(jù)流:可以是數(shù)據(jù)項(xiàng),也可以是數(shù)據(jù)結(jié)構(gòu),表示某一個(gè)處理過(guò)程的輸入或輸出;數(shù)據(jù)存儲(chǔ):處理過(guò)程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計(jì)算機(jī)文件;處理過(guò)程。(3) 判定樹(shù)使用判定樹(shù)進(jìn)行描述時(shí), 應(yīng)分清哪
18、些是判定的條件,哪些是判定的結(jié)論,并找出判定條件之間的從屬關(guān)系、并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹(shù)。優(yōu)點(diǎn):更加直觀,易于理解和使用(4)判定表 使用條件當(dāng)數(shù)據(jù)流圖中的加工要依賴于多個(gè)邏輯條件的取值時(shí)(該加工的一組動(dòng)作是由于某一組條件取值的組合而引發(fā)的),使用判定表描述比較適宜。 判定表的組成(四部分)基本條件:各種可能的條件;條件項(xiàng):各種可能的條件組合;基本動(dòng)作:所有的操作;動(dòng)作項(xiàng):對(duì)應(yīng)的條件組合下所選的操作。 二、面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治龇椒ǎ∣bject-Oriented Analysis,OOA),是在一個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程中進(jìn)行了系統(tǒng)業(yè)務(wù)調(diào)查以后,按照面向?qū)ο蟮乃枷雭?lái)分析問(wèn)題。OO
19、A與結(jié)構(gòu)化分析有較大的區(qū)別。OOA所強(qiáng)調(diào)的是在系統(tǒng)調(diào)查資料的基礎(chǔ)上,針對(duì)OO方法所需要的素材進(jìn)行的歸類分析和整理,而不是對(duì)管理業(yè)務(wù)現(xiàn)狀和方法的分析。 OOA(面向?qū)ο蟮姆治觯┠P陀?個(gè)層次(主題層、對(duì)象類層、結(jié)構(gòu)層、屬性層和服務(wù)層)和5個(gè)活動(dòng)(標(biāo)識(shí)對(duì)象類、標(biāo)識(shí)結(jié)構(gòu)、定義主題、定義屬性和定義服務(wù))組成。在這種方法中定義了兩種對(duì)象類之間的結(jié)構(gòu),一種稱為分類結(jié)構(gòu),一種稱為組裝結(jié)構(gòu)。分類結(jié)構(gòu)就是所謂的一般與特殊的關(guān)系。組裝結(jié)構(gòu)則反映了對(duì)象之間的整體與部分的關(guān)系。 OOA在定義屬性的同時(shí),要識(shí)別實(shí)例連接。實(shí)例連接是一個(gè)實(shí)例與另一個(gè)實(shí)例的映射關(guān)系。 OOA在定義服務(wù)的同時(shí)要識(shí)別消息連接。當(dāng)一個(gè)對(duì)象需要向另
20、一對(duì)象發(fā)送消息時(shí),它們之間就存在消息連接。 OOA 中的5個(gè)層次和5個(gè)活動(dòng)繼續(xù)貫穿在OOD(畫(huà)向?qū)ο蟮脑O(shè)計(jì))過(guò)程中。OOD模型由4個(gè)部分組成。它們分別是設(shè)計(jì)問(wèn)題域部分、設(shè)計(jì)人機(jī)交互部分、設(shè)計(jì)任務(wù)管理部分和設(shè)計(jì)數(shù)據(jù)管理部分。一、OOA的主要原則。 (1)抽象:從許多事物中舍棄個(gè)別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性的特征,就叫作抽象。抽象是形成概念的必須手段。 抽象原則有兩方面的意義:第一,盡管問(wèn)題域中的事物是很復(fù)雜的,但是分析員并不需要了解和描述它們的一切,只需要分析研究其中與系統(tǒng)目標(biāo)有關(guān)的事物及其本質(zhì)性特征。第二,通過(guò)舍棄個(gè)體事物在細(xì)節(jié)上的差異,抽取其共同特征而得到一批事物的抽象概念。 抽象
21、是面向?qū)ο蠓椒ㄖ惺褂米顬閺V泛的原則。抽象原則包括過(guò)程抽象和數(shù)據(jù)抽象兩個(gè)方面。 過(guò)程抽象是指,任何一個(gè)完成確定功能的操作序列,其使用者都可以把它看作一個(gè)單一的實(shí)體,盡管實(shí)際上它可能是由一系列更低級(jí)的操作完成的。 數(shù)據(jù)抽象是根據(jù)施加于數(shù)據(jù)之上的操作來(lái)定義數(shù)據(jù)類型,并限定數(shù)據(jù)的值只能由這些操作來(lái)修改和觀察。數(shù)據(jù)抽象是OOA的核心原則。它強(qiáng)調(diào)把數(shù)據(jù)(屬性)和操作(服務(wù))結(jié)合為一個(gè)不可分的系統(tǒng)單位(即對(duì)象),對(duì)象的外部只需要知道它做什么,而不必知道它如何做。 (2)封裝就是把對(duì)象的屬性和服務(wù)結(jié)合為一個(gè)不可分的系統(tǒng)單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。 (3)繼承:特殊類的對(duì)象擁有的其一般類的全部屬性與服務(wù),
22、稱作特殊類對(duì)一般類的繼承。 在OOA中運(yùn)用繼承原則,就是在每個(gè)由一般類和特殊類形成的一般特殊結(jié)構(gòu)中,把一般類的對(duì)象實(shí)例和所有特殊類的對(duì)象實(shí)例都共同具有的屬性和服務(wù),一次性地在一般類中進(jìn)行顯式的定義。在特殊類中不再重復(fù)地定義一般類中已定義的東西,但是在語(yǔ)義上,特殊類卻自動(dòng)地、隱含地?fù)碛兴囊话泐悾ㄒ约八懈蠈拥囊话泐悾┲卸x的全部屬性和服務(wù)。繼承原則的好處是:使系統(tǒng)模型比較簡(jiǎn)練也比較清晰。 (4)分類:就是把具有相同屬性和服務(wù)的對(duì)象劃分為一類,用類作為這些對(duì)象的抽象描述。分類原則實(shí)際上是抽象原則運(yùn)用于對(duì)象描述時(shí)的一種表現(xiàn)形式。 (5)聚合:又稱組裝,其原則是:把一個(gè)復(fù)雜的事物看成若干比較簡(jiǎn)單的
23、事物的組裝體,從而簡(jiǎn)化對(duì)復(fù)雜事物的描述。 (6)關(guān)聯(lián):是人類思考問(wèn)題時(shí)經(jīng)常運(yùn)用的思想方法:通過(guò)一個(gè)事物聯(lián)想到另外的事物。能使人發(fā)生聯(lián)想的原因是事物之間確實(shí)存在著某些聯(lián)系。 (7)消息通信:這一原則要求對(duì)象之間只能通過(guò)消息進(jìn)行通信,而不允許在對(duì)象之外直接地存取對(duì)象內(nèi)部的屬性。通過(guò)消息進(jìn)行通信是由于封裝原則而引起的。在OOA中要求用消息連接表示出對(duì)象之間的動(dòng)態(tài)聯(lián)系。 (8)粒度控制:一般來(lái)講,人在面對(duì)一個(gè)復(fù)雜的問(wèn)題域時(shí),不可能在同一時(shí)刻既能縱觀全局,又能洞察秋毫。因此需要控制自己的視野:考慮全局時(shí),注意其大的組成部分,暫時(shí)不詳察每一部分的具體的細(xì)節(jié);考慮某部分的細(xì)節(jié)時(shí)則暫時(shí)撇開(kāi)其余的部分。這就是粒
24、度控制原則。 (9)行為分析:現(xiàn)實(shí)世界中事物的行為是復(fù)雜的。由大量的事物所構(gòu)成的問(wèn)題域中各種行為往往相互依賴、相互交織。二、面向?qū)ο蠓治霎a(chǎn)生三種分析模型 1、功能模型(即用例模型à作為輸入) 2、對(duì)象模型:對(duì)用例模型進(jìn)行分析,把系統(tǒng)分解成互相協(xié)作的分析類,通過(guò)類圖/對(duì)象圖描述對(duì)象/對(duì)象的屬性/對(duì)象間的關(guān)系,是系統(tǒng)的靜態(tài)模型 3、動(dòng)態(tài)模型:描述系統(tǒng)的動(dòng)態(tài)行為,通過(guò)時(shí)序圖/協(xié)作圖描述對(duì)象的交互,以揭示對(duì)象間如何協(xié)作來(lái)完成每個(gè)具體的用例,單個(gè)對(duì)象的狀態(tài)變化/動(dòng)態(tài)行為可以通過(guò)狀態(tài)圖來(lái)表達(dá)三、OOA的主要優(yōu)點(diǎn) (1)加強(qiáng)了對(duì)問(wèn)題域和系統(tǒng)責(zé)任的理解; (2)改進(jìn)與分析有關(guān)的各類人員之間的交流;
25、(3)對(duì)需求的變化具有較強(qiáng)的適應(yīng)性; (4)支持軟件復(fù)用。 (5)貫穿軟件生命周期全過(guò)程的一致性。 (6)實(shí)用性; (7)有利于用戶參與。四、OOA方法的基本步驟 在用OOA具體地分析一個(gè)事物時(shí),大致上遵循如下五個(gè)基本步驟: 第一步,確定對(duì)象和類。這里所說(shuō)的對(duì)象是對(duì)數(shù)據(jù)及其處理方式的抽象,它反映了系統(tǒng)保存和處理現(xiàn)實(shí)世界中某些事物的信息的能力。類是多個(gè)對(duì)象的共同屬性和方法集合的描述,它包括如何在一個(gè)類中建立一個(gè)新對(duì)象的描述。 第二步,確定結(jié)構(gòu)(structure)。結(jié)構(gòu)是指問(wèn)題域的復(fù)雜性和連接關(guān)系。類成員結(jié)構(gòu)反映了泛化-特化關(guān)系,整體-部分結(jié)構(gòu)反映整體和局部之間的關(guān)系。 第三步,確定主題(sub
26、ject)。主題是指事物的總體概貌和總體分析模型。 第四步,確定屬性(attribute)。屬性就是數(shù)據(jù)元素,可用來(lái)描述對(duì)象或分類結(jié)構(gòu)的實(shí)例,可在圖中給出,并在對(duì)象的存儲(chǔ)中指定。 第五步,確定方法(method)。方法是在收到消息后必須進(jìn)行的一些處理方法:方法要在圖中定義,并在對(duì)象的存儲(chǔ)中指定。對(duì)于每個(gè)對(duì)象和結(jié)構(gòu)來(lái)說(shuō),那些用來(lái)增加、修改、刪除和選擇一個(gè)方法本身都是隱含的(雖然它們是要在對(duì)象的存儲(chǔ)中定義的,但并不在圖上給出),而有些則是顯示的。三、 基本路徑測(cè)試法的步驟:第一步:畫(huà)出控制流圖流程圖用來(lái)描述程序控制結(jié)構(gòu)??蓪⒘鞒虉D映射到一個(gè)相應(yīng)的流圖(假設(shè)流程圖的菱形決定框中不包含復(fù)合條件)。在流
27、圖中,每一個(gè)圓,稱為流圖的結(jié)點(diǎn),代表一個(gè)或多個(gè)語(yǔ)句。一個(gè)處理方框序列和一個(gè)菱形決測(cè)框可被映射為一個(gè)結(jié)點(diǎn),流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個(gè)結(jié)點(diǎn),即使該結(jié)點(diǎn)并不代表任何語(yǔ)句(例如:if-else-then結(jié)構(gòu))。由邊和結(jié)點(diǎn)限定的范圍稱為區(qū)域。計(jì)算區(qū)域時(shí)應(yīng)包括圖外部的范圍。 畫(huà)出其程序流程圖和對(duì)應(yīng)的控制流圖如下 第二步:計(jì)算圈復(fù)雜度圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測(cè)度的軟件度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有語(yǔ)句至少執(zhí)行一次的測(cè)試數(shù)量的上界。獨(dú)立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方法計(jì)算圈復(fù)雜度:1.流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(huán)型的復(fù)雜性;2.給定流圖G的圈復(fù)雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點(diǎn)的數(shù)量;3.給定流圖G的圈復(fù)雜度V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點(diǎn)的數(shù)量。 第三步:導(dǎo)出測(cè)試用例根據(jù)上面的計(jì)算方法,可得出四個(gè)獨(dú)立的路徑。(一條獨(dú)立路徑是指,和其他的獨(dú)立路徑相比,至少引入一個(gè)新處理語(yǔ)句或一個(gè)新判斷的程序通
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高校教務(wù)管理水平提升的路徑探析
- 幼兒實(shí)習(xí)心得
- 語(yǔ)文教師辭職報(bào)告(合集15篇)
- 電工辭職申請(qǐng)書(shū)
- 讀書(shū)活動(dòng)個(gè)人總結(jié)范文2021
- 技術(shù)員工作總結(jié)
- 保險(xiǎn)公司個(gè)人工作計(jì)劃范文
- xx區(qū)供氣項(xiàng)目可行性研究報(bào)告
- 汽車的銷售年終總結(jié)體會(huì)10篇
- 國(guó)家級(jí)產(chǎn)業(yè)園基礎(chǔ)設(shè)施市場(chǎng)需求分析
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期期末考試生物試題 含答案
- 2024-2025學(xué)年一年級(jí)數(shù)學(xué)上冊(cè)期末樂(lè)考非紙筆測(cè)試題(二 )(蘇教版2024秋)
- 辦公樓電氣改造施工方案
- 浙江省衢州市2023-2024學(xué)年高一上學(xué)期期末英語(yǔ)試題(含答案)3
- 校園餐整治存在的問(wèn)題及建議
- 超齡員工用工免責(zé)協(xié)議書(shū)
- 低血糖休克護(hù)理業(yè)務(wù)學(xué)習(xí)
- 農(nóng)村養(yǎng)牛合作合同范本
- 天一大聯(lián)考海南省2025屆高一上數(shù)學(xué)期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 2023建筑施工技術(shù)規(guī)范
- 2024秋國(guó)開(kāi)電大《經(jīng)濟(jì)學(xué)基礎(chǔ)》形考任務(wù)1-4
評(píng)論
0/150
提交評(píng)論