




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、講授的內(nèi)容Contents,第1章 軟件與軟件工程Chapter 1 Introduction,本章要講的主要內(nèi)容是: 軟件(Software) 軟件危機(jī)(Software Crisis) 軟件工程(Software Engineering) 軟件工程與計(jì)算機(jī)科學(xué)的關(guān)系 (Relationship between SE and CS,1.1 軟件Software,軟件的概念與特征 軟件的發(fā)展歷程 軟件的分類 軟件開發(fā)的案例分析,軟件的概念與特征,軟件的定義 軟件是程序和所有使程序正確運(yùn)行所需要的相關(guān)文檔和配置信息。 Software = Program + Data + Document,軟件
2、的特征 軟件是無(wú)形的 (intangible) 軟件副本制作簡(jiǎn)單 軟件無(wú)磨損,軟件的發(fā)展歷程,軟件的分類,基于不同工程對(duì)象劃分 基于軟件規(guī)模的劃分,基于不同工程對(duì)象劃分,通用軟件產(chǎn)品 Generic -由軟件開發(fā)機(jī)構(gòu)制作,市場(chǎng)上公開銷售,獨(dú)立使用。 ( developed to be sold to a range of different customers) 數(shù)據(jù)庫(kù)軟件、字處理軟件、繪圖軟件、工程管理工具。 定制軟件產(chǎn)品Bespoke (custom) - 受特定客戶委托,由軟件承包商專門制作。 (developed for a single customer according to t
3、heir specification,基于軟件規(guī)模的劃分,微小型軟件-一般都在2000行以內(nèi)的程序長(zhǎng)度。在開發(fā)過程中,不講究開發(fā)方法和開發(fā)實(shí)施的步驟,沒有相應(yīng)的軟件編寫文檔。 中型軟件-通常程序長(zhǎng)度在500010000行之間,一般需要510人、持續(xù)一至兩年時(shí)間開發(fā),以團(tuán)隊(duì)方式采用統(tǒng)一的標(biāo)準(zhǔn)開發(fā)模式。 大型軟件-采用軟件工程指導(dǎo)下的軟件開發(fā)方法和遵循相應(yīng)的開發(fā)規(guī)范,建立軟件開發(fā)過程的文檔,由上百、千人參加形成的龐大開發(fā)團(tuán)隊(duì),不同領(lǐng)域的人員相互溝通合作,軟件開發(fā)的案例分析,系統(tǒng)軟件-是一組為其他程序服務(wù)的程序。 實(shí)時(shí)軟件-管理、分析、控制現(xiàn)實(shí)世界中發(fā)生的事件的程序。 商業(yè)軟件-商業(yè)信息處理是最大的
4、軟件應(yīng)用領(lǐng)域。 工程和科學(xué)計(jì)算軟件-這類軟件的特點(diǎn)是一般具有數(shù)值計(jì)算。 嵌入式軟件-智能產(chǎn)品應(yīng)用于所有的領(lǐng)域,嵌入式軟件作用于這些智能產(chǎn)品,執(zhí)行有限但專一的功能。 個(gè)人計(jì)算機(jī)軟件-用于個(gè)人的文字、圖片、財(cái)務(wù)、娛樂等等方面的軟件系統(tǒng)。 人工智能軟件-人工智能(AI)軟件利用非數(shù)值計(jì)算解決復(fù)雜問題,請(qǐng)給出相應(yīng)的實(shí)例,軟件的未來(lái)與工業(yè)化,作坊式生產(chǎn) 軟件工業(yè)化 CMMI認(rèn)證,1.2 軟件工程,軟件工程的概念 軟件工程的范疇 軟件工程的開發(fā)原則 軟件工程面臨的挑戰(zhàn) 軟件工程師的未來(lái),問題分解的特征,軟件開發(fā)過程中存在的問題,1) 軟件需求急劇增長(zhǎng); (2) 軟件開發(fā)成本和進(jìn)度估計(jì) 不準(zhǔn)確; (3) 軟
5、件產(chǎn)品不滿足用戶需 求; (4) 軟件難以維護(hù); (5) 軟件價(jià)格昂貴,軟件工程的概念,中心思想: 把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求采用工程化的原理與方法對(duì)軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)。 目的: 實(shí)現(xiàn)按預(yù)期的進(jìn)度和經(jīng)費(fèi)完成軟件生產(chǎn)計(jì)劃,提高軟件的生產(chǎn)率和可靠性,軟件工程框架,軟件工程的范疇,軟件工程開發(fā)的原則,分解 信息隱蔽 模塊化 標(biāo)準(zhǔn)化,軟件工程面臨的挑戰(zhàn),遺留系統(tǒng) 交付上的挑戰(zhàn) 多樣性的挑戰(zhàn),軟件工程師的未來(lái),軟件工程人員應(yīng)當(dāng)遵守以下八條準(zhǔn)則: (1)公眾感(PUBLIC):軟件工程師始終與公眾利益保持一致。 (2)客戶和雇主(CLIENT AND EMPLOYER):滿足客戶和雇主的最大利益。
6、 (3)產(chǎn)品(PRODUCT ):保證產(chǎn)品達(dá)到盡可能高的行業(yè)標(biāo)準(zhǔn)。 (4)判斷力(JUDGEMENT):具有公正和獨(dú)立的職業(yè)判斷力。 (5)管理(MANAGEMENT):提倡合乎道德的軟件開發(fā)和維護(hù)的管理辦法。 (6)職業(yè)感(PROFESSION):弘揚(yáng)職業(yè)正義感和容易感,尊重社會(huì)公正利益。 (7)同事(COLLEAGUES):公平對(duì)待和協(xié)助每一位同事。 (8)自己(SELF):畢生學(xué)習(xí)專業(yè)知識(shí),合乎職業(yè)道德的職業(yè)活動(dòng)方式,1.3 軟件過程模型,軟件生存周期 軟件開發(fā)模型 瀑布模型 進(jìn)化式模型 演化模型 形式化開發(fā),軟件生存周期,軟件生存周期的概念: 一個(gè)軟件從計(jì)劃起,到廢棄不用止。 軟件生存
7、周期包括:計(jì)劃、開發(fā)、運(yùn)行,軟件開發(fā)模型概念,軟件開發(fā)模型的概念: 為整個(gè)軟件生存期建立的模型,軟件開發(fā)模型分類: 瀑布模型 進(jìn)化式開發(fā)模型 演化模型 形式化開發(fā)模型,軟件開發(fā)模型,1 瀑布模型 The waterfall model,瀑布模型的優(yōu)點(diǎn),階段間的順序性 和依賴性 推遲實(shí)現(xiàn)的觀點(diǎn) 質(zhì)量保證的觀點(diǎn),瀑布模型的問題Waterfall model problems,將項(xiàng)目生硬地分解成確切的階段。 Inflexible partitioning of the project into distinct stages 對(duì)用戶需求變更的相應(yīng)困難。 This makes it difficult
8、 to respond to changing customer requirements 需求了解的好的時(shí)候,采用瀑布模型。 This model is only appropriate when the requirements are well-understood,2快速原型開發(fā)模型Prototype Model,基本思想: 先開發(fā)出一個(gè)原型系統(tǒng)給用戶使用,通過用戶反饋意見來(lái)不斷修改系統(tǒng)直到最后成熟。 讓描述、開發(fā)、有效性驗(yàn)證活動(dòng)并行執(zhí)行,原型模型,原型模型的優(yōu)點(diǎn),原型化模型突出一個(gè)“快”字。軟件開發(fā)人員向用戶提供一個(gè)“樣品”,用戶向開發(fā)人員迅速作出“反饋,建立原型系統(tǒng)的方法,原型系統(tǒng)
9、僅包括未來(lái)系統(tǒng)的主要功能,以及系統(tǒng)重要的接口。 開發(fā)原型系統(tǒng)盡可能使用能縮短開發(fā)周期的語(yǔ)言和工具,3演化模型-增量模型Evolutionary Model,增量模型的基本思想,每個(gè)增量提供系統(tǒng)功能的一個(gè)子集,一個(gè)增量完成并交付,部分系統(tǒng)功能可以提前交付使用。 對(duì)增量中服務(wù)的分配取決于服務(wù)優(yōu)先次序。最高優(yōu)先權(quán)的服務(wù)首先被交付。 第一個(gè)增量往往是核心的產(chǎn)品。 開發(fā)者能通過對(duì)系統(tǒng)的經(jīng)驗(yàn)幫助理解后面的增量需求和目前增量后續(xù)版本的需求變更,Incremental development advantages增量式開發(fā)過程的優(yōu)點(diǎn),客戶無(wú)需等到整個(gè)系統(tǒng)的實(shí)現(xiàn)。 客戶可以將早期的增量作為原型,從中獲得對(duì)后面系
10、統(tǒng)增量的需求經(jīng)驗(yàn)。 項(xiàng)目總體性失敗的風(fēng)險(xiǎn)比較低。 最高優(yōu)先權(quán)的服務(wù)接受最多的測(cè)試,Example,使用增量式開發(fā)的字處理軟件 在第一個(gè)增量中發(fā)布基本的文件管理、編輯和文檔生成功能; 在第二個(gè)增量中發(fā)布更加完善的編輯和文檔生成能力; 第三個(gè)增量中實(shí)現(xiàn)拼寫和文法檢查功能; 第四個(gè)增量完成高級(jí)的頁(yè)面布局功能,4演化模型-螺旋模型Evolutionary Model,螺旋模型的基本思想,每一個(gè)螺旋周期(Spiral model sectors)包含四個(gè)部分: (1)確定目標(biāo),選擇方案,設(shè)定約束條件,選定完成本周期所定目標(biāo)的策略。 (2)分析該策略可能存在的風(fēng)險(xiǎn)。 (3)在排除風(fēng)險(xiǎn)后,實(shí)現(xiàn)本螺旋周期的目
11、標(biāo)。 (4)評(píng)價(jià)前一步的結(jié)果,并且計(jì)劃下一輪的工作,螺旋模型的特點(diǎn),每一階段考慮技術(shù)風(fēng)險(xiǎn)。 依賴于風(fēng)險(xiǎn)評(píng)估,5形式化方法模型,轉(zhuǎn)換模型(Transformational Model)-是結(jié)合形式化軟件開發(fā)方法和程序自動(dòng)生成技術(shù)的一種軟件開發(fā)模型,轉(zhuǎn)換模型,凈室模型Cleanroom Model,是一種形式化的增量開發(fā)模型。 基本思想: 力求在分析階段就消除錯(cuò)誤,確保正確,然后在無(wú)缺陷或“潔凈”的狀態(tài)下實(shí)現(xiàn)軟件的制作。 “盒”(Box)-每一增量是一個(gè)形式化方式表示,凈室模型,6基于組件的開發(fā)過程,Advantages 優(yōu)勢(shì),減少需要開發(fā)的軟件數(shù)量 降低軟件開發(fā)成本 降低風(fēng)險(xiǎn) 軟件快速交付,小結(jié)
12、,軟件 軟件工程 軟件過程模型,小結(jié),瀑布模型 原型模型 增量模型 螺旋模型 形式化開發(fā)模型 組件開發(fā)模型,新的開發(fā)模型 RUP統(tǒng)一開發(fā)過程 敏捷開發(fā) 極限編程 RAD快速的應(yīng)用開發(fā) 設(shè)計(jì)模式,思考題1,調(diào)查目前軟件公司對(duì)軟件開發(fā)過程中存在的主要問題。 現(xiàn)代軟件的分類。 都知道哪些軟件開發(fā)的方法? 軟件工程有意義嗎? 以上問題請(qǐng)于本周調(diào)查,下次課提問,思考題2,為以下各系統(tǒng)提出合適的軟件過程模型,闡述理由: (1) 汽車防鎖死剎車控制系統(tǒng) (2)一個(gè)支持軟件維護(hù)的虛擬現(xiàn)實(shí)系統(tǒng) (3)大學(xué)記賬系統(tǒng),準(zhǔn)備替換一個(gè)已存在的系統(tǒng) (4)一個(gè)位于火車站的交互式火車車次查詢系統(tǒng),第2章 軟件需求分析Req
13、uirements Analysis,需求分析的任務(wù)和分類; 需求獲取的相關(guān)技術(shù); 軟件需求分析的描述模型; 需求分析的方法; 軟件需求分析文檔; 軟件的案例需求分析,項(xiàng)目相關(guān)人員,涉及對(duì)項(xiàng)目有利益關(guān)系的人員,包括: (1)發(fā)現(xiàn)系統(tǒng)的潛在最終用戶; (2)考慮系統(tǒng)打算支持的業(yè)務(wù)過程描述以及與這些過程相關(guān)的人員; (3)可能會(huì)受到系統(tǒng)引入的影響的人員; (4)使用系統(tǒng)的客戶; (5)開發(fā)和維護(hù)系統(tǒng)的工程師和維護(hù)人員; (6)可能給系統(tǒng)添加需求的監(jiān)管機(jī)構(gòu)和認(rèn)證機(jī)構(gòu)等。因此,項(xiàng)目相關(guān)人員可能是系統(tǒng)最終用戶和機(jī)構(gòu)管理人員、工程人員、業(yè)務(wù)專家、工會(huì)代表等等,Autoteller銀行自動(dòng)柜員機(jī)系統(tǒng)(ATM
14、)的項(xiàng)目相關(guān)人員,當(dāng)前銀行客戶 其他銀行代表 硬件和軟件維護(hù)工程師 市場(chǎng)開發(fā)部 銀行管理者 柜臺(tái)職員 數(shù)據(jù)庫(kù)管理員 信息安全管理員,需求的定義,需求應(yīng)該是對(duì)系統(tǒng)應(yīng)提供的服務(wù)和所受到的約束的描述。 需求來(lái)自于用戶,同時(shí)也是經(jīng)過了開發(fā)人員抽象之后的需求,Types of requirements需求種類,User requirements用戶需求 Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for c
15、ustomers 是用自然語(yǔ)言加圖表的形式給出的關(guān)于系統(tǒng)需要提供哪些服務(wù)以及系統(tǒng)操作受到哪些約束的聲明,Types of requirements需求種類,System requirements系統(tǒng)需求 A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor 詳細(xì)給出系統(tǒng)將要提供的服務(wù)以及系統(tǒng)所受的約束,User requirements,Client managers System en
16、d-users Client engineers Contractor managers System architects,System requirements,System end-users Client engineers System architects Software developers,客戶管理者 系統(tǒng)最終用戶 客戶工程師 承包商管理者 系統(tǒng)體系結(jié)構(gòu)工程師,系統(tǒng)最終用戶 客戶工程師 系統(tǒng)體系結(jié)構(gòu)工程師 軟件開發(fā)人員,用戶需求,系統(tǒng)需求,用戶需求和系統(tǒng)需求描述,系統(tǒng)需求的描述方面,Functional requirements 功能性需求 Non-functional re
17、quirements 非功能性需求 Domain requirements 領(lǐng)域需求,Functional requirements功能性需求,These are statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. 包括對(duì)系統(tǒng)提供的服務(wù)、如何對(duì)輸入做出反應(yīng)以及系統(tǒng)在特定條件下的行為描述,Non-functional requireme
18、nts非功能性需求,Non-functional requirements relate to emergent system properties such as reliability, response time and store occupancy. 是指不直接與系統(tǒng)具體功能相關(guān)的一類需求,與系統(tǒng)的總體特性有關(guān),如可靠性、反應(yīng)時(shí)間和存儲(chǔ)空間,Domain requirements 領(lǐng)域需求,These are requirements that come from the application domain of the system and reflect characteris
19、tics of that domain. 來(lái)自系統(tǒng)應(yīng)用領(lǐng)域的需求,反應(yīng)該領(lǐng)域的特點(diǎn),Types of non-functional requirements,Product requirements產(chǎn)品需求 Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc. 描述產(chǎn)品行為的需求,包括運(yùn)行速度、可靠性等,Types of non-functional requirements,Organisatio
20、nal requirements機(jī)構(gòu)需求 Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc. 起源于客戶所在的機(jī)構(gòu)和開發(fā)者所在的機(jī)構(gòu)中政策和規(guī)定,Types of non-functional requirements,External requirements外部需求 Requirements which arise from factors which are
21、external to the system and its development process e.g. interoperability requirements, legislative requirements, etc. 包括系統(tǒng)外部因素和開發(fā)過程,Non-functional requirement types,非功能性需求,需求分析的任務(wù),1)通過對(duì)問題及其環(huán)境的理解、分析和綜合,建立分析模型(Analysis Model)。 (2)在完全弄清用戶對(duì)軟件系統(tǒng)的確切要求的基礎(chǔ)上,用“軟件需求規(guī)格說(shuō)明書”(Software requirement Specification, S
22、RS)把用戶的需求表達(dá)出來(lái),需求分析的步驟,需求的內(nèi)容,1) 功能描述 (2) 性能描述 (3) 環(huán)境需求 (4) 界面需求 (5) 用戶或人的因素 (6) 文檔需求 (7) 數(shù)據(jù)需求 (8) 資源需求 (9) 安全保密 (10)軟件成本消耗與開發(fā)進(jìn)度 (11)質(zhì)量保證,需求的特征,1. 完整性 2. 正確性 3. 可行性 4. 必要性 5. 劃分優(yōu)先級(jí) 6. 無(wú)二義性 7. 可驗(yàn)證性,需求獲取技術(shù),需求獲取面臨的挑戰(zhàn)主要是對(duì)問題空間的理解、人與人之間的通信,以及需求的不斷變化,需求分析中出現(xiàn)的問題,1交流障礙 2問題的復(fù)雜性 3不完整性和不一致性,需求獲取的基本原則,1深入淺出 2以流程為主
23、線,需求獲取的常用技術(shù),跟班作業(yè) 開調(diào)查會(huì) 請(qǐng)專人介紹 詢問 設(shè)計(jì)調(diào)查表,請(qǐng)用戶填寫 查閱記錄,需求分析建模,用例建模 數(shù)據(jù)建模 過程建模,用例建模,用例是系統(tǒng)開發(fā)中用來(lái)描述系統(tǒng)需求,從用戶的角度描述系統(tǒng)的場(chǎng)景,概括有關(guān)參與者和用例信息的一個(gè)圖形化模型,描述了系統(tǒng)、子系統(tǒng)和類的一致的功能集合,表示了角色和用例之間的關(guān)系,表現(xiàn)為系統(tǒng)和一個(gè)或多個(gè)外部交互者(角色)得消息交互動(dòng)作序列。 主要包括系統(tǒng)、用例、角色和關(guān)聯(lián),Use Case 用例圖,一個(gè)用例可描述軟件系統(tǒng)和一個(gè)外部角色(Actor)之間的一次交互。 角色-可以使人、軟件、硬件或其他與系統(tǒng)交互的實(shí)體。 組成:系統(tǒng)、用例、角色、關(guān)聯(lián),Use
24、Case 用例圖組成,用例名,系統(tǒng),用例,角色,關(guān)聯(lián),Library use-cases圖書館的用例,用例之間的關(guān)系,擴(kuò)展關(guān)系 若一個(gè)用例中加入一些新的動(dòng)作后構(gòu)成一個(gè)新的用例,用例之間的關(guān)系,使用關(guān)系 當(dāng)一個(gè)用例使用另一個(gè)用例時(shí),這兩個(gè)用例構(gòu)成使用關(guān)系,用例之間的關(guān)系,組合關(guān)系 用例之間存在類似的行為,或相互之間存在必要的關(guān)系,可以將相關(guān)的用例以封裝方式加以組合,數(shù)據(jù)建模,系統(tǒng)需求分析建模就是定義系統(tǒng)處理的數(shù)據(jù)的邏輯結(jié)構(gòu)。比較廣泛采用的數(shù)據(jù)建模技術(shù)是實(shí)體-關(guān)系建模,它描述了數(shù)據(jù)實(shí)體以及實(shí)體之間的關(guān)系和相關(guān)的屬性,基本圖形,兩個(gè)實(shí)體學(xué)生和教師的關(guān)系,實(shí)體(Entity,需要一個(gè)概念來(lái)抽象地表示一
25、組類似事物的所有實(shí)例,稱這個(gè)概念為實(shí)體。是需要收集數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)的人、地點(diǎn)、對(duì)象、事件或概念的類??梢詺w類為: 人Persons:代理、承包商、客戶、部門、分部、雇員、導(dǎo)師、學(xué)生、供應(yīng)商; 地點(diǎn)Places:銷售地區(qū)、建筑物、房間、分支辦公室、校園; 對(duì)象Objects:圖書、機(jī)器、部件、產(chǎn)品、原材料、軟件許可證、軟件包、工具、汽車模型、汽車; 事件Events:獎(jiǎng)勵(lì)、取消、分類、飛行、開發(fā)票、訂單、注冊(cè)、續(xù)借、獲取、預(yù)定、銷售、旅行; 概念Concepts:帳號(hào)、時(shí)間段、債劵、課程、基金、資格、股票,E-R圖,描述各種數(shù)據(jù)之間的關(guān)系。 組成: 長(zhǎng)方形-數(shù)據(jù)對(duì)象(實(shí)體) 菱形-數(shù)據(jù)之間的關(guān)系,
26、Example,狀態(tài)轉(zhuǎn)換圖(STD,描述軟件狀態(tài)的變遷。 矩形-系統(tǒng)狀態(tài); 箭頭-狀態(tài)的轉(zhuǎn)變方向,STD Example,對(duì)象-行為圖,過程建模,數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度出發(fā),刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)和變換過程,它能夠清晰地反映系統(tǒng)必須完成的邏輯功能,DFD數(shù)據(jù)流圖的組成,圓框-加工 箭頭-數(shù)據(jù)流向 方框-數(shù)據(jù)的源點(diǎn)和終點(diǎn) 雙杠或單杠-數(shù)據(jù)文件或數(shù)據(jù)庫(kù),數(shù)據(jù)文件,Example,數(shù)據(jù)字典(DD,數(shù)據(jù)的三種情況: 數(shù)據(jù)項(xiàng)-只含一個(gè)數(shù)據(jù)或數(shù)據(jù)元素; 數(shù)據(jù)流-由多個(gè)相關(guān)數(shù)據(jù)項(xiàng)組成; 數(shù)據(jù)文件或數(shù)據(jù)庫(kù),數(shù)據(jù)項(xiàng),數(shù)據(jù)流,數(shù)據(jù)文件,加工說(shuō)明,結(jié)構(gòu)化語(yǔ)言 自然語(yǔ)言加上結(jié)構(gòu)化的形式。 判定表或判定樹
27、 適用于表達(dá)含有復(fù)雜判斷的加工邏輯,例 判定表,例 判定樹,exercise,某校的課酬計(jì)算方案為:基本課酬20元;班級(jí)人數(shù)超過60人,增加基本課酬的10%;班級(jí)人數(shù)超過80人,增加基本課酬的20%;教師為副教授,增加基本課酬的10%;為教授,增加基本課酬的20%;見習(xí)助教,減少基本課酬的10%。請(qǐng)用判定表描述上述問題的加工邏輯,需求分析建模,結(jié)構(gòu)化分析模型,結(jié)構(gòu)化分析方法,SA( Structured Analysis)結(jié)構(gòu)化分析: 是使用DFD、DD、結(jié)構(gòu)化語(yǔ)言、判定表和判定樹等工具,來(lái)建立結(jié)構(gòu)化說(shuō)明書(SRS,自頂向下、逐步細(xì)化Top-Down Stepwise Refinement,從
28、系統(tǒng)的基本模型(把整個(gè)系統(tǒng)看成一個(gè)加工)開始,逐層地對(duì)系統(tǒng)進(jìn)行分解。酶分解一次,系統(tǒng)的加工數(shù)量就增多一些,每個(gè)加工的功能也更具體一些。繼續(xù)分解,直到所有的加工都足夠簡(jiǎn)單,不必再分解為止,三層的數(shù)據(jù)流圖,1)頂層的數(shù)據(jù)流圖,2)第二層DFD圖,3)第三層DFD圖,DFD圖的基本要求,父圖和子圖平衡; 區(qū)分局部文件和局部外部項(xiàng); 分解的步子應(yīng)均勻,不應(yīng)過快,可分解為24個(gè)子加工,最多不超過7個(gè); 遵守加工編號(hào),Example-DFD,頂層數(shù)據(jù)流圖,Example-DFD-第二層數(shù)據(jù)流圖,Example-DFD-第三層數(shù)據(jù)流圖,需求分析的建模,面向?qū)ο蠓治瞿P?面向?qū)ο蠓治龇椒?定義用例 領(lǐng)域分析
29、類/對(duì)象建模 (1)確定分析模型中的類/對(duì)象 (2)定義類的結(jié)構(gòu)與層次 (3)定義主題或子系統(tǒng) 建立對(duì)象-關(guān)系模型-對(duì)象層次模型 建立對(duì)象-行為模型-序列圖,定義用例,確定系統(tǒng)角色 (1)使用系統(tǒng)主要功能的人 (2)借助系統(tǒng)完成日常工作的人 (3)維護(hù)、管理系統(tǒng)、保證系統(tǒng)正常工作的人 (4)涉及的設(shè)備 (5)外圍系統(tǒng) (6)其他感興趣的人,發(fā)現(xiàn)一組系統(tǒng)的用例 (1)角色需要從系統(tǒng)中獲得哪些功能 (2)發(fā)生的事件需要通知系統(tǒng) (3)角色需要讀取、產(chǎn)生、刪除、修改或存儲(chǔ)的信息 (4)輸出、輸入的信息 (5)當(dāng)前存在的問題,類/對(duì)象建模,1)確定類/對(duì)象 (2)定義類的結(jié)構(gòu)與層次 (3)定義主題或子
30、系統(tǒng),1)確定類/對(duì)象,1)必要的信息 (2)需要的服務(wù) (3)多個(gè)屬性 (4)公共的屬性 (5)公共的操作 (6)必要的需求,考察系統(tǒng)的使用實(shí)例; 將名詞或名詞短語(yǔ)匯總; 分析特征,確定哪些應(yīng)包含在分析模型中,類/對(duì)象圖,2)定義類的結(jié)構(gòu)與層次,一般-特殊(泛化Generalization ) 對(duì)類進(jìn)行分類,整體-部分(聚合Aggregation) 類的組成關(guān)系,對(duì)象模型的關(guān)系表示,泛化關(guān)系-一般到特殊 聚合關(guān)系-整體到部分,3)定義主題或子系統(tǒng),類模型的某個(gè)子集相互協(xié)作共同完成一組內(nèi)在功能時(shí),可以將其定義為主題或子系統(tǒng),對(duì)象模型技術(shù),對(duì)象模型,對(duì)象-關(guān)系模型,對(duì)象-行為模型,三個(gè)模型之間的
31、關(guān)系,對(duì)象-關(guān)系模型,關(guān)系存在于任意兩個(gè)相關(guān)聯(lián)的類之間,可以通過檢查對(duì)系統(tǒng)的范圍或用例的陳述中的動(dòng)詞或動(dòng)詞短語(yǔ)導(dǎo)出。 (1)找出存在的關(guān)系網(wǎng)絡(luò),用線連接; (2)連線上表示基數(shù),User class hierarchy,Object aggregation課程的聚合對(duì)象,對(duì)象-關(guān)系圖,對(duì)象-行為模型,對(duì)象行為模型用于描述系統(tǒng)的動(dòng)態(tài)行為,即系統(tǒng)如何應(yīng)對(duì)外部事件。 (1)對(duì)用例理解系統(tǒng)的交互序列; (2)找出驅(qū)動(dòng)交互序列的事件; (3)為每個(gè)用例創(chuàng)建事件軌跡; (4)為對(duì)象創(chuàng)建狀態(tài)轉(zhuǎn)換圖,狀態(tài)轉(zhuǎn)換圖 事件軌跡圖,狀態(tài)轉(zhuǎn)換圖,描述系統(tǒng)狀態(tài)和事件,事件引發(fā)系統(tǒng)在狀態(tài)間的轉(zhuǎn)換,Microwave ove
32、n model,一個(gè)簡(jiǎn)單的微波爐狀態(tài)機(jī)模型,事件軌跡圖,事件軌跡圖用于描述一個(gè)事件在各個(gè)對(duì)象之間的流動(dòng)情況,可以顯示整個(gè)系統(tǒng)的狀態(tài)變化,Issue of electronic items電子科目的發(fā)放,需求分析的文檔,Introduction 引言 Glossary 術(shù)語(yǔ) User requirements definition 用戶需求定義 System architecture 系統(tǒng)體系結(jié)構(gòu) System requirements specification 系統(tǒng)需求描述 System models 系統(tǒng)模型 System evolution 系統(tǒng)進(jìn)化 Appendices 附錄 Inde
33、x 索引,小結(jié),需求分析的任務(wù) 需求獲取的技術(shù) 需求分析文檔 結(jié)構(gòu)化分析方法 面向?qū)ο蠓治龇椒?要求掌握的內(nèi)容,結(jié)構(gòu)化分析方法 面向?qū)ο蠓治龇椒?數(shù)據(jù)流圖 數(shù)據(jù)字典 用例圖 對(duì)象模型-ERD 狀態(tài)圖 序列圖,本次課堂練習(xí),每名學(xué)生編寫需求分析文檔; 文檔中要有數(shù)據(jù)流圖、數(shù)據(jù)字典; 還有用例圖、ERD、序列圖。 需求文檔按所給的需求分析標(biāo)準(zhǔn)文檔形式,第3章 軟件設(shè)計(jì),設(shè)計(jì)原則 結(jié)構(gòu)化設(shè)計(jì)方法 面向?qū)ο蟮脑O(shè)計(jì)方法 系統(tǒng)詳細(xì)設(shè)計(jì),軟件設(shè)計(jì)的任務(wù),軟件設(shè)計(jì)的任務(wù)- 把分析階段產(chǎn)生的軟件需求說(shuō)明轉(zhuǎn)換成用適當(dāng)?shù)氖侄伪硎镜能浖O(shè)計(jì)文檔,軟件設(shè)計(jì)包括的內(nèi)容: 軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì); 系統(tǒng)接口設(shè)計(jì); 數(shù)據(jù)結(jié)構(gòu)
34、設(shè)計(jì); 軟件過程設(shè)計(jì); 系統(tǒng)界面設(shè)計(jì),軟件設(shè)計(jì)的概念,模塊-是一個(gè)擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。 抽象(Abstraction)-軟件設(shè)計(jì)是在不同抽象級(jí)別考慮和處理問題的過程。 過程抽象、數(shù)據(jù)抽象 細(xì)化(Refinement)-分解過程。 信息隱蔽(Information Hiding)-模塊內(nèi)部的數(shù)據(jù)和過程,應(yīng)該對(duì)不需要了解這些數(shù)據(jù)與過程的模塊隱藏起來(lái),模塊化設(shè)計(jì),分解 任務(wù)P,分解為P1、P2兩個(gè)子任務(wù) P=P1+P2 C為問題復(fù)雜度 C(P1+P2)C(P1)+C(P2) E為完成任務(wù)所需的工作量 E(P1+P2)E(P1)+E(P2,分解,模塊獨(dú)立性(Module Inde
35、pendence,模塊獨(dú)立性-把軟件換份為模塊時(shí)遵循的標(biāo)準(zhǔn)。 度量-內(nèi)聚、耦合 內(nèi)聚-模塊內(nèi)部各個(gè)成分之間的聯(lián)系。(塊內(nèi)聯(lián)系或模塊強(qiáng)度) 耦合-模塊與模塊之間的聯(lián)系。(塊間聯(lián)系,內(nèi)聚(Cohesion,偶然性內(nèi)聚-塊內(nèi)各組成成分在功能上互不相關(guān)。 邏輯性內(nèi)聚-有若干個(gè)邏輯功能相似的成分組成。 時(shí)間性內(nèi)聚-由相同的執(zhí)行時(shí)間連接在一起。 過程性內(nèi)聚-一組任務(wù)必須按照某一特定次序執(zhí)行。 通信性內(nèi)聚-都使用同一種輸入數(shù)據(jù),或產(chǎn)生同一種輸出數(shù)據(jù)。 順序性內(nèi)聚-各組成部分順序執(zhí)行。 功能性內(nèi)聚-用于完成單一功能,耦合(Coupling,非直接耦合-模塊之間沒有直接的信息傳遞。 數(shù)據(jù)耦合-模塊之間傳遞的是簡(jiǎn)
36、單變量。 特征耦合-模塊之間交換的是數(shù)據(jù)結(jié)構(gòu)。 控制耦合-模塊之間傳遞的是控制信號(hào)。 外部耦合-一組模塊訪問同一個(gè)全局變量。 公共耦合-一組模塊訪問同一個(gè)全局?jǐn)?shù)據(jù)結(jié)構(gòu)。 內(nèi)容耦合-一個(gè)模塊直接調(diào)用另一個(gè)模塊的數(shù)據(jù)或直接轉(zhuǎn)移到另一個(gè)模塊內(nèi)部,系統(tǒng)結(jié)構(gòu)化,根據(jù)系統(tǒng)的分布情況可以將系統(tǒng)分解為一系列基本子系統(tǒng),每一個(gè)子系統(tǒng)都是一個(gè)獨(dú)立的軟件單元,同時(shí)識(shí)別出子系統(tǒng)之間的通信,控制模型,根據(jù)控制系統(tǒng)的各個(gè)部分之間控制關(guān)系,對(duì)系統(tǒng)進(jìn)行有效地分解子系統(tǒng),可以形成集中管理、分散控制的分解模型,模塊分解,對(duì)整體軟件系統(tǒng)的結(jié)構(gòu)進(jìn)行分解,可以將軟件系統(tǒng)形成層次分解的模塊結(jié)構(gòu),確定模塊的類型以及模塊之間的調(diào)用關(guān)系,體系
37、結(jié)構(gòu)的分類,容器模型 客戶機(jī)/服務(wù)器模型 分層模型,容器模型,客戶機(jī)/服務(wù)器模型,分層模型,設(shè)計(jì)方法,結(jié)構(gòu)化設(shè)計(jì)方法,用DFD圖表示的系統(tǒng)分析模型轉(zhuǎn)換為數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,SC圖組成符號(hào),數(shù)據(jù)流圖的類型,變換型 事務(wù)型,SD結(jié)構(gòu)化設(shè)計(jì)方法,復(fù)審DFD圖,可進(jìn)行修改或細(xì)化。 鑒別DFD圖的類型。 按照SD方法規(guī)定的一組規(guī)則,將DFD圖轉(zhuǎn)換為初始SC圖。 按照設(shè)計(jì)優(yōu)化原則改進(jìn)初始SC圖,獲得最終SC圖,變換映射,劃分DFD圖的邊界; 建立初始SC圖的框架; 分解SC圖的各個(gè)分支,例子 EXAMPLE,第一步 劃分界限,第二步 完成第一級(jí)分解,第三步 完成第二級(jí)分解,細(xì)化SC圖的各個(gè)分支,中心加工分
38、支的分解,傳入分支的分解,傳出分支的分解,事務(wù)映射,在DFD圖上確定事務(wù)中心、接受部分、發(fā)送部分; 將DFD圖的三個(gè)部分分別映射為事務(wù)控制模塊、接受模塊、動(dòng)作發(fā)送模塊; 分解和細(xì)化接受分支和發(fā)送分支,完成初始的SC圖,結(jié)構(gòu)化設(shè)計(jì)的優(yōu)化原則,分割、合并、變動(dòng)模塊大小的指導(dǎo)原則 保持高扇入(Fan-in)、低扇出(Fan-out)的原則 作用域應(yīng)在控制域范圍內(nèi)的原則,Example-DFD到SC的轉(zhuǎn)化,本系統(tǒng)修改放在磁帶中的一個(gè)主文件上,對(duì)文件做修改的信息放在卡片上,該系統(tǒng)讀入一疊卡片,按卡片上的修改信息對(duì)磁帶中的紀(jì)錄作相應(yīng)修改,然后產(chǎn)生新的主文件,頂層數(shù)據(jù)流圖,第二層數(shù)據(jù)流圖,第三層數(shù)據(jù)流圖,S
39、C軟件結(jié)構(gòu)圖,過程設(shè)計(jì)的原則,清晰第一的設(shè)計(jì)風(fēng)格 結(jié)構(gòu)化的控制結(jié)構(gòu) 逐步細(xì)化的實(shí)現(xiàn)方法,An object-oriented design process面向?qū)ο笤O(shè)計(jì)過程,Define the context and modes of use of the system 了解并定義上下文和系統(tǒng)的使用模式。 Design the system architecture 設(shè)計(jì)系統(tǒng)體系結(jié)構(gòu)。 Identify the principal system objects 識(shí)別出系統(tǒng)中的主要對(duì)象。 Develop design models 開發(fā)設(shè)計(jì)模型。 Specify object interface
40、s 描述對(duì)象接口,系統(tǒng)上下文和使用模型,系統(tǒng)上下文模型是一個(gè)靜態(tài)模型,描述環(huán)境中的其他系統(tǒng); 系統(tǒng)使用模型是一個(gè)動(dòng)態(tài)模型,描述系統(tǒng)如何與環(huán)境交互的,Subsystems in the weather mapping system,氣象制圖系統(tǒng)中的子系統(tǒng),Use-cases for the weather station氣象臺(tái)的用例,啟動(dòng),關(guān)機(jī),報(bào)告,校準(zhǔn),測(cè)試,Use-case description報(bào)告用例的描述,報(bào)告用例的描述,體系結(jié)構(gòu)設(shè)計(jì),可以結(jié)合體系結(jié)構(gòu)模型構(gòu)造體系結(jié)構(gòu),識(shí)別對(duì)象類,1)對(duì)系統(tǒng)的自然語(yǔ)言描述作文法分析。 對(duì)象和屬性是名詞,操作和服務(wù)是動(dòng)詞。 (2)使用應(yīng)用領(lǐng)域中的真實(shí)實(shí)
41、體、職務(wù)、事件、交互、位置、機(jī)構(gòu)單元等。 (3)使用行為方法,對(duì)每個(gè)行為了解誰(shuí)發(fā)起的和哪些實(shí)體參與了這個(gè)行為。 (4)使用基于腳本的分析識(shí)別出系統(tǒng)使用的各個(gè)腳本,并以此對(duì)其進(jìn)行分析。識(shí)別出對(duì)象、屬性和操作,對(duì)象和對(duì)象類,對(duì)象是由狀態(tài)和在此狀態(tài)上的一組操作構(gòu)成的一個(gè)實(shí)體。 狀態(tài)由一組對(duì)象屬性來(lái)表示。 操作提供給其他對(duì)象相應(yīng)的服務(wù)。 對(duì)象通信通過向其他對(duì)象請(qǐng)求服務(wù)來(lái)實(shí)現(xiàn),Weather station object classes,Design models設(shè)計(jì)模型,Static models describe the static structure of the system in terms
42、 of object classes and relationships 靜態(tài)模型通過對(duì)象類及其之間的關(guān)系來(lái)描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。 Dynamic models describe the dynamic interactions between objects. 動(dòng)態(tài)模型描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)和系統(tǒng)對(duì)象之間的交互,Examples of design models,Sub-system models 子系統(tǒng)模型 說(shuō)明對(duì)象的邏輯分組,每個(gè)分組構(gòu)成一個(gè)子系統(tǒng)。靜態(tài)模型 Sequence models 序列模型 說(shuō)明對(duì)象交互的序列。動(dòng)態(tài)模型 State machine models狀態(tài)機(jī)模型 說(shuō)明單個(gè)對(duì)象
43、如何相應(yīng)事件來(lái)改變它們的狀態(tài)。 Other models 用例模型說(shuō)明系統(tǒng)中的交互,對(duì)象模型描述對(duì)象類,泛化或繼承模型說(shuō)明類是如何通過對(duì)其他對(duì)象的泛化得到的,聚合模型說(shuō)明對(duì)象集合是如何關(guān)聯(lián)的,Weather station subsystems,Weather station architecture氣象臺(tái)體系結(jié)構(gòu),Data collection sequence,Weather station state diagram,對(duì)象接口描述Weather station interface,數(shù)據(jù)設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì),圖書(圖書號(hào),書名,作者,出版社,出版日期,單價(jià),借出標(biāo)志)讀者(借書證號(hào),姓名,性別
44、,身份證,聯(lián)系電話,密碼) 借還書(借還時(shí)間,借還標(biāo)志,圖書數(shù)據(jù)模型設(shè)計(jì),索引的建立,主鍵-能唯一標(biāo)識(shí)該結(jié)點(diǎn)或該條記錄。 外鍵-能對(duì)該結(jié)點(diǎn)與其他結(jié)點(diǎn)聯(lián)系的標(biāo)識(shí)。 借還書(借還時(shí)間、借還標(biāo)志) 外鍵-圖書、讀者,每一個(gè)數(shù)據(jù)文件結(jié)構(gòu),過程設(shè)計(jì),為軟件中的每個(gè)模塊確定相應(yīng)的算法及內(nèi)部數(shù)據(jù)結(jié)構(gòu),獲得目標(biāo)系統(tǒng)具體實(shí)現(xiàn)的精確描述,為編碼工作做好準(zhǔn)備。 (1)圖形設(shè)計(jì)工具 (2)表格工具 (3)語(yǔ)言工具,程序流程圖,功能模型設(shè)計(jì),輸入內(nèi)容-用戶對(duì)信息系統(tǒng)的錄入。 輸出內(nèi)容-信息系統(tǒng)對(duì)外的顯示或打印。 系統(tǒng)響應(yīng)-信息系統(tǒng)對(duì)用戶操作的處理過程,功能點(diǎn)列表,用戶界面設(shè)計(jì),確認(rèn)用戶輸入的信息 響應(yīng)的信息 出錯(cuò)處理和
45、顯示信息 提供幫助和提示 處理窗口的滾動(dòng) 建立功能與界面、數(shù)據(jù)庫(kù)表的關(guān)聯(lián) 建立應(yīng)用程序與界面的分離,用戶界面設(shè)計(jì)的特點(diǎn),界面設(shè)計(jì)原則,設(shè)計(jì)方式比較,軟件設(shè)計(jì)說(shuō)明書,范圍 數(shù)據(jù)設(shè)計(jì) 體系結(jié)構(gòu)設(shè)計(jì) 接口設(shè)計(jì) 模塊的過程設(shè)計(jì) 其他,小結(jié),軟件設(shè)計(jì)過程 體系結(jié)構(gòu)設(shè)計(jì) 接口設(shè)計(jì) 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 算法設(shè)計(jì) 用戶界面設(shè)計(jì),本次要求,完成設(shè)計(jì)文檔 設(shè)計(jì)文檔中必須完成: 功能點(diǎn)列表 數(shù)據(jù)文件表 界面設(shè)計(jì)圖形表示(包含菜單、出錯(cuò)處理、結(jié)果響應(yīng)等窗口的描述)。 對(duì)主要的函數(shù)給出流程圖描述,第4章 編碼實(shí)現(xiàn),編碼風(fēng)格 編碼語(yǔ)言的選擇,編碼風(fēng)格,編碼風(fēng)格,使用標(biāo)準(zhǔn)的控制結(jié)構(gòu) 有限制的使用GOTO語(yǔ)句 實(shí)現(xiàn)源程序的文檔化
46、滿足運(yùn)行工程學(xué)的輸入輸出風(fēng)格,使用標(biāo)準(zhǔn)的控制結(jié)構(gòu),單入口、單出口標(biāo)準(zhǔn)結(jié)構(gòu) if c then s; If c then s1 else s2; Case I of a: s1; b: s2; n: sn; endcase,While c do s; for i:=m to n do s; Repeat s until c,有限制的使用GOTO-1,用GOTO 語(yǔ)句實(shí)現(xiàn)提前退出循環(huán); While c1 do begin if c2 then goto 20; if c3 then goto 30; end; 20: Goto 40; 30: 40,exit1:=false; exit2:=fal
47、se; While(c1) and (not exit1) and (not exit2) do Begin if c2 then exit1:=true; if c3 then exit2:=true; End If(exit1) then goto 20; If(exit2) then goto 30; 20: Goto 40; 30:. 40,有限制的使用GOTO-2,GOTO 語(yǔ)句用于出錯(cuò)處理 boolean push(item,index,stack,errflag) int errflag,index; float item,stack100; if(index=100) goto
48、 10; errflag=0; index=index+1; stackindex=item; return(errflag); 10: errflag=1; return(errflag);,有限制的使用GOTO-3,使用GOTO語(yǔ)句減少重復(fù)程序段。 if p then a;b; else b; endif while q loop a;b; endloop,if p then L1: a; endif b; If q then goto l1,實(shí)現(xiàn)源程序的文檔化,有意義的變量名 適當(dāng)?shù)淖⑨?標(biāo)準(zhǔn)的書寫格式,名字,名字-非形式的、簡(jiǎn)練的、容易記憶的。 一個(gè)變量的作用于越大,名字所攜帶的信息越
49、多。 全局變量-使用具有說(shuō)明性的名字;并加以注釋。 局部變量-用短名字,Npending=0;/current length of input quene 全局變量采用大寫開頭的變量名。 如:Globle 常量用大寫字母拼寫。 如:CONSTANTS 變量的類型也應(yīng)體現(xiàn): 如:strTo,strFrom 字符串,名字,保持一致性 class UserQueue int noOfItemsInQ,frontOfTheQueue, queueCapacity; public: int noOfUserInQueue(),1)同一個(gè)詞queue分別用了 Q、Queue、queue (2) 在類型Us
50、erQueue訪問 queue.queueCapacity多余 可改為: class UserQueue int nitems, front, capacity; public: int nusers() queue.capacity+; n=queue.nusers(,名字,函數(shù)采用動(dòng)作性的動(dòng)詞,后面可以跟著名詞。 now=date.getTime(); putchar(/n,表達(dá)式和語(yǔ)句,用縮行顯示程序的結(jié)構(gòu) for(n=0;n100;fieldn+=0); *i=0; return(n); 改為: for(n=0;n100;n+) fieldn=0; *i=0; return(n,表達(dá)式
51、和語(yǔ)句,使用表達(dá)式的自然形式。 避免含有否定運(yùn)算的條件表達(dá)式。 可以改變關(guān)系運(yùn)算方向,變成肯定的。 如 if(!block_id=unblocks) 改為 if(block_id=actblks)|(block_idunblocks,表達(dá)式和語(yǔ)句,用加括號(hào)的方式排除二義性。 特別是C語(yǔ)言,關(guān)系運(yùn)算符比邏輯運(yùn)算符優(yōu)先級(jí)高。 if(x 分解為: if(2*kn-m) *xp=ck+1; else *xp=dk-; *x+=*xp,一致性和習(xí)慣用法,使用一致的縮排和加括號(hào)風(fēng)格; if(month=FEB) int day; nday=28; if(year%4=0) nday=29; if(dayn
52、day) legal=FALSE; 最好采用習(xí)慣用法; for(i=0;in;i+) arrayi=1.0,使用字符形式的常量,不要用整數(shù)。 if(c=65,注釋,不要大談明顯的東西。 給函數(shù)和全局?jǐn)?shù)據(jù)加注釋,滿足運(yùn)行工程學(xué)的輸入輸出風(fēng)格,輸入方面: (1)對(duì)輸入數(shù)據(jù)進(jìn)行有效性檢驗(yàn); (2)輸入格式力求簡(jiǎn)單、一致; (3)使用結(jié)束標(biāo)志終止輸入; (4)提示“請(qǐng)輸入”,給出范圍和邊界值; (5)對(duì)多個(gè)輸入組合進(jìn)行檢查,輸出方面: (1)對(duì)輸出數(shù)據(jù)加以說(shuō)明; (2)良好的報(bào)表和報(bào)告形式; (3)在線幫助; (4)對(duì)可能產(chǎn)生重大后果的給與提示; (5)防止用戶意外非正常操作,具有防彈功能; (6)區(qū)
53、別不同用戶,適合用戶的習(xí)慣和水平; (7)系統(tǒng)能夠自動(dòng)恢復(fù),編碼語(yǔ)言的選擇,選擇編碼語(yǔ)言的標(biāo)準(zhǔn): (1)應(yīng)用領(lǐng)域 (2)算法和計(jì)算復(fù)雜性 (3)數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性 (4)效率的考慮,第5章 軟件測(cè)試Software Testing,Objective of Testing Testing Methods Testing and Debugging Process of Testing,Verification: Are we building the product right The software should conform to its specification 檢查軟件是否符合它的
54、描述。 檢查系統(tǒng)是否滿足它所定義的功能和非功能的需要,檢驗(yàn)與驗(yàn)證Verification vs validation,Validation: Are we building the right product The software should do what the user really requires 軟件是否滿足用戶的最終需要,Verification vs validation,V&V process,Software Inspections軟件檢查 Analyse and check system representations such as requirements do
55、cumentation,design disgrams and the program source code. Software Testing軟件測(cè)試 Involves executing an implementation of the software with test data and examining the outputs of the software and its operational behaviour,Static and dynamic V&V,The V-model of development,Software inspections 軟件檢查,Involv
56、e people examining the source representation with the aim of discovering anomalies and defects Do not require execution of a system so may be used before implementation 軟件檢查不需要運(yùn)行程序,可在程序完成之前進(jìn)行驗(yàn)證,The inspection process,Static analysis checks,程序檢查內(nèi)容,測(cè)試的基本概念Testing Concept,Testing: To find errors in pro
57、grams 發(fā)現(xiàn)程序的錯(cuò)誤 Debugging: Locate and modify errors 定位和糾正錯(cuò)誤,Verification and validation is concerned with establishing the existence of defects in a program 確定在程序中存在錯(cuò)誤 Debugging is concerned with locating and repairing these errors 查找錯(cuò)誤并修復(fù)錯(cuò)誤,Testing and debugging,測(cè)試和糾錯(cuò)的流程Testing and Debugging Process,
58、Testing,Testing Results,Debugging,The defect testing process,測(cè)試的種類Types of Testing,辦公桌檢查,測(cè)試方法Testing Methods,黑盒測(cè)試方法 (Black-Box) (1)等價(jià)分類法(Equivalence Partitioning) (2)邊界值分析法(Boundary Value Analysis) (3)錯(cuò)誤猜測(cè)法(Error Guessing) 白盒測(cè)試方法(White-Box) (1)路經(jīng)測(cè)試法(Path Testing) (2)邏輯覆蓋法(Logic Coverage Testing,Blac
59、k-box testing,Equivalence partitioning等價(jià)分類法,Input data and output results often fall into different classes where all members of a class are related Each of these classes is an equivalence partition where the program behaves in an equivalent way for each class member,等價(jià)分類法Equivalence Partitioning,基本思想:把輸入數(shù)據(jù)的可能值劃分若干等價(jià)類,使每類中的任何一個(gè)測(cè)試用例,都能代表同一等價(jià)類中的其他測(cè)試用例。 即:從某一等價(jià)類中任選一個(gè)測(cè)試用例未能發(fā)現(xiàn)程序的錯(cuò)誤,就可以合理認(rèn)為在該類中的其他測(cè)試用例也不會(huì)發(fā)現(xiàn)錯(cuò)誤,Equivalence partitioning,Partition system inputs and outputs into equivalence sets If input is a 5-digit integer between 10,000 and 99,999, equivalence partitions are 10, 000,Equivalence
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年英語(yǔ)教師職業(yè)道德建設(shè)計(jì)劃
- 水質(zhì)監(jiān)測(cè)MBR膜清洗流程
- 餐飲業(yè)疫情期間外賣服務(wù)優(yōu)化計(jì)劃
- 心理健康教育教材解讀心得體會(huì)
- 農(nóng)村宅基地制度改革的實(shí)踐與探索研究報(bào)告
- 六年級(jí)上冊(cè)班主任課堂互動(dòng)計(jì)劃
- 城市測(cè)繪項(xiàng)目技術(shù)措施探討
- 小學(xué)保育組長(zhǎng)的日常管理職責(zé)
- 九年級(jí)下學(xué)期英語(yǔ)課程評(píng)價(jià)計(jì)劃
- 公共交通系統(tǒng)應(yīng)急管理流程
- 2025年公務(wù)員面試試題及答案全解析
- 交通大數(shù)據(jù)應(yīng)用試題及答案
- 23《祖先的搖籃》(教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版語(yǔ)文二年級(jí)下冊(cè)
- 齊魯名校大聯(lián)考2025屆山東省高三第七次學(xué)業(yè)水平聯(lián)合檢測(cè)語(yǔ)文試題及答案
- 外科肛腸科試題及答案
- 食堂從業(yè)人員培訓(xùn)內(nèi)容
- 骨科圍手術(shù)期的疼痛護(hù)理
- 行政管理本科畢業(yè)論文-論電動(dòng)自行車管理存在的問題與對(duì)策-以福州市為例
- 嚴(yán)重過敏反應(yīng)診斷和臨床管理專家共識(shí)(2025年版)解讀
- 山東健康集團(tuán)招聘考試真題2024
- 中國(guó)2型糖尿病運(yùn)動(dòng)治療指南(2024版)解讀 2
評(píng)論
0/150
提交評(píng)論