版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件的特點,軟件是一種邏輯實體,具有抽象性。 軟件的生產(chǎn)與硬件的制造不同。 不會磨損和“老化” 軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式。 軟件的開發(fā)和運行必須依附于特定的計算機系統(tǒng)環(huán)境,軟件危機,兩個方面的問題 如何開發(fā) 如何維護,高成本、低質量的軟件不能適應日益增長的軟件需求,從而引發(fā)的尖銳的矛盾即軟件危機。,表現(xiàn): 軟件的規(guī)模大、復雜 軟件的需求量增大 價格昂貴 軟件文檔不完備 開發(fā)速度慢 質量難以保證 軟件產(chǎn)品修改維護困難,原因: 忽視需求分析 開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的指導 文檔資料不齊全或不準確 忽視交流 忽視測試的重要性。 不重視維護 專業(yè)人員認識不充分,缺乏經(jīng)驗。 沒有完善
2、的質量保證體系。,啟示,軟件危機的幾個解決途徑,重視需求分析,明確與確切表達需求, 重視與客戶溝通與交流 統(tǒng)一的、公認的方法論和規(guī)范指導,重視設計和實現(xiàn)過程的資料 充分的檢測工作,軟件工程目標和原則,軟件工程要達到的基本目標包括: 達到要求的軟件功能; 取得較好的軟件性能; 開發(fā)出高質量的軟件; 付出較低的開發(fā)成本; 需要較低的維護費用; 能按時完成開發(fā)工作,及時交付使用。,軟件工程目標和原則,為了達到上述目標,軟件工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循一些基本原則。軟件工程的七條基本原則: 用分階段的生存周期計劃進行嚴格的管理 堅持進行階段評審 實行嚴格的產(chǎn)品控制 采用現(xiàn)代程
3、序設計技術 軟件工程結果應能清楚地審查 開發(fā)小組的人員應該少而精 承認不斷改進軟件工程實踐的必要性,軟件生命周期,細分為六個階段: 可行性研究 需求分析 軟件設計(總體設計和詳細設計) 編碼 軟件測試 軟件維護,傳統(tǒng)軟件生存周期的各個階段,把軟件生命周期中各項開發(fā)活動的流程用開發(fā)模型來規(guī)范描述,這就是軟件過程模型(軟件生命周期模型),軟件生存周期模型,常見的軟件生存周期模型包括: 瀑布模型 原型模型 增量模型 演化模型 螺旋模型 面向對象過程模型(噴泉模型) 統(tǒng)一過程模型 敏捷過程模型,瀑布模型,瀑布模型提供了軟件開發(fā)的基本框架。 瀑布模型將軟件生命周期劃分為軟件計劃、需求分析和定義、軟件設計
4、、軟件實現(xiàn)、軟件測試、軟件維護. 它是一個軟件開發(fā)架構,開發(fā)過程是通過一系列階段順序展開的。 每個階段都會產(chǎn)生循環(huán)反饋 各個階段產(chǎn)生的文檔是維護軟件產(chǎn)品時必不可少的,沒有文檔的軟件幾乎是不可能維護的。,增量模型,增量模型(incremental model),是在項目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。 軟件被作為一系列的增量構件來設計、實現(xiàn)、集成和測試,每一個構件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構成. 增量方式包括: 增量開發(fā):以一定的時間間隔開發(fā)部分工作軟件 增量提交:以一定的時間間隔增量方式向用戶提交工作軟件及相應文檔,演化提交模型,它在瀑布模型的基礎上,所有階段
5、都進行增量開發(fā),也就是說不僅是增量開發(fā),也是增量提交。,原型模型,建造/修改 原型,用戶測試 運行原型,聽取用 戶意見,開始一個原型,完成部分主要功能,螺旋模型活動,四個象限分別代表了以下活動: 制定計劃:確定軟件目標,選定實施方案,確定項目開發(fā)的限制條件; 風險分析:分析評估所選方案,考慮如何識別和消除風險; 實施工程:實施軟件開發(fā)和驗證; 客戶評估:評價開發(fā)工作,提出修正建議,制定下一步計劃。 螺旋模型是風險驅動的模型,面向對象過程模型,面向對象是一種的程序設計方法,或者說它是一種程序設計方法。 基本思想是使用對象,類,繼承,封裝,消息等基本概念來進行程序設計。 面向對象的要素: 抽象:強
6、調實體的本質、內在的屬性,忽略一些無關緊要的屬性。類實現(xiàn)了對象的數(shù)據(jù)(即狀態(tài))和行為的抽象,是對象的共性的抽象。 封裝性:指所有軟件部件內部都有明確的范圍以及清楚的外部邊界。 共享性:同一個類,同一個應用等共享. 面向對象的特征:對象惟一性;分類性;繼承性;多態(tài)性(多形性)。,例如:噴泉模型,進一步開發(fā),實現(xiàn)和集成階段,運行狀態(tài),實現(xiàn)階段,面向對象設計階段,計劃階段,面向對象分析階段,需求階段,維護期,統(tǒng)一過程模型,統(tǒng)一過程(unified process,up) 是以用例驅動的,以架構為中心,迭代和增量的過程。,統(tǒng)一過程五個核心工作流(了解),需求(requirements capture)
7、:致力于開發(fā)正確的系統(tǒng) 分析(analysis):更精確地理解需求 設計(design):深入理解與非功能性需求和約束相聯(lián)系的問題 實現(xiàn)(implementation):實現(xiàn)系統(tǒng)與集成 測試(test):驗證實現(xiàn)的結構,敏捷模型(過程),敏捷不是一個過程,是一類過程的統(tǒng)稱。 敏捷方法的兩大主要特征: 對“適應性”的強調 對“人”的關注 做法: 引入迭代式的開發(fā)手段 將整個軟件生命周期分解為若干個小的迭代周期 獲取切實有效的客戶反饋 提出12條基本原則,敏捷模型,敏捷過程模型中比較有代表性的是xp模型(extreme programming)。它由一系列與開發(fā)相關的規(guī)則、規(guī)范和慣例組成。其規(guī)則和
8、文檔較少,流程靈活,易于小型開發(fā)團隊使用。xp認為軟件開發(fā)有效的活動是:需求、設計、編碼和測試,并且在一個極限的環(huán)境下使它們發(fā)揮到極致,做到最好。xp偏重于軟件過程的描述,表現(xiàn)為激進的迭代,組織模型和建模方法比較薄弱。 生存周期模型的選擇要結合具體的項目特色,并在項目實施過程中予以改進。,軟件開發(fā)方法,軟件開發(fā)方法是一種使用定義好的技術集及符號表示組織軟件生產(chǎn)的過程,它的目標是在規(guī)定的時間和成本內,開發(fā)出符合用戶需求的高質量的軟件。因此,針對不同的軟件開發(fā)項目和對應的軟件過程,應該選擇合適的軟件開發(fā)方法。 常見的軟件開發(fā)方法包括: 結構化方法 面向數(shù)據(jù)結構方法 面向對象方法 形式化方法,軟件工
9、程兩大方法,傳統(tǒng)的結構化方法 特征:結構化技術要么面向行為,要么面向數(shù)據(jù) 構成結構化方法的技術包括: 結構化分析、設計、編程、測試、維護 面向對象方法 特征:將對象視作一個融合了數(shù)據(jù)及在其上操作的行為的、統(tǒng)一的軟件組件。 技術包括: 面向對象分析、面設計、編程、測試、維護 優(yōu)勢: 對象的概念符合業(yè)務或領域的客觀實際 維護容易,結構化需求分析方法,一種考慮數(shù)據(jù)和處理的需求分析方法被稱作結構化分析方法(structured analysis,簡稱sa 法),是70年代由yourdon constaintine 及demarco 等人提出和發(fā)展,并得到廣泛的應用。 它基于“分解”和“抽象”的基本思想
10、,逐步建立目標系統(tǒng)的邏輯模型,進而描繪出滿足用戶要求的軟件系統(tǒng)。,結構化分析模型結構,分析模型結構的核心是數(shù)據(jù)字典(dd,data dictionary),包含了軟件使用或生產(chǎn)的所有數(shù)據(jù)對象描述的中心庫。 分析模型結構的中間層有三種視圖: 數(shù)據(jù)流圖(dfd) 實體關系圖(e-rd) 狀態(tài)轉換圖(std) 分析模型結構的外層是規(guī)約描述: 在實體關系圖中每個數(shù)據(jù)對象的屬性可以使用數(shù)據(jù)對象來描述。 在數(shù)據(jù)流圖中出現(xiàn)的每個加工/處理的功能描述包含在加工規(guī)約中。 軟件控制方面的附加信息包含在控制規(guī)約中,功能建模,面向數(shù)據(jù)流的建模是結構化需求分析方法之一 采用自頂向下逐層分解,描繪滿足用戶要求的軟件模型
11、表示: 數(shù)據(jù)流圖:描述系統(tǒng)處理過程 數(shù)據(jù)字典:模型中的數(shù)據(jù)信息集合 加工規(guī)約,數(shù)據(jù)字典,數(shù)據(jù)字典是分析模型中出現(xiàn)的所有名字的一個集合,并包括有關命名實體的描述 數(shù)據(jù)字典有以下兩個作用: 它是所有名字信息管理的有效機制 作為連接軟件分析、設計、實現(xiàn)和進化階段的開發(fā)機構的信息存儲 數(shù)據(jù)字典主要由四類元素的定義組成: 數(shù)據(jù)流 數(shù)據(jù)項 數(shù)據(jù)存儲 處理(加工),(1)pdl,過程描述語言(pdl)是一種介于自然語言和形式化語言之間的語言 其基本控制結構有三種: 簡單陳述句結構:避免復合語句; 重復結構:while_do 或 repeat_until 結構。 判定結構:if_then_else 或 cas
12、e_of 結構; 過程描述語言的詞匯表由 英語命令動詞 數(shù)據(jù)詞典中定義的名字 有限的自定義詞 邏輯關系詞 if_then_else、 case_of 、 while_do、 repeat_until等組成。,項目立項概述,項目發(fā)起 項目論證 項目審核 項目立項,項目論證過程,也就是可行性研究過程??尚行匝芯烤褪侵冈陧椖窟M行開發(fā)之前,根據(jù)項目發(fā)起文件和實際情況,對該項目是否能在特定的資源、時間等制約條件下完成做出評估,并且確定它是否值得去開發(fā)。可行性研究的目的不在于如何去解決問題,而在于確定問題是否值得去解決,是否能夠解決。,可行性研究的結論有三種情況: 1、可行,按計劃進行。 2、基本可行,需
13、要對解決方案做出修改。 3、不可行,終止項目。,27,軟件設計概述,軟件設計階段的基本目標是構造系統(tǒng)“怎么做”的模型描述。 “設計先于編碼”,這是軟件工程“推遲實現(xiàn)”基本原則 軟件系統(tǒng)設計是把軟件需求“變換”為用于構造軟件的藍圖。 “輸入”是需求分析各種模型元素 “輸出”是軟件設計模型和表示 軟件設計的目標是對將要實現(xiàn)的軟件系統(tǒng)的體系結構、系統(tǒng)的數(shù)據(jù)、系統(tǒng)模塊間的接口,以及所采用的算法給出詳盡的描述。,28,軟件設計兩大類活動,概要設計(總體設計):將軟件需求轉化為數(shù)據(jù)結構和軟件的系統(tǒng)結構。 分析需求規(guī)格說明 模塊劃分,形成具有預定功能的模塊組成結構 表示出模塊間的控制關系 給出模塊之間的接口
14、 詳細設計:即過程設計。通過對結構表示進行細化,得到軟件的詳細的數(shù)據(jù)結構和算法。 設計模塊細節(jié) 確定模塊所需的算法和數(shù)據(jù)結構等,29,軟件的模塊化設計,把一個大型軟件系統(tǒng)的全部功能,按照一定的原則合理地劃分為若干個模塊,每個模塊完成一個特定子功能,所有的這些模塊以某種結構形式組成一個整體,這就是軟件的模塊化設計(modular design)。 分解、抽象、逐步求精、信息隱蔽和模塊獨立性,是軟件模塊化設計的指導思想。,30,模塊的獨立性,模塊(module) “模塊”,又稱“組件”。是一個獨立命名的,擁有明確定義的輸入、輸出和特性的程序實體。 它一般具有如下三個基本屬性: 功能:描述該模塊實現(xiàn)
15、什么功能 邏輯:描述模塊內部怎么做 狀態(tài):該模塊使用時的環(huán)境和條件,即模塊的調用與被調用關系,31,在描述一個模塊時,還必須按模塊的外部特性與內部特性分別描述 模塊的外部特性 模塊的模塊名、參數(shù)表、其中的輸入?yún)?shù)和輸出參數(shù),以及給程序以至整個系統(tǒng)造成的影響 模塊的內部特性 完成其功能的程序代碼和僅供該模塊內部使用的數(shù)據(jù),外部特性是概要設計的任務,內部特性是詳細設計的任務,32,模塊獨立性:是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能, 而和軟件系統(tǒng)中其它的模塊的接口是簡單的。 例如, 若一個模塊只具有單一的功能且與其它模塊沒有太多的聯(lián)系, 則稱此模塊具有模塊獨立性 一般采用兩個準則度量模
16、塊獨立性。即模塊間耦合性和模塊的內聚性,模塊獨立性,33,耦合是模塊之間的互相連接的緊密程度的度量。 內聚是模塊功能強度(一個模塊內部各個元素彼此結合的緊密程度)的度量。 模塊獨立性比較強的模塊應是高內聚低耦合的模塊。 耦合性分類,34,c,模塊內聚,內聚性也稱塊內聯(lián)系,指模塊的功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。若一個模塊內各元素(語句之間、程序段之間)聯(lián)系的越緊密,則它的內聚性就越高。 內聚性分類:,編碼風格,編碼風格指一個人編制程序時所表現(xiàn)出來的特點、習慣、邏輯思路等。 良好的編碼風格可以減少編碼的錯誤,減少讀程序的時間,從而提高軟件的開發(fā)效率。 良好的編碼風
17、格(編碼的基本原則)體現(xiàn)在源程序文檔化、數(shù)據(jù)說明、語句構造、輸入和輸出及對效率的追求等幾個方面。,源程序文檔化,符號的命名:符號名即標識符,包括模塊名、變量名、常量名、標號名、子程序名、數(shù)據(jù)區(qū)名以及緩沖區(qū)名等。 程序注釋:夾在程序中的注釋是程序員與日后的程序讀者之間通信的重要手段。分為序言性注釋和功能性注釋 程序的視覺組織:恰當?shù)乩每崭?,可以突出運算的優(yōu)先性,避免發(fā)生運算的錯誤。,數(shù)據(jù)說明,在設計階段已經(jīng)確定了數(shù)據(jù)結構的組織及其復雜性。在編寫程序時,則需要注意數(shù)據(jù)說明的風格。 為了使程序中數(shù)據(jù)說明更易于理解和維護,必須注意以下幾點。 1.數(shù)據(jù)說明的次序應當規(guī)范化 2.說明語句中變量安排有序化
18、 3.使用注釋說明復雜數(shù)據(jù)結構,語句結構,在設計階段確定了軟件的邏輯流結構,但構造單個語句則是編碼階段的任務。語句構造力求簡單,直接,不能為了片面追求效率而使語句復雜化。,輸入和輸出,輸入和輸出信息是與用戶的使用直接相關的。輸入和輸出的方式和格式應當盡可能方便用戶的使用。一定要避免因設計不當給用戶帶來的麻煩。 因此,在軟件需求分析階段和設計階段,就應基本確定輸入和輸出的風格。系統(tǒng)能否被用戶接受,有時就取決于輸入和輸出的風格。,效率,程序效率的是指程序的執(zhí)行速度及程序所需占用的內存的存儲空間。程序編碼是最后提高運行速度和節(jié)省存儲的機會,因此在此階段不能不考慮程序的效率。 效率是一個性能指標 要先
19、使程序正確、清晰,再提高效率(主要靠良好的數(shù)據(jù)結構和算法,而不是靠語句去調整),返回,軟件維護概述,軟件維護主要工作就是在軟件運行和維護階段對軟件產(chǎn)品進行必要的調整和修改,軟件可維護性,軟件的可維護性是衡量軟件(產(chǎn)品)維護容易程度的一種軟件質量屬性 軟件可維護性定義為軟件的可理解、可測試、可修改性的難易程度 特性: 可理解性 可測試性 可修改性,3.軟件的可維護性,可靠性 可移植性 可使用性 效率,43,五種測試:,單元測試:測試軟件中的基本組成單位 采用白盒測試方法,盡可能發(fā)現(xiàn)模塊內部的程序差錯 工作量較大 單元測試越早越好 集成測試:是把多模塊按照一定的集成方法和策略,逐步組裝成子系統(tǒng),進
20、而組裝成整個系統(tǒng)的測試 多模塊集成方式一般都采用漸增式,有自頂向下、自底向上和混合式(“三明治”)三種 確認測試:確認已組裝的程序是否滿足軟件需求規(guī)格說明書 系統(tǒng)測試:把軟件納入實際運行環(huán)境中,與其他系統(tǒng)成分組合在一起進行測試。 驗收測試:保證所實現(xiàn)的系統(tǒng)確實是用戶所想要的,分為和測試。,44,黑盒測試、白盒測試,黑盒測試: 只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。 黑盒測試又叫做功能測試或數(shù)據(jù)驅動測試。 白盒測試: 設計或選擇測試用例,對程序所有邏輯路徑進行測試。 因此白盒測試又稱為結構測試或邏輯驅動測試。,黑盒測試有多種技術,比如等價類技術、邊界值技術、錯誤推斷法、因果圖法、判定表法等。,白盒測試也
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣西玉林北流市新豐鎮(zhèn)衛(wèi)生院招聘編外人員2人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年廣東廣州市胸科醫(yī)院第三次招聘編外合同制人員6人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年南平市第一醫(yī)院招聘合同制工作人員1人(四)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年中南大學湘雅三醫(yī)院國家婦產(chǎn)區(qū)域醫(yī)療中心(建設)生殖醫(yī)學中心胚胎實驗室技術員招聘1人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年2026湖北十堰市人民醫(yī)院人才招聘筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年2026天津中醫(yī)藥大學第一附屬醫(yī)院第二批人事代理制招聘103人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年中國人民財產(chǎn)保險股份有限公司臨潭支公司招聘10人筆試參考題庫附帶答案詳解
- 鄉(xiāng)鎮(zhèn)上動物衛(wèi)生監(jiān)督制度
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院藥房作息制度
- 直播公司運營部規(guī)章制度
- 安全目標管理制度煤廠(3篇)
- 云南省玉溪市2025-2026學年八年級上學期1月期末物理試題(原卷版+解析版)
- 車輛駕駛員崗前培訓制度
- 2026年哈爾濱通河縣第一批公益性崗位招聘62人考試參考試題及答案解析
- 就業(yè)協(xié)議書解約函模板
- 頭部護理與頭皮健康維護
- 2026年山東城市服務職業(yè)學院單招職業(yè)技能考試題庫附答案詳解
- 創(chuàng)面換藥清潔課件
- 研發(fā)部門員工加班管理細則
- 鋼結構橋梁施工監(jiān)測方案
- 字節(jié)跳動+Agent+實踐手冊
評論
0/150
提交評論