版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章面向?qū)ο蟪绦蛟O(shè)計(jì)
主講教師:楊建軍Talentscomefromdiligence,andknowledgeisgainedbyaccumulation.天才源于勤奮,知識(shí)源于積累。教學(xué)重點(diǎn)軟件的需求定義軟件系統(tǒng)設(shè)計(jì)軟件系統(tǒng)實(shí)現(xiàn)軟件測試軟件維護(hù)6.1軟件工程過程和軟件的生命周期
軟件工程過程是指為獲得軟件產(chǎn)品,在軟件工具支持下由軟件工程師完成的一系列軟件工程活動(dòng)。不同的組織有不同的軟件過程,這些活動(dòng)可以重疊,執(zhí)行時(shí)也可以有迭代。軟件生存周期是指軟件產(chǎn)品從考慮其概念開始到該軟件產(chǎn)品交付使用,直至最終淘汰為止的整個(gè)過程,一般包括計(jì)劃、分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、集成、交付、維護(hù)等階段。6.2軟件的需求定義
6.2.1系統(tǒng)可行性分析可行性研究的任務(wù)是系統(tǒng)分析員進(jìn)行概要分析研究,初步確定項(xiàng)目的規(guī)模、目標(biāo)、約束和限制,然后進(jìn)行簡要的需求分析,抽象出項(xiàng)目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過快速原型設(shè)計(jì),探索出若干種可供選擇的解決方法,對各種解決方法都要研究它的可行性。主要從以下幾個(gè)方面考慮:(1)技術(shù)可行性。一般考慮的情況包括:開發(fā)的風(fēng)險(xiǎn)即設(shè)計(jì)出的系統(tǒng)能否達(dá)到要求的功能和性能、資源的有效性、相關(guān)技術(shù)的發(fā)展是否支持。(2)經(jīng)濟(jì)可行性。進(jìn)行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項(xiàng)目是否值得投資。(3)社會(huì)可行性。要開發(fā)的項(xiàng)目是否存在任何侵權(quán)問題,運(yùn)行方式在擁護(hù)組織內(nèi)是否可行,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。(4)提出并評價(jià)實(shí)現(xiàn)的各種開發(fā)方案,選出最適合該項(xiàng)目的切實(shí)可行的方案。6.2.2軟件開發(fā)計(jì)劃軟件開發(fā)計(jì)劃的內(nèi)容在進(jìn)行了可行性研究之后,開發(fā)軟件系統(tǒng)可行的話,接著要制定軟件的開發(fā)計(jì)劃。軟件項(xiàng)目開發(fā)包括如下幾個(gè)方面:①項(xiàng)目概述:說明項(xiàng)目的各項(xiàng)主要工作;說明軟件的功能、性能;為完成項(xiàng)目應(yīng)具有的條件;用戶及合同承包者承擔(dān)的工作完成的期限及其他條件限制;應(yīng)交付的程序名稱;所使用的語言及存儲(chǔ)形式;應(yīng)交付的文檔。②實(shí)施計(jì)劃:說明任務(wù)的劃分,各個(gè)任務(wù)的責(zé)任人,項(xiàng)目開發(fā)的進(jìn)度,項(xiàng)目的預(yù)算,各階段的費(fèi)用支出,各階段應(yīng)完成的任務(wù),用圖表說明每項(xiàng)任務(wù)的開始和完成時(shí)間。③人員組織及分工:所需人員類型、數(shù)量、組成結(jié)構(gòu)。④交付期限:最后完工日期。歸納起來,關(guān)鍵問題就是軟件的資源計(jì)劃、成本預(yù)算和進(jìn)度安排。6.2.3軟件的需求分析軟件需求分析工作是軟件生存期中重要的一步,也是決定性的一步。通過軟件需求分析,才能把軟件功能和性能的總體概念描述為具體的軟件需求規(guī)格說明,從而奠定軟件開發(fā)的基礎(chǔ)。軟件需求分析工作也是一個(gè)不斷認(rèn)識(shí)和逐步細(xì)化的過程。整個(gè)過程將軟件計(jì)劃階段所確定的軟件范圍(工作域),逐步細(xì)化到可詳細(xì)定義的程度,并分析出各種不同的軟件元素,然后為這些元素找到可行的解決方法。制定軟件的需求規(guī)格說明不只是軟件開發(fā)人員的事,用戶也起著至關(guān)重要的作用。用戶必須對軟件功能和性能提出初步要求,并澄清一些模糊概念。而軟件分析人員則要認(rèn)真了解用戶的要求,細(xì)致地進(jìn)行調(diào)查分析,把用戶“做什么”的要求最終轉(zhuǎn)換成一個(gè)完全的、精細(xì)的軟件邏輯模型并寫出軟件的需求規(guī)格說明,準(zhǔn)確地表達(dá)用戶的要求。6.3軟件系統(tǒng)設(shè)計(jì)
6.3.1軟件概要設(shè)計(jì)概述
問題定義、可行性研究和需求分析構(gòu)成了軟件計(jì)劃階段,在這個(gè)階段確定了系統(tǒng)的開發(fā)目標(biāo)和系統(tǒng)需求規(guī)格,而軟件開發(fā)階段的任務(wù)是回答系統(tǒng)如何實(shí)現(xiàn)的問題。軟件開發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試等。概要設(shè)計(jì)階段需要編寫的文檔有:概要設(shè)計(jì)說明書,初步的用戶操作手冊。概要設(shè)計(jì)的主要目標(biāo)是把需求轉(zhuǎn)換為軟件的體系結(jié)構(gòu),而軟件體系結(jié)構(gòu)包括兩部分:程序的模塊結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。6.3.2軟件設(shè)計(jì)的基本原則在軟件設(shè)計(jì)中,要遵循一些基本的軟件設(shè)計(jì)概念與原則。這些概念與原則是經(jīng)過多年的實(shí)踐發(fā)展和總結(jié)出來的,它已成為軟件設(shè)計(jì)人員完成復(fù)雜設(shè)計(jì)問題的基礎(chǔ)。1.模塊化與模塊獨(dú)立性模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?。模塊可以被單獨(dú)命名,而且可通過名字來訪問,例如,過程、函數(shù)、子程序、宏等等都可作為模塊。在面向?qū)ο蟮姆椒▽W(xué)中,對象和對象內(nèi)的方法也是模塊。在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換的單元。模塊是構(gòu)成程序的基本構(gòu)件。
模塊獨(dú)立性是軟件系統(tǒng)中每個(gè)模塊只涉及軟件要求的具體子功能。而和軟件系統(tǒng)中其他的模塊接口是簡單的聯(lián)系。例如,如果一個(gè)模塊只具有單一的功能,并且與其他的模塊沒有太多的聯(lián)系,則稱此模塊具有模塊獨(dú)立性。6.3.2軟件設(shè)計(jì)的基本原則2.抽象與細(xì)化抽象是人類在認(rèn)識(shí)復(fù)雜現(xiàn)象的過程中使用的最強(qiáng)有力的思維工具。抽象就是抽取出事物的本質(zhì)特性而暫時(shí)忽略它們的細(xì)節(jié)。由于人類思維能力的限制,如果每次面臨的因素太多,是不可能做出精確思維。處理復(fù)雜系統(tǒng)的惟一有效的方法是用層次的方式構(gòu)造和分析它。因此在進(jìn)行模塊化軟件設(shè)計(jì)時(shí),可以在不同的抽象層次進(jìn)行設(shè)計(jì)。在抽象的最高層次使用問題環(huán)境的語言,以概括的方式敘述問題的解法;在較低抽象層次采用更過程化的方法,把面向問題的術(shù)語和面向?qū)崿F(xiàn)的術(shù)語結(jié)合起來敘述問題的解法;最后在最低的抽象層次用可直接實(shí)現(xiàn)的方式敘述問題的解法。細(xì)化實(shí)際上是一個(gè)詳細(xì)描述的過程。在高層抽象定義時(shí),從功能說明或信息描述開始。也就是說給出功能說明或信息的概念,而不給出功能內(nèi)部的工作細(xì)節(jié)或信息的內(nèi)部結(jié)構(gòu)。
6.3.2軟件設(shè)計(jì)的基本原則3.信息隱藏信息隱藏是指在設(shè)計(jì)和確定模塊時(shí),使一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。也就是說,模塊中所包括的信息不允許其他不需要這些信息的模塊調(diào)用。隱藏意味著有效的模塊化可以通過定義一組獨(dú)立的模塊而實(shí)現(xiàn),這些獨(dú)立的模塊彼此間僅僅交換那些為了完成系統(tǒng)功能而必須交換的信息。隱藏并不是隱藏有關(guān)模塊的一切信息,而是模塊的實(shí)現(xiàn)細(xì)節(jié)。通過抽象,可以確定組成軟件的過程實(shí)體;而通過信急隱藏,則可以定義和實(shí)施對模塊的過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。6.3.2軟件設(shè)計(jì)的基本原則4.可重用現(xiàn)代的軟件開發(fā)越來越重視生產(chǎn)率和質(zhì)量,其中提高軟件的可重用是一個(gè)重要的途徑。所謂重用也叫再用或復(fù)用,是指同一事物不作修改或稍加改動(dòng)就多次重復(fù)使用。軟件復(fù)用的范圍基本上可歸納為數(shù)據(jù)復(fù)用、模塊復(fù)用、結(jié)構(gòu)復(fù)用、設(shè)計(jì)復(fù)用和規(guī)格說明復(fù)用五個(gè)層次。
6.3.3軟件詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)又稱過程設(shè)計(jì),在概要設(shè)計(jì)階段,已經(jīng)確定了系統(tǒng)的總體結(jié)構(gòu),給出系統(tǒng)中各個(gè)組成模塊的功能和模塊間的聯(lián)系,詳細(xì)設(shè)計(jì)就是要在概要設(shè)計(jì)的基礎(chǔ)上,考慮“怎樣實(shí)現(xiàn)”這個(gè)軟件系統(tǒng),直到對系統(tǒng)中的每個(gè)模塊給出足夠詳細(xì)的過程性描述。需要指出,這些描述應(yīng)該用詳細(xì)設(shè)計(jì)的表達(dá)工具來表示,但它們還不是程序,一般不能夠在計(jì)算機(jī)上運(yùn)行。6.3.4軟件詳細(xì)設(shè)計(jì)表示方法在數(shù)據(jù)和程序結(jié)構(gòu)建立以后,就可以進(jìn)入詳細(xì)設(shè)計(jì)。詳細(xì)設(shè)計(jì)中應(yīng)采用合適的方式來描述模塊內(nèi)問題解決過程的細(xì)節(jié),采用結(jié)構(gòu)化的圖形設(shè)計(jì)表示法是人們易于使用、易于理解的方式。常用的圖形設(shè)計(jì)表示法有流程圖、盒圖等。6.4軟件系統(tǒng)實(shí)現(xiàn)
6.4.1程序設(shè)計(jì)語言的特征和選擇1.程序設(shè)計(jì)語言的特征程序設(shè)計(jì)語言有三個(gè)特性,它們是:心理特性、工程特性和技術(shù)特性。
2.程序設(shè)計(jì)語言的選擇總的來說,高級語言明顯優(yōu)于匯編語言。因此,除了在很特殊的應(yīng)用領(lǐng)域,或者大型系統(tǒng)中執(zhí)行時(shí)間非常關(guān)鍵的(或直接依賴于硬件的)一小部分代碼需要用匯編語言書寫之外,其它程序應(yīng)該用高級語言書寫。6.4.2程序設(shè)計(jì)風(fēng)格程序設(shè)計(jì)風(fēng)格就是編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。主導(dǎo)的程序設(shè)計(jì)風(fēng)格:清晰第一、效率第二。形成良好的程序設(shè)計(jì)風(fēng)格,應(yīng)考慮以下因素:源程序的文檔化、數(shù)據(jù)說明方法、語句的結(jié)構(gòu)、輸入和輸出、效率。6.5軟件的測試
軟件測試就是在軟件投入運(yùn)行或發(fā)布前,對軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼進(jìn)行最終復(fù)審的活動(dòng)。軟件測試的目的是為了檢驗(yàn)軟件系統(tǒng)是否滿足需求。從用戶的角度來看,普遍希望通過軟件測試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以軟件測試應(yīng)該是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程”?;蛘哒f,軟件測試應(yīng)該根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。6.5.1軟件測試技術(shù)分類軟件測試的分類方法多種多樣,以下的分類僅供讀者參考。關(guān)鍵是應(yīng)該理解每一種測試的功能、意義及適用范圍,以便在實(shí)際的測試中加以恰當(dāng)?shù)倪x擇。(1)按測試步驟與策略來分:單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試、Alpha測試和Beta測試。(2)按測試技術(shù)來分:白盒測試與黑盒測試。(3)按測試的環(huán)境來分:靜態(tài)分析與動(dòng)態(tài)測試。(4)按測試的功能來分:配置測試、兼容性測試、語言測試、易用性測試、文檔測試、特殊測試等。6.5.2測試用例任何軟件的測試都必須是有計(jì)劃、有組織的,不能是隨意的。軟件測試計(jì)劃就是組織調(diào)控整個(gè)測試過程的指導(dǎo)性文件。在軟件測試計(jì)劃中有一個(gè)重要的組成部分就是測試用例的說明。所謂測試用例是為某個(gè)測試目標(biāo)而編制的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果的方案,以便測試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。6.5.36.5.3調(diào)試1.調(diào)式方法測試本身的目的是盡可能多地暴露程序中的錯(cuò)誤,發(fā)現(xiàn)錯(cuò)誤的最終目的還是為了改正錯(cuò)誤。軟件工程的根本目標(biāo)是以較低的成本開發(fā)出高質(zhì)量的完全符合用戶要求的軟件。因此在成功的測試之后,還必須進(jìn)一步診斷和改正程序中的錯(cuò)誤,這就是調(diào)試的任務(wù)。調(diào)試是軟件開發(fā)過程中最艱巨的腦力勞動(dòng)。常用的一些調(diào)試方法有:輸出存儲(chǔ)器內(nèi)容、適當(dāng)插入打印語句、使用專門的調(diào)試工具6.5.3調(diào)試2.調(diào)試策略調(diào)試過程的關(guān)鍵不是調(diào)試技術(shù),而是用來推斷錯(cuò)誤原因的基本策略。通常調(diào)試策略有四種。(1)試探法調(diào)試人員分析錯(cuò)誤征兆,猜測故障的大致位置,然后使用前述的某種調(diào)試技術(shù),獲取程序中被懷疑的地方附近的信息,這種策略效率極低。(2)回溯法調(diào)試人員檢查錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的地方,然后人工按照程序的控制流往回追蹤程序代碼,直到找出錯(cuò)誤的根源或確定故障范圍為止。也可以正向追蹤,使用輸出語句檢查一系列中間結(jié)果,確定最先出現(xiàn)錯(cuò)誤的地方?;厮莘▽π〕绦蚨允且环N比較好的調(diào)試策略,往往可把故障范圍縮小,但隨著程序規(guī)模的擴(kuò)大,應(yīng)用回溯的路徑數(shù)目也變得越來越多,徹底回溯將是不可能的了。(3)歸納法歸納法是一種系統(tǒng)化的思考方法,從個(gè)別到一般,從錯(cuò)誤征兆出發(fā),通過分析這些線索之間的關(guān)系找出故障。這種方法的主要步驟如下。
(4)演繹法從一般原理或前提出發(fā),經(jīng)過刪除和精化推導(dǎo)結(jié)論。開始先列出所有看來可能成立的原因和假設(shè),然后一個(gè)一個(gè)地排除列舉出的原因,最后剩下的原因是錯(cuò)誤的根源。6.6軟件維護(hù)
6.6.1
軟件維護(hù)的定義和特點(diǎn)任何軟件在交付使用之后,由于本身潛在的錯(cuò)誤或者滿足新的需求,都需要對軟件進(jìn)行維護(hù)。1.軟件維護(hù)的定義國標(biāo)GB/T11457-89對軟件維護(hù)給出了如下兩個(gè)定義:(1)在軟件產(chǎn)品交付使用后對其進(jìn)行修改,以糾正故障。(2)在軟件產(chǎn)品交付使用后對其進(jìn)行修改,以糾正故障,改進(jìn)其性能和其他屬性,以使產(chǎn)品適應(yīng)改變了的環(huán)境。
2.軟件維護(hù)的特點(diǎn)我們把為了改正軟件系統(tǒng)中的錯(cuò)誤,使軟件能夠滿足預(yù)期的正常運(yùn)行狀態(tài)的要求而進(jìn)行的維護(hù)叫做改正型維護(hù),隨著計(jì)算機(jī)科學(xué)技術(shù)領(lǐng)域的各個(gè)方面都在迅速的進(jìn)步,特別是80年代之后,大約每過36個(gè)月就有新一代的硬件宣告出現(xiàn),經(jīng)常推出新的操作,軟件驅(qū)動(dòng)的外圍設(shè)備的增加或者發(fā)生變更時(shí)所做的軟件維護(hù),我們稱適應(yīng)型維護(hù)。當(dāng)一個(gè)軟件順利地進(jìn)行時(shí),常常會(huì)出現(xiàn)第三項(xiàng)維護(hù)的活動(dòng):在維護(hù)的使用過程中用戶往往會(huì)提出增加新功能或修改已有功能的建議,還有可能提出一些改進(jìn)的意見,為了滿足這類要求,需要進(jìn)行完善型的維護(hù),據(jù)統(tǒng)計(jì),這類維護(hù)活動(dòng)通常占軟件維護(hù)的一半左右。為了改進(jìn)軟件執(zhí)行效率,提高可靠性和可維護(hù)性而進(jìn)行的維護(hù),是第四項(xiàng)維護(hù)的內(nèi)容,第四項(xiàng)維護(hù)的活動(dòng)在我們現(xiàn)代的軟件業(yè)中是很少的6.6.2軟件維護(hù)的實(shí)施首先的工作是要建立一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西昌學(xué)院《基礎(chǔ)景觀設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 6 校園里的號(hào)令(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治五年級上冊
- 無牙頜種植課件
- 中國福利彩票即開型彩票
- 勘察設(shè)計(jì)掛靠合同范例
- 會(huì)所轉(zhuǎn)包合同范例
- 土地回收合同范例
- 增補(bǔ)工資補(bǔ)充合同范例
- 承包廢棄大坑合同范例
- 廣州公寓出租合同范例
- 防沙治沙合同范本
- 2024-2030年中國發(fā)芽米行業(yè)發(fā)展現(xiàn)狀及投資規(guī)模分析報(bào)告
- (一模)寧波市2024學(xué)年第一學(xué)期高考模擬考試 歷史試卷(含答案)
- 山東省棗莊市滕州市2024-2025學(xué)年九年級上學(xué)期11月期中物理試題(無答案)
- 2024年人教版八年級歷史上冊期末考試卷(附答案)
- 天津市河?xùn)|區(qū)2024-2025學(xué)年七年級上學(xué)期期中數(shù)學(xué)試卷(含答案)
- 2024新版(粵教滬教版)三年級英語上冊單詞帶音標(biāo)
- 拆違服務(wù)合同模板
- 2025屆高三聽力技巧指導(dǎo)-預(yù)讀、預(yù)測
- GB/T 31486-2024電動(dòng)汽車用動(dòng)力蓄電池電性能要求及試驗(yàn)方法
- 歷屆“挑戰(zhàn)杯”全國大學(xué)生課外科技學(xué)術(shù)作品競賽獲獎(jiǎng)作品
評論
0/150
提交評論