




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、三大塊內(nèi)容: 軟件危機(jī)與軟件工程傳統(tǒng)軟件開(kāi)發(fā)方法面向?qū)ο蠓椒ㄒ弧?軟件危機(jī)與軟件工程:軟件、軟件危機(jī)、軟件生存期、軟件開(kāi)發(fā)模型、軟件管理1、 軟件: 軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序+ 使程序正常運(yùn)行所需要的數(shù)據(jù)+ 描述軟件開(kāi)發(fā)過(guò)程及其管理、程序的操作和使用的有關(guān)文檔。文檔:分開(kāi)發(fā)、管理、用戶、維護(hù)文檔,作用是記錄及解決不可視性、通信與交流、管理與維護(hù)、用戶服務(wù)2、 軟件危機(jī)a) 表現(xiàn):軟件成本高、難于控制開(kāi)發(fā)進(jìn)度、軟件工作量估計(jì)困難、軟件質(zhì)量低、軟件修改維護(hù)困難b) 原因:需求問(wèn)題 (描述不精確、理解不一致) 、管理問(wèn)題、方法和工具問(wèn)題、軟件本身的特點(diǎn)3、 軟件生存期:a)
2、三個(gè)時(shí)期: 定義時(shí)期(軟件計(jì)劃、需求分析)> 開(kāi)發(fā)時(shí)期(軟件設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試) > 使用和維護(hù)時(shí)期(維護(hù))b) 六個(gè)階段:軟件計(jì)劃 需求分析設(shè)計(jì) 編碼 測(cè)試 使用與維護(hù)c) 生命周期方法特點(diǎn): 順序性、依賴性,推遲程序的物理實(shí)現(xiàn)、 質(zhì)量保證的觀點(diǎn)(利于盡早發(fā)現(xiàn)錯(cuò)誤,如階段文檔、評(píng)審)4、 軟件開(kāi)發(fā)模型a) 瀑布模型:文檔驅(qū)動(dòng)i. 階段劃分、分而治之、控制開(kāi)發(fā)過(guò)程的復(fù)雜性ii. 自頂向下、由抽象到具體,順序進(jìn)行優(yōu)點(diǎn):規(guī)范管理開(kāi)發(fā)過(guò)程、文檔驅(qū)動(dòng)缺點(diǎn):初期系統(tǒng)的需求難以完全確定、文檔驅(qū)動(dòng)、周期長(zhǎng)b) 原型模型:i. 針對(duì):軟件開(kāi)發(fā)初期需求難以確定ii. 基本思想:快速建立原型,完善用
3、戶需求iii. 優(yōu)點(diǎn):用戶參與、快速iv. 缺點(diǎn):快速弱功能、對(duì)開(kāi)發(fā)環(huán)境要求高c) 螺旋模型(風(fēng)險(xiǎn)驅(qū)動(dòng))d) 增量模型(模塊、功能驅(qū)動(dòng))e) 迭代模型f) 噴泉模型5、 軟件管理a) 區(qū)別于其他工業(yè)產(chǎn)品生產(chǎn)管理的特點(diǎn)b) 主要內(nèi)容:開(kāi)發(fā)計(jì)劃與進(jìn)度管理、文檔管理、人員組織管理、成本管理、質(zhì)量管理傳統(tǒng)軟件工程方法:a) 軟件計(jì)劃i. 問(wèn)題定義ii. 可行性研究1. 經(jīng)濟(jì)可行性2. 技術(shù)可行性3. 法律可行性b) 需求分析i. 結(jié)構(gòu)化分析SAii. 面向數(shù)據(jù)流的分析方法1. DFD 四個(gè)組成部分(表示方法、命名)2. DFD 作圖:需求描述DFD3. 層次分解法(保持父圖和其子圖的平衡)4. 數(shù)據(jù)字
4、典(符號(hào))c) 軟件設(shè)計(jì)i. 總體設(shè)計(jì)1. 模塊獨(dú)立性:高內(nèi)聚2. 作用域是控制域的子集3. 單入單出4. 規(guī)模、深度、寬度、扇入、扇出適當(dāng)ii. 傳統(tǒng)設(shè)計(jì)方法1. 面向數(shù)據(jù)流的設(shè)計(jì)方法(數(shù)據(jù)流圖)a)結(jié)構(gòu)化設(shè)計(jì)SD-對(duì)應(yīng)有SD結(jié)構(gòu)化需求分析、SP結(jié)構(gòu)化實(shí)現(xiàn)b) DFD 軟件結(jié)構(gòu)(層次圖)i. 變換設(shè)計(jì)ii. 事務(wù)設(shè)計(jì)c) 優(yōu)缺點(diǎn)2. 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法a) Jackson 方法b) Jackson 圖i. 三種元素間的邏輯關(guān)系:順序、選擇、重復(fù)ii. 可描述兩種數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)、程序結(jié)構(gòu)c) 思想:數(shù)據(jù)結(jié)構(gòu)與程序處理過(guò)程相互轉(zhuǎn)換d) 步驟:I/O DS對(duì)應(yīng)關(guān)系 Program Stru
5、cture 細(xì)化求精e) 優(yōu)缺點(diǎn):i. 數(shù)據(jù)入手ii. 簡(jiǎn)化數(shù)據(jù)處理程序的設(shè)計(jì)iii. 模塊與獨(dú)立性原則沒(méi)有給予應(yīng)有的重視iv. 求提供對(duì)復(fù)雜系統(tǒng)設(shè)計(jì)過(guò)程的支持3. Parnas 方法iii. 詳細(xì)設(shè)計(jì)1. 結(jié)構(gòu)化程序設(shè)計(jì)SPa) 高效率 - 良結(jié)構(gòu)b) 三種基本控制結(jié)構(gòu)、單入單出2. 過(guò)程設(shè)計(jì)的工具d) 實(shí)現(xiàn) / 編碼i. 語(yǔ)言1. 功能等價(jià)2. 描述問(wèn)題方便性有差異a) 例如:OOPL- 非 OOPLii. 程序設(shè)計(jì)風(fēng)格e) 軟件測(cè)試i. 目標(biāo)ii. 方法1. 正確性證明2. 靜態(tài)測(cè)試3. 動(dòng)態(tài)測(cè)試a) 黑盒(功能)測(cè)試i. 等價(jià)類劃分ii. 邊界值分析iii. 錯(cuò)誤推測(cè)b) 白盒(結(jié)構(gòu))
6、測(cè)試i. 語(yǔ)句覆蓋ii. 判定覆蓋iii. 條件覆蓋iv. 判定條件覆蓋v. 條件組合覆蓋iii. 步驟f) 軟件維護(hù)i. 四種類型1. 校正性2. 適應(yīng)性3. 完善性4. 預(yù)防性ii. 提高可維護(hù)性的措施面向?qū)ο蠓椒?Object-oriented Method)a) OOM 與 CM 對(duì)比:區(qū)別優(yōu)點(diǎn)i. 思維方式iv. 穩(wěn)定性ii. 可重用性v.可維護(hù)性iii. 大型軟件b) OOSE 方法i. 三個(gè)階段、五個(gè)模型、ii. USE CASE第二章.傳統(tǒng)軟件工程方法:軟件計(jì)劃具體任務(wù):項(xiàng)目定義、可行性分析、軟件計(jì)劃其中:可行性分析:1、可行性研究實(shí)質(zhì):可行性研究試一次大大壓縮和簡(jiǎn)化了的系統(tǒng)分
7、析和設(shè)計(jì)過(guò)程,也 就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)過(guò)程。2、主要內(nèi)容:a)經(jīng)濟(jì)可行性:資金有無(wú)落實(shí)、成本一效益分析b)技術(shù)可行性:開(kāi)發(fā)的風(fēng)險(xiǎn)、資源的有效性、技術(shù)方案c)操作可行性:用戶組織內(nèi)的管理制度、人員素質(zhì)、操作方式等是否可行。d)法律及社會(huì)可行性e)開(kāi)發(fā)方案的選擇:折衷手段權(quán)衡。3、可行性研究的主要步驟:a)復(fù)查系統(tǒng)規(guī)模b)研究正在使用的舊系統(tǒng)c)導(dǎo)出高層邏輯模型d)重新定義問(wèn)題e)導(dǎo)出多種解法f) 推薦行動(dòng)方針g)草擬開(kāi)發(fā)計(jì)劃h)書(shū)寫(xiě)文檔并提交審查系統(tǒng)流程圖(物理建模工具):會(huì)讀、讀懂。同號(hào)名梆猊用翻存幅表示任何節(jié)至二聯(lián)郡有常巨荒近垂.三里和包存牖牛一-»處
8、理能骸觸攝或颼1幀工嵇電如 sm.姐in為漫處基躺凝瑜出.炯樸存M E 皿版 件翻身信LJ殖摘出標(biāo)斷甘鼬.個(gè)廣義的稗翔邸 爸的瓠CJ顯示CRT羯豳的際麟.可用節(jié)人.萼也也可吃穩(wěn)人又追日0躡指出懶豳另一部分烹卜聆月T 邛慈通常桐F上AIBK人工輸燃解胞腺理如轉(zhuǎn)表軌0指出黜另一班自由頹困轉(zhuǎn)殺人工觸人工則處理,如卻在工慌支事二招 颯腓便就蹺制眼硒也<助髓麻野甦港,砂腕.祖方巳410壯城儂睫婕.烘通青所打綿H炯衍則照煙入 蠕數(shù)據(jù)流圖:概述?描繪系統(tǒng)的邏輯模型的工具? DFD: Data Flow Diagram?描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換數(shù)據(jù)從哪里來(lái),到哪里去,經(jīng)過(guò)怎樣
9、的處理,保存在哪里 ?沒(méi)有任何具體的物理部件,只是描繪數(shù)據(jù)在軟件中 流動(dòng)和被處理的邏輯過(guò)程。是系統(tǒng)邏輯功能的圖形表 示。?是分析員和用戶溝通的工具是后期設(shè)計(jì)的出發(fā)點(diǎn)數(shù)據(jù)源點(diǎn)/終 點(diǎn)處理數(shù)據(jù)存儲(chǔ)數(shù)據(jù)流A 數(shù)據(jù)A和R同時(shí)輸入才能B 。丁尸工變換成數(shù)據(jù)C二T 4 故據(jù)A變換成B和C C其、數(shù)據(jù)A或B,或R和B同B £ T時(shí)輸入變換成C,%數(shù)據(jù)A變換成B誡C.或B一 T匚和匚.A只有翻據(jù)A或只有數(shù)據(jù)B:T SC但不能A. B同時(shí) ) 輸入4一"時(shí)變換成C具 4 數(shù)據(jù)A變換成B或C.但不 一* ,飛能變換城B和CDFD的繪制一般采用自頂向下、逐步細(xì)化的方法,主要步驟如下: 明確系統(tǒng)界
10、面。識(shí)別出那些不受系統(tǒng)控制但又影響系統(tǒng)運(yùn)行的外部環(huán)境。 繪制基本系統(tǒng)模型?;鞠到y(tǒng)模型由若干源點(diǎn)、終點(diǎn)和一個(gè)基本處理組成,表明系統(tǒng)對(duì)數(shù)據(jù)加工變換的基本功能。 逐層細(xì)化基本系統(tǒng)模型得到功能級(jí) DFD和詳細(xì)DFD。下面即分層數(shù)據(jù)流圖。假設(shè)一家工廠的采購(gòu)部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序, 表中列出所有需要再次定貨的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù);零件編號(hào)零件名稱、定貨數(shù)量、目前價(jià)格、主要供應(yīng)者和次要供應(yīng)者。零件入庫(kù)或出庫(kù)稱為事務(wù),通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)某種零件的庫(kù)存數(shù)量少于庫(kù)存量臨界值時(shí)就應(yīng)該再 次定貨。從問(wèn)題描述中提取數(shù)據(jù)流圖的四種成分。首先
11、考慮數(shù)據(jù)的源點(diǎn)和終點(diǎn):? “采購(gòu)部每天需要一張定貨報(bào)表”? “通過(guò)放在倉(cāng)庫(kù)中的 CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)”可知:采購(gòu)員是終點(diǎn)倉(cāng)庫(kù)管理員是源點(diǎn)接下來(lái)考慮處理:? “采購(gòu)部每天需要一張定貨報(bào)表”-采購(gòu)部需要報(bào)表? “零件入庫(kù)或出庫(kù)稱為事務(wù),通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。”-事務(wù)的后果是改變庫(kù)存量可知:產(chǎn)生報(bào)表是一個(gè)處理處理事務(wù)是另一個(gè)處理最后考慮數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ):?系統(tǒng)把定貨報(bào)表送給采購(gòu)部-定貨報(bào)表?事務(wù)需要從倉(cāng)庫(kù)送到系統(tǒng)中-事務(wù)-需把事務(wù)數(shù)據(jù)存儲(chǔ)起來(lái)產(chǎn)生報(bào)表和處理事務(wù)在時(shí)間上不匹配,當(dāng)某種零件的庫(kù)存數(shù)量少于庫(kù)存量臨界值時(shí)就應(yīng)該再次定貨,而每天打印一次定貨報(bào)表-需把定貨信息
12、存儲(chǔ)起來(lái)可知:定貨報(bào)表、事務(wù)是數(shù)據(jù)流(數(shù)據(jù)流如報(bào)表包含零件編號(hào)零件名稱、定貨數(shù)量、目前價(jià)格、 主要供應(yīng)者和次要供應(yīng)者等信息。事務(wù)包含零件編號(hào)、事務(wù)類型、數(shù)量等。)庫(kù)存清單、定貨信息是數(shù)據(jù)存儲(chǔ)基本系統(tǒng)模型:功能數(shù)據(jù)流圖:注意符號(hào)小雷存清單m定貨信良進(jìn)一步分解處理事務(wù):才帚請(qǐng),定附/或*侑息 , I信息命名1)為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名?名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,而不是僅僅反映它的某些成分?不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“信息”、“輸入”之類)?如果在為某個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的2 )為處理命名?通常先為數(shù)
13、據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名,體現(xiàn)了人類習(xí)慣的“由表及里”的思考過(guò)程?名字應(yīng)該反映整個(gè)處理的功能?名字最好由一個(gè)具體的及物動(dòng)詞,加上一個(gè)具體的賓語(yǔ)組成。?通常名字中僅包括一個(gè)動(dòng)詞?如果在為某個(gè)處理命名時(shí)遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解應(yīng)注意的問(wèn)題1 )是數(shù)據(jù)流不是控制流畫(huà)數(shù)據(jù)流不是控制流;數(shù)據(jù)流圖反映系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱只能是名詞或名詞短語(yǔ),整個(gè)圖中不反映加工的執(zhí)行順序。2)一般不畫(huà)物質(zhì)流數(shù)據(jù)流反映的是能用計(jì)算機(jī)處理的數(shù)據(jù),并不是實(shí)物,因此系統(tǒng)的數(shù)據(jù)流圖上一般不要畫(huà)物質(zhì)流。3 )加工的畫(huà)法每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)數(shù)據(jù)流圖的
14、用途:1)建立新系統(tǒng)邏輯模型的工具2)作為與用戶和開(kāi)發(fā)人員交流信息的工具3)作為分析、設(shè)計(jì)乃至維護(hù)的依據(jù)數(shù)據(jù)字典:概念?數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合? DD: Data Dictionary?是對(duì)DFD中包含的所有元素的定義的集合?在分析、設(shè)計(jì)和維護(hù)過(guò)程中供查閱用 內(nèi)容1)數(shù)據(jù)流2)數(shù)據(jù)流分量(即數(shù)據(jù)元素)3)數(shù)據(jù)存儲(chǔ)4)處理(IPO圖或PDL更加方便)一一是對(duì)上述四類元素的定義 具體信息?名字一一數(shù)據(jù)、控制項(xiàng)、數(shù)據(jù)存儲(chǔ)或外部實(shí)體的主要名稱(例如作?別名一一該元素等價(jià)的其他名字,盡量減少?使用地點(diǎn)與方式一一使用數(shù)據(jù)或控制項(xiàng)的處理的列表,以及使用這些對(duì)象的方式為處理的輸入,從處理輸出,作為數(shù)據(jù)
15、存儲(chǔ),作為外部實(shí)體 )?內(nèi)容描述一一描述數(shù)據(jù)或控制項(xiàng)內(nèi)容的符號(hào) ?補(bǔ)充信息一一關(guān)于數(shù)據(jù)類型、預(yù)置值、限制等的其他信息復(fù)雜數(shù)據(jù)一般由數(shù)據(jù)項(xiàng)按順序,選擇,重復(fù),可選的方式組 成.進(jìn)行描述時(shí),使用下列符號(hào):符號(hào)含義舉例r被定義為1+與r=a+bJ 或卜或x=®b, x=ab或重復(fù)x=at x=3a8(-)可選x=(a)基本數(shù)據(jù)元素ka*5、數(shù)據(jù)字典的實(shí)現(xiàn)名字;定貨報(bào)表別名定貨信息搐逑:每天一次送蛤果購(gòu)員的需要定 貨的零件表定義定寅報(bào)表二器件編號(hào)+零件名棘 +定貨數(shù)*目前飾格,主K供應(yīng)者+次 要供應(yīng)者ttX:看出到打印機(jī)名字,W號(hào)翳為描述:唯一地標(biāo)識(shí)庫(kù)存清單中一個(gè)特定零件的關(guān)健域定義t零件博
16、號(hào)=8 1字符陽(yáng)位置:定黃報(bào)哀定貨信息庫(kù)存清單事務(wù)猴;翻髓描述:某個(gè)零件一次定貨的數(shù)定義;定貨效±1 數(shù)字)5位置i定貨報(bào)表定貨信息軟件項(xiàng)目的量化估算成本估算&工作量估算工程進(jìn)度安排行成本估算階段成本估算甘特圖:歷史悠久、應(yīng)用廣泛的進(jìn)度計(jì)劃工具進(jìn)度安排的任務(wù)網(wǎng)絡(luò)圖優(yōu)點(diǎn):簡(jiǎn)單,能動(dòng)態(tài)地反映開(kāi)發(fā)進(jìn)展缺點(diǎn):難以反映多個(gè)任務(wù)間的邏輯關(guān)系第三章傳統(tǒng)軟件工程方法:需求分析 需求分析1 目標(biāo)和任務(wù)2 需求獲取技術(shù)3 需求內(nèi)容4 需求建模方法需求分析任務(wù)問(wèn)題分析需求描述需求評(píng)審需求建模方法1. 面向數(shù)據(jù)流的分析方法2. 面向?qū)ο蟮姆治龇椒?. 面向數(shù)據(jù)結(jié)構(gòu)的分析方法需求工程的任務(wù)需求開(kāi)發(fā)包含
17、四個(gè)過(guò)程:需求獲取、需求整理與分析、需求定義、需求驗(yàn)證。需求分析的具體任務(wù):需求獲取、確定和分析需求、開(kāi)發(fā)原型系統(tǒng)、編寫(xiě)SRS需求驗(yàn)證、變更管理、修正計(jì)劃軟件需求及需求的分類軟件需求:以一種清晰、簡(jiǎn)潔、一致且無(wú)二義性的方式,描述用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望,是在開(kāi)發(fā)過(guò)程中對(duì)系統(tǒng)的約束。 (表達(dá)做什么而不描述如何做。)Requirement is the Basics of Quality, 軟件需求的作用 :分理解現(xiàn)實(shí)中的業(yè)務(wù)問(wèn)題,并作為軟件設(shè)計(jì)的基礎(chǔ);為軟件項(xiàng)目的成本、時(shí)間、風(fēng)險(xiǎn)估 計(jì)提供準(zhǔn)確的依據(jù);少開(kāi)發(fā)工作量,避免將時(shí)間與資源浪費(fèi)在設(shè)計(jì)與實(shí)現(xiàn)錯(cuò)誤的需求上;通
18、提供需求文檔和需求基線, 來(lái)有效的管理系統(tǒng)演化與變更; 為顧客與開(kāi)發(fā)團(tuán)隊(duì)之間正式合同的一部分;最終的驗(yàn)收測(cè)試提供標(biāo)準(zhǔn)和依據(jù)需求的分類:業(yè)務(wù)需求業(yè)務(wù)需求指導(dǎo)需求獲取用戶需求轉(zhuǎn)化用戶需求為系統(tǒng)需求 系統(tǒng)需求前四個(gè)為原始問(wèn)題空間、后面系統(tǒng)需求為解決方案空間。業(yè)務(wù)需求(Business Requirements:) 客戶對(duì)于系統(tǒng)的高層次目標(biāo)要求(highlevel objectives) ,定義了項(xiàng)目的 遠(yuǎn)景 和 范疇 (vision and scope)1、 業(yè)務(wù):屬于哪類業(yè)務(wù)范疇?應(yīng)完成什么功能?為何目的?2、 客戶:軟件為誰(shuí)服務(wù)?目標(biāo)客戶是誰(shuí)?3、 特性:區(qū)別于其他競(jìng)爭(zhēng)產(chǎn)品的特性是什么?4、 價(jià)
19、值:價(jià)值體現(xiàn)在那些方面?5、 優(yōu)先級(jí):功能特性的優(yōu)先級(jí)次序是什么?用戶需求(User Requirements):從用戶角度描述的系統(tǒng)功能需求與非功能需求,通常只涉及系統(tǒng)的外部行為而不涉及內(nèi)部特性。系統(tǒng)需求 (System Requirements, SR:) 系統(tǒng)應(yīng)該提供的功能或服務(wù),通常涉及用戶或外部系統(tǒng)與該系統(tǒng)之間的交互,不考慮系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)系統(tǒng)需求的類型分:功能性需求: 描述了系統(tǒng)與其實(shí)現(xiàn)環(huán)境之間的交互。 環(huán)境包括用戶和任何其他與該系統(tǒng)進(jìn)行交互的外部系統(tǒng)。功能需求可以以不同的詳細(xì)程度反復(fù)編寫(xiě)和細(xì)化功能需求描述應(yīng)該完整而且一致和準(zhǔn)確完整性意味著用戶所需的所有的服務(wù)應(yīng)該全部給出描述一致
20、性意味著需求描述不能前后矛盾準(zhǔn)確性是指需求不能出現(xiàn)模糊和二義性的地方非功能性需求:描述了不直接關(guān)聯(lián)到系統(tǒng)功能行為的系統(tǒng)的方方面面。 從各個(gè)角度對(duì)系統(tǒng)的約束和限制, 反映了客戶對(duì)軟件系統(tǒng)質(zhì)量和性能的額外要求,如響應(yīng)時(shí)間、數(shù)據(jù)精度、可靠性等??捎眯?Usability):是一種用戶可以學(xué)會(huì)的操作、輸入準(zhǔn)備、解釋一個(gè)系統(tǒng)或者構(gòu)件輸出的狀況。可靠性(Reliability):是系統(tǒng)或構(gòu)件在給定時(shí)間內(nèi)、指定條件下,完成其要求功能的能力。性能(Peformance)需求要考慮系統(tǒng)的定量屬性,比如響應(yīng)時(shí)間,吞吐量、有效性和準(zhǔn)確性??芍С中?Supportability):需求關(guān)注于在進(jìn)行部署后系統(tǒng)的變化狀況
21、,比如包括可適配性、可維護(hù)性、可移植性等。需求獲取技術(shù)略需求分析:分析方法結(jié)構(gòu)化分析方法SA核心思想是模塊化,自頂向下逐步求精對(duì)系統(tǒng)進(jìn)行分析。使用多個(gè)需求分析視圖,建立系統(tǒng)的數(shù)據(jù)、功能和行為模型數(shù)據(jù)流圖 DFD加工說(shuō)明PSPEC數(shù)據(jù)字典DD狀態(tài)遷移圖 STD關(guān)聯(lián)圖E-R 圖面向?qū)ο蠓治龇椒∣OA核心思想是利用 OO 的概念和方法對(duì)軟件需求建造模型,以使用戶需求逐步精確化、一致化、完全化。結(jié)構(gòu)化分析建模(與SA 區(qū)分 ),就是面向數(shù)據(jù)流的分析方法結(jié)構(gòu)化分析方法是一種傳統(tǒng)的系統(tǒng)建模技術(shù),它提出來(lái)一組提高軟件結(jié)構(gòu)合理性的準(zhǔn)則。結(jié)構(gòu)化分析 :使用數(shù)據(jù)流程圖、數(shù)據(jù)字典、結(jié)構(gòu)化英語(yǔ)、判定表和判定樹(shù)等工具,
22、來(lái)建立一種新的、稱為結(jié)構(gòu)化說(shuō)明書(shū)的目標(biāo)文檔需求規(guī)格說(shuō)明書(shū)。結(jié)構(gòu)化分析方法的 要點(diǎn) 是:面對(duì)數(shù)據(jù)流的分解和抽象;把復(fù)雜問(wèn)題自頂向下逐層分解結(jié)構(gòu)化分析建模數(shù)據(jù)模型I加工蠲格說(shuō)明數(shù)據(jù)對(duì)象播逃控制熱格說(shuō)明功能模型一行為模型分折模型其中,只要求數(shù)據(jù)流圖和數(shù)據(jù)字典。DFD是描繪系統(tǒng)邏輯模型的常用圖形工具。它描繪了信息流和數(shù)據(jù)從輸入端移動(dòng)到輸出端 的過(guò)程中所經(jīng)受的變換。在DFD中沒(méi)有具體的物理元素,只是描述信息在系統(tǒng)中的流動(dòng)、處理和存儲(chǔ)的邏輯過(guò)程, 表明系統(tǒng)必須完成的基本邏輯功能。DFD中只有四種元素,不包括任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),所以,絕大多數(shù)用戶可以理解和 評(píng)價(jià)它。DFD是分析和設(shè)計(jì)的工具。模型圖形工具
23、描述附加文檔核心數(shù)據(jù)字典使用或產(chǎn)生的所有數(shù)據(jù)對(duì)象數(shù)據(jù)建模實(shí)體關(guān)系圖數(shù)據(jù)對(duì)象間關(guān)系數(shù)據(jù)對(duì)象描述功能建模數(shù)據(jù)添圖數(shù)據(jù)移動(dòng)怎樣被轉(zhuǎn)換變換數(shù)據(jù)流的功能加工規(guī)格說(shuō)明行為建模狀態(tài)轉(zhuǎn)換圖系統(tǒng)行為模式(狀態(tài))不同狀態(tài)間轉(zhuǎn)換的方式控制規(guī)格說(shuō)明實(shí)體關(guān)系圖一E-R圖數(shù)據(jù)流圖-DFD圖狀態(tài)轉(zhuǎn)換圖一STD圖DFD組成成分:(2)命名數(shù)據(jù)流(數(shù)據(jù)存儲(chǔ)) 表格、單卷名稱 代表性數(shù)據(jù)名稱 使r理解的名稱錯(cuò)誤命名控制流 實(shí)物加工/處理頂層:軟件項(xiàng)目名動(dòng)賓結(jié)構(gòu)錯(cuò)設(shè)命名意義空洞的動(dòng)詞(計(jì)算,處理,加工)(3)層次分解法父圖一子圖平衡父圖一子圖不平衡(4)加工分解原則a) 1加工 7子加工b) 按問(wèn)題的邏輯特性分解c) 盡量少分解層
24、次d) 分解均勻模型中還需要描述數(shù)據(jù)是如何被加工處理的:1、結(jié)構(gòu)化語(yǔ)言 2、判定表3、判定樹(shù)判定表:13-47 1$gnCC_CYYYLL性別IMMMMiM姐他一SEsE«一A類保 的P<H類保險(xiǎn)d4C類保 險(xiǎn)q額外保 險(xiǎn)774判定樹(shù)是判定表的變形,一般情況下它比判定表更直且易于理解和使用未鬢保險(xiǎn)且U外收費(fèi) 年齡版一已婚一b類保除且K外收費(fèi)未婚r類保險(xiǎn)2k 年 IhMrx -工J-已it一族保險(xiǎn)年舞26 B費(fèi)保險(xiǎn)L年沿雙1 1類保險(xiǎn)校額外收曹贖保險(xiǎn)女性一年齡*1八一 一 國(guó) 指出以下描述的需求描述的問(wèn)題?目備注2016/5/23 16;28;2l1選項(xiàng)系統(tǒng)應(yīng)表現(xiàn)出良好的相應(yīng)速度
25、。系統(tǒng)必須用菜單驅(qū)動(dòng)。2太限利了,不利于以后的性改,可推護(hù) 注R差,在需求階段過(guò)于限制.必須,會(huì) 很制發(fā)揮3眼制廣段計(jì)的自由度4不屬于右重的范胃,電設(shè)計(jì)的陽(yáng)郁I*件.5平稔的定義不準(zhǔn)確.不能用來(lái)濯試 6嫌以駿ub難以柳試的需求.在數(shù)據(jù)錄入界面,應(yīng)該有10個(gè)按鈕。系統(tǒng)運(yùn)行時(shí)占用的內(nèi)存不得超過(guò)256KB。電梯應(yīng)平穩(wěn)運(yùn)行。即使系統(tǒng)崩潰,也不能絲毫損壞用戶數(shù)據(jù)。第四.傳統(tǒng)軟件工程方法:軟件設(shè)計(jì)中的總體設(shè)計(jì)。軟件設(shè)計(jì)兩個(gè)階段:概要設(shè)計(jì) 詳細(xì)設(shè)計(jì)作用:SE核心過(guò)程軟件設(shè)計(jì)階段的任務(wù)從工程管理的角度,分為總體設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段;技術(shù)的角度,分體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)和過(guò)程設(shè)計(jì)總體設(shè)計(jì)分兩個(gè)階段:
26、系統(tǒng)設(shè)計(jì)階段確定系統(tǒng)的具體實(shí)現(xiàn)方案。結(jié)構(gòu)設(shè)計(jì)階段確定軟件結(jié)構(gòu)確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。總體設(shè)計(jì)的重要性: 總體設(shè)計(jì)是軟件開(kāi)發(fā)過(guò)程中一個(gè)非常重要的階段??梢钥隙?,如果軟件系統(tǒng)沒(méi)有經(jīng)過(guò)認(rèn)真細(xì)致的總體設(shè)計(jì),就直接考慮它的算法或直接編寫(xiě)源程序,這個(gè)系 統(tǒng)的質(zhì)量就很難保證。 許多軟件就是因?yàn)榻Y(jié)構(gòu)上的問(wèn)題,使得它經(jīng)常發(fā)生故障, 而且很難維護(hù)結(jié)構(gòu)化分析與結(jié)構(gòu)化設(shè)計(jì)的關(guān)系THE ANALYSIS MODELTHE DESIGN MODEL什么是好的軟件設(shè)計(jì)軟件質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn):定性評(píng)價(jià):用戶角度:達(dá)到需求、界面友好、簡(jiǎn)單易學(xué)開(kāi)發(fā)人員角度:良結(jié)構(gòu)、易測(cè)試、易維護(hù)、可移植定量評(píng)價(jià)
27、:軟件度量宏觀標(biāo)準(zhǔn):可靠性良軟件結(jié)構(gòu)文檔齊全軟件結(jié)構(gòu)軟件的各個(gè)組成部分之間的關(guān)系的表示,決定了整個(gè)系統(tǒng)的結(jié)構(gòu)和質(zhì)量扇出:直接由一個(gè)塊所控制的塊數(shù)扇入:直接調(diào)用它的上級(jí)塊數(shù)目深度:控制的總層數(shù)寬度:跨度最寬層的跨度數(shù)L良軟件結(jié)構(gòu)b具有層次性.無(wú)回路塊調(diào)用的軟件給構(gòu)。蝶ft型何電T/7S*非良結(jié)構(gòu)的調(diào)整M絡(luò)結(jié)構(gòu)良結(jié)構(gòu)模塊化依據(jù):復(fù)雜程度工作量模塊重要特征:1 .抽象:忽略細(xì)節(jié),分層理解問(wèn)題,自頂向下層層細(xì)化。2 .信息隱藏細(xì)節(jié)隱藏可理解性修改副作用小錯(cuò)誤副作用小模塊獨(dú)立性度量:耦合一塊間聯(lián)系內(nèi)聚一塊內(nèi)聯(lián)系耦合零耦合:塊間無(wú)任何連接數(shù)據(jù)耦合:兩模塊通過(guò)參數(shù)交換信息,只交換數(shù)據(jù)??刂岂詈希簜鬟f的信息有
28、控制信息(有時(shí)以數(shù)據(jù)形式出現(xiàn))公共環(huán)境耦合:兩個(gè)多個(gè)模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用問(wèn)題:公共部分的改動(dòng)將影響所有調(diào)用它的模塊公共部分的數(shù)據(jù)存取無(wú)法控制復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加內(nèi)容耦合:一個(gè)模塊訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)一個(gè)模塊不通過(guò)正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部?jī)蓚€(gè)模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編程序中) 一個(gè)模塊有多個(gè)入口耦合度與軟件結(jié)構(gòu)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。內(nèi)聚高內(nèi)聚意味著松耦合,內(nèi)聚更重要偶然內(nèi)聚 邏輯內(nèi)聚 時(shí)間內(nèi)聚 過(guò)程內(nèi)聚 通信內(nèi)聚 順序內(nèi)聚 功能內(nèi)聚內(nèi)聚度與軟件結(jié)構(gòu)軟件模塊分解的過(guò)程:業(yè)務(wù)域分解/問(wèn)題域分
29、解領(lǐng)域?qū)<遥髽I(yè)戰(zhàn)略;系統(tǒng) 子系統(tǒng)業(yè)務(wù)功能域分解服務(wù),資源;子系統(tǒng)拆分為多個(gè)服務(wù) 技術(shù)域分解功能需求和非功能需求,當(dāng)前 IT技術(shù);業(yè)務(wù)域和業(yè)務(wù)功能域分解出的元素進(jìn)行整合在模塊分解時(shí),要注意以下幾點(diǎn):低耦合高內(nèi)聚:“從弱耦合入手,切斷聯(lián)系”層次性:先業(yè)務(wù)后技術(shù),循序漸進(jìn)正交原則:相互獨(dú)立,職責(zé)沒(méi)有重疊抽象原則穩(wěn)定性原則復(fù)用性原則度量(迭代演化面向象)軟件度量度量測(cè)量估算軟件度量軟件復(fù)雜性度量規(guī)模文本復(fù)雜性控制結(jié)構(gòu)的復(fù)雜性軟件可靠性度量系統(tǒng)故障率軟件修復(fù)與軟件有效性軟件可靠性估算軟件設(shè)計(jì)的啟發(fā)規(guī)則1.提高模塊獨(dú)立性松耦合,高內(nèi)聚增加內(nèi)聚,減少耦合2模塊規(guī)模適中3 .深度/寬度/扇入/扇出適當(dāng)4 .
30、作用域在控制域內(nèi)控制域:模塊本身以及所有直接或間接從屬于它的模塊的集合 作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合SI/ Lf flagTenA Theo B”一M的控制域曰"CM=、LA,B,C1 口 弓 A的作用域二B, C修改軟件結(jié)構(gòu)判斷點(diǎn)上移受影響塊下移5 .降低接口的復(fù)雜程度接口復(fù)雜可能表明模塊的獨(dú)立性差接口復(fù)雜或不一致(看起來(lái)傳遞的數(shù)據(jù)間無(wú)聯(lián)系),是緊耦合或低內(nèi)聚的征 兆6、單出單入,避免內(nèi)容耦合7、模塊功能可預(yù)測(cè)相同輸入必產(chǎn)生相同輸出模塊中使用全局變量可能導(dǎo)致不可預(yù)測(cè)軟件結(jié)構(gòu)劃分方式水平劃分按主要功能定義模塊結(jié)構(gòu)的各分支頂層控制模塊,下層輸入、處理、輸出三個(gè)分支優(yōu)點(diǎn)
31、:功能分離,易修改擴(kuò)充缺點(diǎn):模塊接口傳遞數(shù)據(jù)多,信息流的整體控制復(fù)雜化 垂直劃分自頂向下逐層分布工作頂層模塊控制,低層模塊實(shí)際處理優(yōu)點(diǎn):對(duì)低層模塊的修改不易引起副作用便于將來(lái)的維護(hù)軟件系統(tǒng)設(shè)計(jì)技術(shù)面向數(shù)據(jù)流(DFD)的設(shè)計(jì)方法面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法原型法結(jié)構(gòu)化設(shè)計(jì)(Structured Design, SD)基于模塊化、自頂向下求精、結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來(lái)面向數(shù)據(jù)流的設(shè)計(jì)方法數(shù)據(jù)流圖映射到軟件結(jié)構(gòu)用啟發(fā)式規(guī)則對(duì)結(jié)構(gòu)進(jìn)行細(xì)化面向數(shù)據(jù)流的設(shè)計(jì)方法(結(jié)構(gòu)化設(shè)計(jì)SD)軟件結(jié)構(gòu)設(shè)計(jì)中的圖形工具層次圖(H圖)系統(tǒng)結(jié)構(gòu)圖; Hierarchy描述軟件結(jié)構(gòu),而非數(shù)據(jù)結(jié)構(gòu)矩形框:模塊連線:調(diào)用關(guān)系,而
32、非組成關(guān)系T蕓統(tǒng)1-I- _ -1 I- 1 - - - - - L _r輸入 耦出 舉陽(yáng)和標(biāo)題I存儲(chǔ) 椅室;編出錄I格式他HIPO 圖=H 圖+ IPO 表H 圖 + IPO 圖(Input-process-output Diagram)在H圖中,除最頂層方框外,在每一個(gè)方框內(nèi)加上一個(gè)編號(hào),編號(hào)次序依次 為:1.0,2.0,;2.1,2.2,;3.1,3.2-對(duì)于H圖中的每一個(gè)方框,有一張IPO圖描述這個(gè)方框所代表模塊的處理過(guò)程期國(guó)中每個(gè)方震相時(shí)度.有一米IPO圖據(jù)崎揖個(gè)方隹代表的模狄的姓 理付程-H1刖圖中州林房1P0國(guó)也部應(yīng)該明值地標(biāo)出它所施蛉的攜塊賽 H國(guó)中的號(hào),以便埴跪了解揖力黑塊在
33、軟件結(jié)構(gòu)中的位汗Z1I 丁系垃結(jié)構(gòu)圖-模塊聯(lián)系圖1 .結(jié)構(gòu)圖是軟件結(jié)構(gòu)設(shè)計(jì)的另一種工具,與層次圖類似。2 .它在層次圖的每一個(gè)方框內(nèi)注明的是模塊的名字或主要功能。3 .方框之間的直線表示模塊的調(diào)用關(guān)系。4 .用帶注解的箭頭表示模塊調(diào)用過(guò)程中傳遞的信息【例】結(jié)構(gòu)圖產(chǎn)生最佳解1得到好事人所 惕限 輸出結(jié)果謝*人M輸入結(jié)果格式犯顯示結(jié)果神定系繚中擇個(gè)拜仔是由呼歧模塊組假的, 以及這些模塊相互間的美系Q制用層次壓和IP"圖或IM7中的信息可以得到模塊屬用時(shí)傳遞的信息, 即站構(gòu)圖,僅用于檢疊散計(jì)的正確性和模塊獨(dú)立性.3站梅國(guó)一般不入文檔.基于數(shù)據(jù)流(SD )的設(shè)計(jì)方法又稱為結(jié)構(gòu)化設(shè)計(jì)方法;目標(biāo)
34、:給出設(shè)計(jì)軟件結(jié)構(gòu)的一個(gè)系統(tǒng)化途徑;作用:該方法定義了一些不同的“映射”,利用這些映射可以把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)圖。另注:通過(guò)結(jié)構(gòu)化分析來(lái)得到 DFD , SA是結(jié)構(gòu)化需求分析、 SD是結(jié)構(gòu)化設(shè)計(jì)、SP是結(jié)構(gòu) 化實(shí)現(xiàn)數(shù)據(jù)流的類型:變換流、事務(wù)流、混合型1 .變換流:所有信息都可以歸結(jié)為變換流變換流參看圖形,信息沿輸入通路進(jìn)入系統(tǒng), 同時(shí)由外部形式變換成內(nèi)部形式, 進(jìn)入系統(tǒng)的 信息通過(guò)變換中心,經(jīng)過(guò)加工處理以后再沿輸出通路變換成外部形式離開(kāi)軟件系統(tǒng)。當(dāng)數(shù)據(jù)流具有這些特征時(shí),這種信息流稱為變換流。變換型的軟件結(jié)構(gòu)圖主慎塊職得AA變換成B2 .事務(wù)流:當(dāng)信息流具有明顯的“事務(wù)中心”時(shí),可歸結(jié)為事務(wù)
35、流個(gè)來(lái)執(zhí)輸入通路到達(dá)一個(gè)處理 T ,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出 行。這種“以事務(wù)為中心的”的數(shù)據(jù)流,稱為“事務(wù)流”。T稱為事務(wù)中心接收輸入數(shù)據(jù);分析每個(gè)事務(wù)以確定它的類型;根據(jù)事務(wù)類型選取一條活動(dòng)通路事務(wù)型軟件結(jié)構(gòu)圖3.混合型,兼具兩種特征。面向數(shù)據(jù)流方法的設(shè)計(jì)過(guò)程定要重點(diǎn)看總體設(shè)計(jì)部分后面的P140左右的例題第五傳統(tǒng)軟件工程方法:軟件設(shè)計(jì)中的詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的任務(wù) 結(jié)構(gòu)化程序設(shè)計(jì) 詳細(xì)設(shè)計(jì)的工具 面向數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 人機(jī)界面設(shè)計(jì) 詳細(xì)設(shè)計(jì)說(shuō)明書(shū) 程序復(fù)雜性的度量詳細(xì)設(shè)計(jì)的任務(wù):1. 用偽代碼、圖或表等工具描繪 每個(gè) 模塊的算法流程。2. 確定每個(gè)模塊 的局部數(shù)據(jù)結(jié)構(gòu) 、數(shù)
36、據(jù)庫(kù)的物理結(jié)構(gòu)、模塊間的接口和輸入輸出數(shù)據(jù)3. 為每個(gè)模塊設(shè)計(jì)測(cè)試用例 ,使得編碼階段對(duì)具體模塊的調(diào)試測(cè)試更加方便4. 編寫(xiě)詳細(xì)設(shè)計(jì) 說(shuō)明書(shū)結(jié)構(gòu)化程序設(shè)計(jì)(SP結(jié)構(gòu)化實(shí)現(xiàn),與結(jié)構(gòu)化設(shè)計(jì)SA區(qū)分)a) 高效率- 良結(jié)構(gòu)b) 三種基本控制結(jié)構(gòu)、單入單出程序代碼僅使用順序、選擇和循環(huán)這三種基本的 控制結(jié)構(gòu) 進(jìn)行連接, 且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,只在檢測(cè)錯(cuò)誤和退出循環(huán)處使用非基本結(jié)構(gòu)技術(shù)。詳細(xì)設(shè)計(jì)的工具圖形描述程序流程圖(PFC)趨勢(shì)是使用的人越來(lái)越少。優(yōu)點(diǎn):直觀清晰、廣泛易學(xué)缺點(diǎn):不能逐步求精,不易表示數(shù)據(jù)結(jié)構(gòu),隨意轉(zhuǎn)移控制造成非結(jié)構(gòu)化盒圖( N-S)本質(zhì)上的改進(jìn)是沒(méi)有箭頭,不能隨意轉(zhuǎn)移控
37、制。Selective"匕"®PAD圖Call subroutineSelectiveELSESequentialWhik PLntiJ PLoopso語(yǔ)句標(biāo)號(hào)N-S圖與PAD的轉(zhuǎn)換DefinitionPAD圖優(yōu)點(diǎn):本質(zhì)上的改進(jìn)是層次清晰。結(jié)構(gòu)化程序結(jié)構(gòu)清晰表現(xiàn)程序邏輯,易讀、易懂、易記描繪數(shù)據(jù)結(jié)構(gòu)支持自頂向下、逐步求精方法的使用PAD圖高級(jí)程序設(shè)計(jì)語(yǔ)言表格描述判定表判定樹(shù)語(yǔ)言描述過(guò)程設(shè)計(jì)語(yǔ)言PDL/偽碼PDL codes優(yōu)點(diǎn):可作注釋直接插在源程序中、編輯簡(jiǎn)單、缺點(diǎn):不如“圖”直觀、復(fù)雜條件一不如判定表清晰、簡(jiǎn)單面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法JSD法:將Jackson方
38、法用于大系統(tǒng)設(shè)計(jì)時(shí)會(huì)出現(xiàn)復(fù)雜的難以對(duì)付的結(jié)構(gòu)沖突。Jackson圖順序結(jié)構(gòu)上由h. c. 口s伏也索字用成選擇結(jié)構(gòu)根據(jù)收件A是D逋C出口中的某T.注意:B,匚D仃上用的寸同增重復(fù)結(jié)構(gòu)A由EIHJRN次(N>0>生成.itfts B的在上用的星號(hào)優(yōu)點(diǎn)便于表示層次結(jié)構(gòu),結(jié)構(gòu)的自頂向下分解,直觀,可讀性好數(shù)據(jù)入手簡(jiǎn)化數(shù)據(jù)處理程序的設(shè)計(jì)既能表示數(shù)據(jù)結(jié)構(gòu),也能表示程序結(jié)構(gòu)缺點(diǎn)沒(méi)有表示條件,不易直接把圖翻譯成程序,斜線不易打印 模塊與獨(dú)立性原則沒(méi)有給予應(yīng)有的重視求提供對(duì)復(fù)雜系統(tǒng)設(shè)計(jì)過(guò)程的支持改進(jìn)的Jackson圖選舞結(jié)構(gòu)注;順序結(jié)構(gòu)中的B、C.D中任-個(gè) 都不能是選擰山現(xiàn)或宣黑出現(xiàn)的元素可選結(jié)
39、構(gòu)表示A或者是元素B或者不出現(xiàn)重復(fù)結(jié)構(gòu)Jackson 方法1 .畫(huà)數(shù)據(jù)結(jié)構(gòu)的 Jackson圖2 .找輸入一輸出數(shù)據(jù)結(jié)構(gòu)的對(duì)應(yīng)關(guān)系3 .以輸出數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),導(dǎo)出程序結(jié)構(gòu)的Jackson圖有關(guān)系的數(shù)據(jù)單元-合畫(huà)一個(gè)處理框輸入數(shù)據(jù)結(jié)構(gòu)中余下的數(shù)據(jù)單元-各畫(huà)一個(gè)輸出數(shù)據(jù)結(jié)構(gòu)中余下的數(shù)據(jù)單元-各畫(huà)一個(gè)4 .列出所有操作、條件5 .偽碼表不程序【例】統(tǒng)計(jì)正文文件空格數(shù)一個(gè)正文文件由若干個(gè)記錄組成,每個(gè)記錄是一 個(gè)字符串,要求統(tǒng)計(jì)每個(gè)記錄中空格字符的個(gè)數(shù), 以及文件中空格字符的總個(gè)數(shù).要求的輸出數(shù)據(jù)格式是;每復(fù)制一行輸入字符串 之后,另起一行印出這個(gè)字符串中的空格數(shù),最 后印出文件中空格的總個(gè)數(shù).數(shù)據(jù)結(jié)
40、構(gòu)的Jackson圖1層3層5層輸出致?lián)Y(jié)構(gòu)愉入數(shù)據(jù)結(jié)構(gòu)I星2層3層層程序結(jié)構(gòu)的Jackson圖5«空格.2)空榭kkii11衰格體I空陪叁敷】由 1MN,1(1)文件結(jié)束1(2)字符串結(jié)束6(3)字符是空格sum空將政totalsum空格總敷pointer當(dāng)項(xiàng)位置分配了所有操作、條件后的程序結(jié)構(gòu)圖JACKSON的偽碼表示程序(1)順序結(jié)構(gòu)A seqBCDA end(2)選擇結(jié)構(gòu)A select conditionlBA or condition2CA or condition3DA end(3)重復(fù)結(jié)構(gòu)A iter until (或 while) condition BA end偽
41、碼表示程序處理過(guò)程筑計(jì)空格 打開(kāi)文件 京八字櫛申程序體ilur "Mil文件總束 處題字將串Kq 印字符串變q印出字符串 印字普昂EdMinn - I)piiatcr! = I 分析字符申until手卷嫡束 分析字符、由出字符是空格處*iuut =+um*E poinRn = puiuirr t L處0空修聞4分析字符前字符不是空贛處通非空格yqpuinkr: p-uiiileF +1 處非空將詞分析宇格ml分析學(xué)粉審md印空格Zl印出空格我目印空格敏的dtiimkumi =+ tiE該人字椅*處現(xiàn)字秘ed程序體w4印總H*(*q 印出空格息藪即息效。地美南文件停止峽計(jì)生格vM第六章
42、.傳統(tǒng)軟件工程方法:實(shí)現(xiàn)與測(cè)試編碼軟件測(cè)試基礎(chǔ)測(cè)試用例設(shè)計(jì)軟件測(cè)試步驟與策略調(diào)試軟件可靠性一、編碼語(yǔ)言:1、語(yǔ)言的元計(jì)算模型等價(jià)一功能等價(jià)程序設(shè)計(jì)語(yǔ)言的特點(diǎn)及其對(duì)軟件的影響:機(jī)器求解問(wèn)題的基本工具:思維方式、解題方式、人機(jī)通信的方式、理解程序的難以程度選擇程序設(shè)計(jì)語(yǔ)言的理想標(biāo)準(zhǔn):模塊化機(jī)制、語(yǔ)言特點(diǎn)、開(kāi)發(fā)工具、獨(dú)立編譯機(jī)制、標(biāo) 準(zhǔn)化選擇程序設(shè)計(jì)語(yǔ)言的實(shí)用標(biāo)準(zhǔn):系統(tǒng)用戶的要求、工程規(guī)模、程序員的知識(shí)、軟件的應(yīng)用領(lǐng)域程序設(shè)計(jì)風(fēng)格:“好”程序的標(biāo)準(zhǔn)源程序代碼的邏輯簡(jiǎn)明清晰、易讀易懂遵循原則:程序內(nèi)部的文檔、數(shù)據(jù)說(shuō)明、語(yǔ)句構(gòu)造盡量簡(jiǎn)單而直接、輸入輸出規(guī)則、效率 效率:效率主要指 處理機(jī)時(shí)間和存儲(chǔ)器容量
43、 兩個(gè)方面關(guān)于效率的三條原則第一,效率是性能要求,應(yīng)該在需求分析階段確定效率方面的要 求;第二,效率是靠好設(shè)計(jì)來(lái)提高的;第三,程序的效率和程序的簡(jiǎn)單度是一致的,不要犧牲程序的清晰性和可讀性來(lái)不必要地提高效率三個(gè)方面程序的運(yùn)行時(shí)間存儲(chǔ)器效率輸入輸出效率二、軟件測(cè)試基礎(chǔ)測(cè)試目標(biāo):為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程測(cè)試用例:一組用于測(cè)試的輸入數(shù)據(jù)和預(yù)期得出的正確輸出測(cè)試方案:測(cè)試用例和用例預(yù)定要檢驗(yàn)的功能、測(cè)試環(huán)境的規(guī)劃、測(cè)試工具的選擇。測(cè)試計(jì)劃:要進(jìn)行的測(cè)試的組織、資源、風(fēng)險(xiǎn)、原則和進(jìn)度安排等進(jìn)行規(guī)定和約束測(cè)試階段的信息流軟件測(cè)試方法分:靜態(tài)測(cè)試 (人工檢查代碼,不在機(jī)器上運(yùn)行 )和動(dòng)態(tài)測(cè)試(白
44、盒與黑盒)。窮盡測(cè)試:(不可能,只能選少量”最有效”做到完備):包含所有可能情況的測(cè)試黑盒測(cè)試一一功能測(cè)試目的:功能是否正常使用?輸入一正確輸出?保持外部信息的完整性?時(shí)機(jī):測(cè)試的后期,如:集成測(cè)試、確認(rèn)測(cè)試白盒測(cè)試關(guān)注軟件內(nèi)部邏輯結(jié)構(gòu)(control structure)測(cè)試每條邏輯通路檢查斷點(diǎn)(break point) 狀態(tài)測(cè)試方案對(duì)程序邏輯的覆蓋程度決定測(cè)試的完全性程度 時(shí)機(jī):測(cè)試的早期,例如:?jiǎn)卧獪y(cè)試成本高,通常對(duì) 結(jié)構(gòu)比較復(fù)雜的模塊 進(jìn)行白盒測(cè)試三、測(cè)試用例設(shè)計(jì)黑盒法一一依據(jù)對(duì)程序的需求和說(shuō)明等價(jià)劃分法邊界值分析法錯(cuò)誤推測(cè)法白盒法邏輯覆蓋控制結(jié)構(gòu)測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)
45、試輸入、執(zhí)行條件、執(zhí)行步驟以及預(yù)期結(jié)果等等。例如,系統(tǒng)登錄界面:測(cè)試目標(biāo):輸入正確的用戶名和正確的密碼是否有正確的反應(yīng).測(cè)試環(huán)境或條件:idndoirs操作系統(tǒng)和XXX軟件,等等輸入數(shù)據(jù):正確的用戶名和正確的密碼步驟:打開(kāi)系統(tǒng),輸入正確的用戶名,輸入正確的密碼,點(diǎn)擊”登 錄”,顯示登錄成功,用戶進(jìn)入系統(tǒng)期望結(jié)果:登錄成功黑盒測(cè)試技術(shù)a.黑盒(功能)測(cè)試i.等價(jià)類劃分ii.邊界值分析iii.錯(cuò)誤推測(cè)白盒測(cè)試技術(shù)白盒測(cè)試技術(shù)是基于程序的內(nèi)部實(shí)現(xiàn)結(jié)構(gòu)和邏輯尋找軟件中的缺陷覆蓋準(zhǔn)則可以作為測(cè)試停止或/和選取測(cè)試數(shù)據(jù)的標(biāo)準(zhǔn)軟件測(cè)試的步驟與策略一工分計(jì)碼統(tǒng)求設(shè)編ST單元測(cè)試 /一集成測(cè)試 <-確認(rèn)測(cè)
46、試 .-系統(tǒng)測(cè)試平行運(yùn)行關(guān)系重大的軟件產(chǎn)品在驗(yàn)收之后往往要經(jīng)過(guò)一段平行 運(yùn)行時(shí)間的考驗(yàn)._ _第七章傳統(tǒng)軟件工程方法:維護(hù)。軟件維護(hù)的概念和內(nèi)容軟件維護(hù)的過(guò)程軟件的可維護(hù)性軟件再工程過(guò)程一、軟件維護(hù)的概念和內(nèi)容定義: 就是在軟件已經(jīng)交付使用之后,因?yàn)橄铝性蚨薷能浖倪^(guò)程。軟件中的 bug 需要修復(fù) 改正性維護(hù)軟件在使用過(guò)程中,新的需求不斷出現(xiàn) 完善性維護(hù)商業(yè)環(huán)境在不斷地變化、計(jì)算機(jī)硬件和軟件環(huán)境的升級(jí)需要更新現(xiàn)有的系統(tǒng) 適應(yīng)性維護(hù)軟件的性能和可靠性需要進(jìn)一步改進(jìn) 預(yù)防性維護(hù)類型 :校正性維護(hù)/ 糾錯(cuò)性維護(hù)( corrective maintenace)適應(yīng)性維護(hù)(adaptive main
47、tenance)完善性維護(hù)(perfective maintenance)預(yù)防性維護(hù)(preventive maintenace)維護(hù)的代價(jià):表面上看來(lái)合理的改錯(cuò)或修改不能完全滿足用戶的要求,就會(huì)引起用戶的不滿。由于維護(hù)時(shí)對(duì)軟件的改動(dòng),哪怕是很小的改動(dòng),在軟件中也會(huì)引入潛在的隱患或錯(cuò)誤,使得整個(gè)軟件的質(zhì)量降低, 特別是不可再現(xiàn)錯(cuò)誤。在開(kāi)發(fā)工作期間,由于工作需要必須把軟件工程師調(diào)去從事維護(hù)工作,就會(huì)對(duì)開(kāi)發(fā)工作造成不良影響。軟件維護(hù)會(huì)使生產(chǎn)率大幅度下降維護(hù)中的問(wèn)題閱讀和理解問(wèn)題人員問(wèn)題文檔資料軟件的修改軟件維護(hù)相對(duì)于軟件系統(tǒng)開(kāi)發(fā)工作來(lái)說(shuō)則毫無(wú)吸引力二、軟件維護(hù)過(guò)程軟件維護(hù)過(guò)程定義:本質(zhì)上是修改和壓
48、縮了的軟件定義和開(kāi)發(fā)過(guò)程。建立維護(hù)組織提出維護(hù)申請(qǐng)報(bào)告及評(píng)價(jià)維護(hù)實(shí)施 保存維護(hù)記錄 評(píng)價(jià)維護(hù)活動(dòng)三、可維護(hù)性軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯(cuò)誤和缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充或壓縮的容易程度可維護(hù)性的決定因素可理解性可測(cè)試性可修改性可靠性可移植性可使用性效率。提高可維護(hù)性的措施需求分析編碼清晰、易讀、結(jié)構(gòu)好編碼規(guī)則.風(fēng)格T易修改SP設(shè)計(jì)口通用性高的PL結(jié)構(gòu)層次清晰.獨(dú)立性測(cè)試強(qiáng).修改局部化測(cè)試充分靈活的數(shù)據(jù)邏輯結(jié)構(gòu)才產(chǎn)一適應(yīng)處理的變化乂歸維護(hù)的副作用修改軟件后導(dǎo)致新錯(cuò)誤的發(fā)生編碼的副作用數(shù)據(jù)的副作用文檔資料的副作用完善的設(shè)計(jì)文檔資料可以減少數(shù)據(jù)的副作用。利用文檔資料對(duì)數(shù)據(jù)及其用途所
49、作的詳細(xì)描 述,提供了數(shù)據(jù)項(xiàng)、記錄、文件及其他結(jié)構(gòu)與軟件模塊間相關(guān)的參照表,是維護(hù)期間對(duì)數(shù) 據(jù)結(jié)構(gòu)進(jìn)行修改的主要依據(jù)。第七章軟件管理軟件管理內(nèi)容開(kāi)發(fā)計(jì)劃與進(jìn)度管理成本估算與控制人員管理、組織管理匚二日.右質(zhì)量管理文檔管理軟件管理原則軟件生存期按階段確認(rèn)質(zhì)量檢查自頂向下 SP/OOP職責(zé)分明人員少而精不斷充實(shí)軟件管理特點(diǎn)知識(shí)密集,非實(shí)物性單品生產(chǎn),開(kāi)發(fā)過(guò)程不確定開(kāi)發(fā)周期長(zhǎng)內(nèi)容復(fù)雜,正確性難保證勞動(dòng)密集,自動(dòng)化程度低軟件用法繁瑣,維護(hù)困難,費(fèi)用高指定軟件開(kāi)發(fā)計(jì)劃三要素:規(guī)模 人員 交付日期進(jìn)度安排與控制軟件開(kāi)發(fā)進(jìn)度安排,實(shí)際上就是對(duì)軟件開(kāi)發(fā)中各個(gè)階段所需要的工作量,結(jié)合項(xiàng)目的起始時(shí)間,體現(xiàn)在一張編制的進(jìn)度表里(甘特圖)。軟件開(kāi)發(fā)的進(jìn)度往往與人的因素有關(guān),對(duì)人的依賴性很大。進(jìn)度控制是對(duì)計(jì)劃執(zhí)行情況的監(jiān)督、調(diào)整和修改。成本管理與控制工時(shí)數(shù)成本管理開(kāi)發(fā)設(shè)備的購(gòu)置、使用管理人員管理、組織管理人員管理高技術(shù)、高知識(shí),個(gè)人作用突出多層次一一合理配備各類人員知識(shí)更新快流動(dòng)性大一一保持人員相對(duì)穩(wěn)定,吸引優(yōu)秀人才組織管理集中式一一易決斷、易管理,難發(fā)揮多數(shù)人的積極性 非集中式一一發(fā)揮大家主觀能動(dòng)性、難管理質(zhì)量管理軟件生產(chǎn)分階段 規(guī)范化 合理分工度量軟件
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人力外包招聘合同范本
- 2025年德州年貨運(yùn)從業(yè)資格證考試題庫(kù)
- 勞動(dòng)合同范本 股權(quán)
- 企業(yè)借貸合同質(zhì)押合同范本
- 代理分紅合同范本
- 買(mǎi)門(mén)頭房合同范本
- 動(dòng)遷協(xié)議合同范本
- 東莞擺攤餐飲轉(zhuǎn)讓合同范本
- 任意拆解合同范本
- 制作車輛抵押合同范本
- 貴州青巖古鎮(zhèn)探古跡
- 機(jī)械制圖自編教材
- DRG疾病診斷相關(guān)組醫(yī)保支付培訓(xùn)
- 【數(shù)字媒體藝術(shù)的應(yīng)用國(guó)內(nèi)外文獻(xiàn)綜述2500字】
- Unit6Craftsmanship+Listening+an課件-中職高教版(2021)基礎(chǔ)模塊2
- 輕鋼別墅-建筑流程
- 企業(yè)人力資源內(nèi)部審核檢查表
- 《素描》課件-第一章 素描入門(mén)
- 一種仿生蛇形機(jī)器人的結(jié)構(gòu)設(shè)計(jì)
- GB/T 42828.1-2023鹽堿地改良通用技術(shù)第1部分:鐵尾砂改良
- 高二數(shù)學(xué)(含創(chuàng)意快閃特效)-【開(kāi)學(xué)第一課】2023年高中秋季開(kāi)學(xué)指南之愛(ài)上數(shù)學(xué)課
評(píng)論
0/150
提交評(píng)論