習題課(軟件工件-信息系統(tǒng)分析)_第1頁
習題課(軟件工件-信息系統(tǒng)分析)_第2頁
習題課(軟件工件-信息系統(tǒng)分析)_第3頁
習題課(軟件工件-信息系統(tǒng)分析)_第4頁
習題課(軟件工件-信息系統(tǒng)分析)_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、習題課習題課軟件開發(fā)成本軟件開發(fā)成本成本估算成本估算需求分析需求分析數據流圖數據流圖系統(tǒng)分析系統(tǒng)分析動態(tài)模型動態(tài)模型結構化設計結構化設計模塊獨立性模塊獨立性系統(tǒng)測試系統(tǒng)測試測試用例設計測試用例設計系統(tǒng)運行維護系統(tǒng)運行維護維護性維護性1軟件開發(fā)成本軟件開發(fā)成本成本估算成本估算1 1、美國一家公司在美國一家公司在19821982年計劃用年計劃用FORTRANFORTRAN語言開發(fā)一個在語言開發(fā)一個在VAX750VAX750計算機上運行的應用程序,估計這個程序的長度為計算機上運行的應用程序,估計這個程序的長度為1000010000條條FORTRANFORTRAN指令。如果平均每天可以開發(fā)出指令。如果

2、平均每天可以開發(fā)出1010條條FORTRANFORTRAN指令,請問:指令,請問:(1 1)開發(fā)這個應用程序將用多少人日?開發(fā)這個應用程序將用多少人日?(2 2)假設程序員的月平均工資為假設程序員的月平均工資為40004000美元,每月按美元,每月按2020個工作個工作日計算,這個軟件的成本是多少美元?日計算,這個軟件的成本是多少美元?(3 3)19821982年年VAX750VAX750計算機硬件價格約為計算機硬件價格約為125000125000美元,在美元,在那一年這個軟件的成本在總成本中占多大比例?那一年這個軟件的成本在總成本中占多大比例?(4 4)2020年后,一臺性能遠遠優(yōu)于年后,一

3、臺性能遠遠優(yōu)于VAX750VAX750的微型計算機的價的微型計算機的價格約為格約為20002000美元,這時軟件開發(fā)生產率已提高到平均每人每美元,這時軟件開發(fā)生產率已提高到平均每人每天可以開發(fā)出天可以開發(fā)出4040條指令,而程序員的月平均工資也已漲到條指令,而程序員的月平均工資也已漲到80008000美元。如果在美元。如果在20022002年開發(fā)上述年開發(fā)上述FORTRANFORTRAN應用程序的應用程序的成本在總成本中占多大比例?成本在總成本中占多大比例?2解:解:(1 1)開發(fā)這個應用程序大約需用開發(fā)這個應用程序大約需用10001000個人日。需要指出的是個人日。需要指出的是,上述工作量包

4、括問題定義、可行性研究、需求分析、總體設,上述工作量包括問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試等各個開發(fā)階段的工作量,而計、詳細設計、編碼和單元測試等各個開發(fā)階段的工作量,而不僅僅是編寫程序所需的工作量。不僅僅是編寫程序所需的工作量。(2 2)每月平均工作每月平均工作2020天,故開發(fā)這個軟件需要用:天,故開發(fā)這個軟件需要用: 1000/20=50 1000/20=50(人月)人月)每人每月的平均工資為每人每月的平均工資為40004000美元,故這個軟件的成本大約為:美元,故這個軟件的成本大約為: 50 50* *4000=2000004000=200000(美元)

5、美元)(3 3)軟件成本與硬件成本之和為計算機系統(tǒng)總成本。這個軟件軟件成本與硬件成本之和為計算機系統(tǒng)總成本。這個軟件的成本在總成本中所占的比例為:的成本在總成本中所占的比例為: 200000/ 200000/(200000+125000200000+125000)=61.5%=61.5%(4 4)在在20022002年開發(fā)這個應用程序所需用的工作量約為:年開發(fā)這個應用程序所需用的工作量約為: 10000/ 10000/(4040* *2020)=12.5=12.5(人月)(人月)這個軟件的成本大約為:這個軟件的成本大約為: 12.5 12.5* *8000=1000008000=100000(

6、美元)(美元)該軟件的成本在總成本中所占的比例為:該軟件的成本在總成本中所占的比例為: 100000/ 100000/(100000+2000100000+2000)=98%=98%3需求分析需求分析數據流圖數據流圖41 1、 銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng),如果戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話號碼是存款則系統(tǒng)記錄存款人姓名、住址(或電話號碼)、身份證號碼、存款類型、存款日期、利率及密)、身份證號碼、存款類型、存款日期、利率及密碼(可選)等信息,并印出存款

7、單給儲戶;如果是碼(可選)等信息,并印出存款單給儲戶;如果是取款而且存款時留有密碼,收系統(tǒng)首先核對儲戶密取款而且存款時留有密碼,收系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并印出利息清單給儲戶。息并印出利息清單給儲戶。請用數據流圖描繪本系統(tǒng)的功能,并用實體請用數據流圖描繪本系統(tǒng)的功能,并用實體聯(lián)聯(lián)系圖描繪系統(tǒng)中的數據對象。系圖描繪系統(tǒng)中的數據對象。習題習題5解:(解:(1 1)描繪本系統(tǒng)功能的數據流圖如下。描繪本系統(tǒng)功能的數據流圖如下。1 1記錄存記錄存款信息款信息2 2打印存打印存款存單款存單3 3核對核對密碼密碼4 4計算計

8、算利息利息5 5打印利打印利息清單息清單儲戶儲戶儲戶儲戶D1 存款信息存款信息存款信息存款信息存款信息存款信息利利息息清清單單存款存單存款存單存款單存款單取款單取款單存款信息存款信息存款信息存款信息利息值利息值6(2 2)本問題中的實體及屬性本問題中的實體及屬性n兩類實體:兩類實體:n儲戶和儲蓄所。他們之間有儲戶和儲蓄所。他們之間有“存取款存取款”關系。關系。n關系:關系:n一位儲戶可以在多家儲蓄所存取款,一位儲戶可以在多家儲蓄所存取款,n一家儲蓄所擁有多位儲戶,一家儲蓄所擁有多位儲戶,n所以存取款是多對多(所以存取款是多對多(MM:N N)關系。關系。n屬性:屬性:n儲戶的屬性主要有:姓名、

9、住址、電話號碼和身份證號碼;儲戶的屬性主要有:姓名、住址、電話號碼和身份證號碼;n儲蓄所的屬性主要有:名稱、地址和電話號碼;儲蓄所的屬性主要有:名稱、地址和電話號碼;n聯(lián)系類型存取款的屬性:數額、類型、到期日期、利率和密聯(lián)系類型存取款的屬性:數額、類型、到期日期、利率和密碼。碼。n計算機儲蓄系統(tǒng)中數據對象的實體計算機儲蓄系統(tǒng)中數據對象的實體聯(lián)系圖如下。聯(lián)系圖如下。7描繪計算機儲蓄系統(tǒng)中數據對象的實體描繪計算機儲蓄系統(tǒng)中數據對象的實體聯(lián)系圖聯(lián)系圖住址住址圖圖 存款信息計算機儲蓄系統(tǒng)的實體存款信息計算機儲蓄系統(tǒng)的實體聯(lián)系圖聯(lián)系圖儲蓄所儲蓄所N N姓名姓名地址地址名稱名稱數額數額類型類型利率利率密碼

10、密碼電話號碼電話號碼身份證號碼身份證號碼到期日期到期日期電話號碼電話號碼儲戶儲戶存取款存取款MM8習題習題2 2、目前住院病人主要由護士護理,這樣做不僅需目前住院病人主要由護士護理,這樣做不僅需要大量護士,而且由于不能隨時觀察危重病人的要大量護士,而且由于不能隨時觀察危重病人的病情變化,還會延誤搶救時機。某醫(yī)院打算開發(fā)病情變化,還會延誤搶救時機。某醫(yī)院打算開發(fā)一個以計算機為中心的患者監(jiān)護系統(tǒng),請分層次一個以計算機為中心的患者監(jiān)護系統(tǒng),請分層次地畫出描述本系統(tǒng)功能的數據流圖。地畫出描述本系統(tǒng)功能的數據流圖。 醫(yī)院對患者監(jiān)護系統(tǒng)的基本要求是隨時接收醫(yī)院對患者監(jiān)護系統(tǒng)的基本要求是隨時接收每個病人的生

11、理信號每個病人的生理信號( (脈搏、體溫、血壓、心電圖脈搏、體溫、血壓、心電圖等等) ),定時記錄病人情況以形成患者日志,當某個,定時記錄病人情況以形成患者日志,當某個病人的生理信號超出醫(yī)生規(guī)定的安全范圍時向值病人的生理信號超出醫(yī)生規(guī)定的安全范圍時向值班護士發(fā)出警告信息,此外,護士在需要時還可班護士發(fā)出警告信息,此外,護士在需要時還可以要求系統(tǒng)印出某個指定病人的病情報告。以要求系統(tǒng)印出某個指定病人的病情報告。9解解: :(1 1)系統(tǒng)的數據源點、終點、處理功能及存系統(tǒng)的數據源點、終點、處理功能及存儲儲n源點:源點:n病人:提供生理信號信息;病人:提供生理信號信息;n系統(tǒng)隨時接收每個病人的生理信

12、號系統(tǒng)隨時接收每個病人的生理信號( (脈搏、體溫、血脈搏、體溫、血壓、心電圖等壓、心電圖等) )n護士:要求病情報告信息;護士:要求病情報告信息;n護士可以要求系統(tǒng)印出某個指定病人的病情報告。護士可以要求系統(tǒng)印出某個指定病人的病情報告。n時鐘:提供日期和時間信息的時鐘:提供日期和時間信息的“時鐘時鐘”。n系統(tǒng)應系統(tǒng)應“定時記錄病人情況以形成患者日志定時記錄病人情況以形成患者日志” 。n終點:終點:n護士:接收警告信息和病情報告。護士:接收警告信息和病情報告。10解解: :(1 1)系統(tǒng)的數據源點、終點、處理功能及存系統(tǒng)的數據源點、終點、處理功能及存儲儲n處理:處理:n接收信號;接收信號;n分析

13、信號;分析信號;n產生警告信息信息;產生警告信息信息;n定時取樣生理信號;定時取樣生理信號;n更新日志;更新日志;n產生病情報告。產生病情報告。n存儲:存儲:n患者安全范圍:醫(yī)生規(guī)定的病人的生理信號安全范圍;患者安全范圍:醫(yī)生規(guī)定的病人的生理信號安全范圍;n患者日志:定時記錄病人情況以形成患者日志。患者日志:定時記錄病人情況以形成患者日志。 11(2 2)系統(tǒng)的基本系統(tǒng)模型系統(tǒng)的基本系統(tǒng)模型護士護士護士護士警告信息警告信息生理信號生理信號患者監(jiān)患者監(jiān)護系統(tǒng)護系統(tǒng)病人病人時鐘時鐘病情報告病情報告日期、時間日期、時間要求報告要求報告圖圖 患者監(jiān)護系統(tǒng)的基本系統(tǒng)模型患者監(jiān)護系統(tǒng)的基本系統(tǒng)模型12(3

14、 3)系統(tǒng)的功能級數據流圖系統(tǒng)的功能級數據流圖1 1接收接收信號信號3 3產生警產生警告信息告信息4 4定時取樣定時取樣生理信號生理信號D1 患者安全范圍患者安全范圍危急病人危急病人信息信息病情報告病情報告警告警告信息信息生理信號生理信號日期日期時間時間定時的定時的生理信號生理信號日志日志數據數據護士護士護士護士病人病人時鐘時鐘2 2分析分析信號信號5 5更新更新日志日志6 6產生病產生病情報告情報告D1 患者日志患者日志生理信號生理信號要求要求報告報告1314n3 3、北京某高??捎玫碾娫捥柎a有以下幾類:北京某高校可用的電話號碼有以下幾類:n校內電話號碼由校內電話號碼由4 4位數字組成,第位

15、數字組成,第1 1位數字不是位數字不是0 0;n校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥0 0,若是本市電話則再接著撥若是本市電話則再接著撥8 8位數字位數字( (第第1 1位不是位不是0)0),若是外地電話則,若是外地電話則撥撥3 3位區(qū)碼再撥位區(qū)碼再撥8 8位電話號碼位電話號碼( (第第1 1位不是位不是0)0)。n請用定義數據的方法,定義上述的電話號碼。請用定義數據的方法,定義上述的電話號碼。習題(數據管理策略的確定)習題(數據管理策略的確定)n練習(數據元素定義):練習(數據元素定義):n解解1 1:電話號碼電話號碼=

16、校內電話號碼校內電話號碼| |校外電話號碼校外電話號碼 校內電話號碼校內電話號碼= =非零數字非零數字+3+3位數字位數字 3 3位數字位數字=3=3數字數字33 校外電話號碼校外電話號碼=本市號碼本市號碼| |外地號碼外地號碼 本市號碼本市號碼= =數字零數字零+8+8位數字位數字 外地號碼外地號碼= =數字零數字零+3+3位數字位數字+8+8位數字位數字 8 8位數字位數字= =非零數字非零數字+7+7位數字位數字 7 7位數字位數字=7=7數字數字7715n3 3、北京某高校可用的電話號碼有以下幾類:北京某高??捎玫碾娫捥柎a有以下幾類:n校內電話號碼由校內電話號碼由4 4位數字組成,第位

17、數字組成,第1 1位數字不是位數字不是0 0;n校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥校外電話又分為本市電話和外地電話兩類,撥校外電話需先撥0 0,若是本市電話則再接著撥若是本市電話則再接著撥8 8位數字位數字( (第第1 1位不是位不是0)0),若是外地電話則,若是外地電話則撥撥3 3位區(qū)碼再撥位區(qū)碼再撥8 8位電話號碼位電話號碼( (第第1 1位不是位不是0)0)。n請用定義數據的方法,定義上述的電話號碼。請用定義數據的方法,定義上述的電話號碼。習題(數據管理策略的確定)習題(數據管理策略的確定)n練習(數據元素定義):練習(數據元素定義):n解解2 2:電話號碼:電話號碼

18、=校內電話號碼校內電話號碼| |校外電話號碼校外電話號碼 校內電話號碼校內電話號碼= =非零數字非零數字+3+3位數字位數字 3 3位數字位數字=3=3數字數字33 校外電話號碼校外電話號碼=0+=0+本市號碼本市號碼| |外地號碼外地號碼 本市號碼本市號碼=8=8位數字位數字 外地號碼外地號碼=3=3位區(qū)碼位區(qū)碼+8+8位數字位數字 3 3位區(qū)碼位區(qū)碼=3=3數字數字33 8 8位數字位數字= =非零數字非零數字+7+7位數字位數字 7 7位數字位數字=7=7數字數字77系統(tǒng)分析系統(tǒng)分析動態(tài)模型動態(tài)模型16習題習題n1 1、辦公室復印機的工作過程大致如下:辦公室復印機的工作過程大致如下:n未

19、接收到復印命令時處于閑置狀態(tài),一旦接收未接收到復印命令時處于閑置狀態(tài),一旦接收到復印命令則進入復印狀態(tài),完成一個復印命到復印命令則進入復印狀態(tài),完成一個復印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個令規(guī)定的工作后又回到閑置狀態(tài),等待下一個復印命令;如果執(zhí)行復印命令時發(fā)現(xiàn)缺紙,則復印命令;如果執(zhí)行復印命令時發(fā)現(xiàn)缺紙,則進入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙進入缺紙狀態(tài),發(fā)出警告,等待裝紙,裝滿紙后進入閑置狀態(tài),準備接收復印命令;如果復后進入閑置狀態(tài),準備接收復印命令;如果復印時發(fā)生卡紙故障,則進入卡紙狀態(tài),發(fā)出警印時發(fā)生卡紙故障,則進入卡紙狀態(tài),發(fā)出警告等待維修人員來排除故障,故障排除后回到告

20、等待維修人員來排除故障,故障排除后回到閑置狀態(tài)。閑置狀態(tài)。n請用狀態(tài)轉換圖描繪復印機的行為。請用狀態(tài)轉換圖描繪復印機的行為。17解解: :(1 1)分析復印機的狀態(tài)、事件。分析復印機的狀態(tài)、事件。n復印機的主要狀態(tài):復印機的主要狀態(tài):閑置、缺紙、卡紙。閑置、缺紙、卡紙。n引起狀態(tài)轉換的事件:引起狀態(tài)轉換的事件:n復印命令、完成復印命令、發(fā)現(xiàn)缺紙、裝滿紙、復印命令、完成復印命令、發(fā)現(xiàn)缺紙、裝滿紙、發(fā)生卡紙故障、排除了卡紙故障。發(fā)生卡紙故障、排除了卡紙故障。(2 2)狀態(tài)轉換圖狀態(tài)轉換圖卡紙卡紙do/do/警告警告發(fā)生卡紙故障發(fā)生卡紙故障發(fā)現(xiàn)缺紙發(fā)現(xiàn)缺紙復印命令復印命令完成復印命令完成復印命令復印

21、復印do/do/復印復印閑置閑置缺紙缺紙do/do/警告警告排除了卡紙故障排除了卡紙故障裝滿紙裝滿紙18習題習題n假設你在一所職業(yè)高中工作,負責該校信假設你在一所職業(yè)高中工作,負責該校信息系統(tǒng)的建設與維護。財務科長請你研究息系統(tǒng)的建設與維護。財務科長請你研究用學校擁有的微型計算機生成工資明細表用學校擁有的微型計算機生成工資明細表和各種財務報表的可能性。和各種財務報表的可能性。n請詳細描述你用結構化分析方法分析上述請詳細描述你用結構化分析方法分析上述問題的過程。問題的過程。19結構化設計結構化設計模塊獨立性模塊獨立性20表表1 1 模塊接口描述模塊接口描述習題習題n1 1、分析圖分析圖1 1,確

22、定模塊之間的耦合類型。,確定模塊之間的耦合類型。n圖中已給模塊之間的接口編了號碼,表圖中已給模塊之間的接口編了號碼,表1 1描述了模塊間的描述了模塊間的接口。接口。接口編號接口編號輸入輸入輸出輸出1 1飛機類型飛機類型狀態(tài)標志狀態(tài)標志2 2飛機零件清單飛機零件清單3 3功能代碼功能代碼4 4飛機零件清單飛機零件清單5 5零件編號零件編號零件制造商零件制造商6 6零件編號零件編號零件名稱零件名稱圖圖1 1 一個程序的模塊互連圖一個程序的模塊互連圖pqrtsu2 21 13 34 45 56 6模塊模塊p p、t t、u u更新同一更新同一個數據庫個數據庫21表表1 1 模塊接口描述模塊接口描述解

23、:分析模塊間傳遞的信息類型解:分析模塊間傳遞的信息類型n傳遞簡單變量:傳遞簡單變量:p p與與q q、r r與與t t、s s與與u u,數據耦合。數據耦合。n傳遞控制元素:傳遞控制元素:q q與與r r??刂岂詈???刂岂詈稀模塊間傳遞功能代碼時就傳遞了控制元素。模塊間傳遞功能代碼時就傳遞了控制元素。n信息不確定:信息不確定:p p與與s s、q q與與s s。數據或特征耦合。數據或特征耦合。n如果如果s s使用或更新使用或更新p p傳遞的零件清單中的所有元素,數據耦合傳遞的零件清單中的所有元素,數據耦合n如果如果s s只訪問該清單中的部分元素,特征耦合。只訪問該清單中的部分元素,特征耦合。

24、接口編號接口編號輸入輸入輸出輸出耦合類型耦合類型1 1飛機類型飛機類型狀態(tài)標志狀態(tài)標志數據數據2 2飛機零件清單飛機零件清單3 3功能代碼功能代碼控制控制4 4飛機零件清單飛機零件清單5 5零件編號零件編號零件制造商零件制造商數據數據6 6零件編號零件編號零件名稱零件名稱數據數據圖圖1 1 一個程序的模塊互連圖一個程序的模塊互連圖pqrtsu2 21 13 34 45 56 6模塊模塊p p、t t、u u更新同一更新同一個數據庫個數據庫模塊模塊p p、t t、u u之間為公共環(huán)境耦合之間為公共環(huán)境耦合22習題習題n2 2、分析圖分析圖2 2所示層次圖,確定每個模塊的內聚類型。所示層次圖,確定

25、每個模塊的內聚類型。圖圖2 2 計算多地點日平均溫度的程序計算多地點日平均溫度的程序計算多個地點的日平均溫度功能內聚功能內聚初始化變量sum并打開文件創(chuàng)建新的溫度記錄存儲溫度記錄關閉文件并打印平均溫度讀取地點、時間和溫度計算特定地點的日平均溫度偶然內聚偶然內聚偶然內聚偶然內聚內聚練習23畫出下列偽碼程序的程序流程圖和盒圖:畫出下列偽碼程序的程序流程圖和盒圖:nSTARTnIF p THENnWHILE q DOn fnEND DOnELSEnBLOCKn gn nnEND BLOCKnEND IFnSTOP詳細設計練習n解:(解:(1)程序流程圖程序流程圖gnfT TF F開始開始停止停止pq

26、 q循環(huán)循環(huán)WHILEqWHILEq q q循環(huán)循環(huán)24畫出下列偽碼程序的程序流程圖和盒圖:畫出下列偽碼程序的程序流程圖和盒圖:nSTARTnIF p THENnWHILE q DOn fnEND DOnELSEnBLOCKn gn nnEND BLOCKnEND IFnSTOP本節(jié)練習n解:(解:(2)盒圖盒圖FpTgqnf25習題習題n1 1、用用3 3種方法計算下圖所示流圖的環(huán)形復雜度。種方法計算下圖所示流圖的環(huán)形復雜度。a ab bc cd de eh hg gf fn解:環(huán)形復雜度解:環(huán)形復雜度V(G)V(G)n(1 1)V(G)=V(G)=流圖中的區(qū)域數流圖中的區(qū)域數5 5n(2

27、2)V(G)=V(G)=流圖中邊數流圖中邊數E-E-結點數結點數P+2P+2nE=11E=11,P=8P=8,V(G)=11-8+2=5V(G)=11-8+2=5n(3 3)V(G)=V(G)=判斷數判斷數+1+1n有有2 2條輸出弧的為條輸出弧的為1 1個判斷;個判斷;n有有n n條輸出弧的為條輸出弧的為n-1n-1個判斷;個判斷;nV(G)=2V(G)=21+11+1(3-13-1)+1=5+1=526習題習題n1 1、用用3 3種方法計算下圖所示流圖的環(huán)形復雜度。種方法計算下圖所示流圖的環(huán)形復雜度。a ab bc cd de eh hg gf fn解:環(huán)形復雜度解:環(huán)形復雜度V(G)V(

28、G)n(1 1)V(G)=V(G)=流圖中的區(qū)域數流圖中的區(qū)域數5 5n(2 2)V(G)=V(G)=流圖中邊數流圖中邊數E-E-結點數結點數P+2P+2nE=11E=11,P=8P=8,V(G)=11-8+2=5V(G)=11-8+2=5n(3 3)V(G)=V(G)=判斷數判斷數+1+1n有有2 2條輸出弧的為條輸出弧的為1 1個判斷;個判斷;n有有n n條輸出弧的為條輸出弧的為n-1n-1個判斷;個判斷;nV(G)=2V(G)=21+11+1(3-13-1)+1=5+1=527系統(tǒng)測試系統(tǒng)測試測試用例設計測試用例設計28習題習題1 1、設計下列偽碼程序的語句覆蓋和路徑覆蓋測試用例。設計下

29、列偽碼程序的語句覆蓋和路徑覆蓋測試用例。STARTSTARTINPUT (A,B,C)INPUT (A,B,C)IF A5IF A5THEN X=10THEN X=10ELSE X=1ELSE X=1END IFEND IFIF B10IF B10THEN Y=20THEN Y=20ELSE Y=2ELSE Y=2END IFEND IFIF C15IF C15THEN Z=30THEN Z=30ELSE Z=3ELSE Z=3END IFEND IFPRINT (X,Y,Z)PRINT (X,Y,Z)STOPSTOPX=10T TF F開始開始停止停止A5A5INPUT A,B,CINPUT

30、 A,B,CX=1Y=20B10B10Y=2Z=30C15C15Z=3PRINT X,Y,ZPRINT X,Y,Z解:程序流程圖如圖。解:程序流程圖如圖。29解:解:(1 1)語句覆蓋測試用例語句覆蓋測試用例使使3 3個判定表達式之值全為假個判定表達式之值全為假輸入:輸入:A=1A=1,B=1B=1,C=1C=1預期輸出:預期輸出:X=1X=1,Y=2Y=2,Z=3Z=3使使3 3個判定表達式之值全為真?zhèn)€判定表達式之值全為真輸入:輸入:A=20A=20,B=40B=40,C=60C=60預期輸出:預期輸出:X=10X=10,Y=20Y=20,Z=30Z=30X=10T TF F開始開始停止停止

31、A5A5INPUT A,B,CINPUT A,B,CX=1Y=20B10B10Y=2Z=30C15C15Z=3PRINT X,Y,ZPRINT X,Y,Z(2 2)路徑覆蓋測試用例路徑覆蓋測試用例程序共有程序共有8 8條可能的執(zhí)行通路,共需條可能的執(zhí)行通路,共需8 8組測組測試數據。試數據。3 3個判定表達式之值全為假個判定表達式之值全為假輸入:輸入:A=1A=1,B=1B=1,C=1C=1預期輸出:預期輸出:X=1X=1,Y=2Y=2,Z=3Z=33 3個判定表達式之值依次為假、假、真?zhèn)€判定表達式之值依次為假、假、真輸入:輸入:A=1A=1,B=1B=1,C=60C=60預期輸出:預期輸出:

32、X=1X=1,Y=2Y=2,Z=30Z=3030解解( (續(xù)續(xù)) )3 3個判定表達式之值依次為假、真、假個判定表達式之值依次為假、真、假輸入:輸入:A=1A=1,B=40B=40,C=1C=1預期輸出:預期輸出:X=1X=1,Y=20Y=20,Z=3Z=33 3個判定表達式之值依次為假、真、真?zhèn)€判定表達式之值依次為假、真、真輸入:輸入:A=1A=1,B=40B=40,C=60C=60預期輸出:預期輸出:X=1X=1,Y=20Y=20,Z=30Z=303 3個判定表達式之值依次為真、假、假個判定表達式之值依次為真、假、假輸入:輸入:A=20A=20,B=1B=1,C=1C=1預期輸出:預期輸出

33、:X=10X=10,Y=2Y=2,Z=3Z=33 3個判定表達式之值依次為真、假、真?zhèn)€判定表達式之值依次為真、假、真輸入:輸入:A=20A=20,B=1B=1,C=60C=60預期輸出:預期輸出:X=10X=10,Y=2Y=2,Z=30Z=303 3個判定表達式之值依次為真、真、假個判定表達式之值依次為真、真、假輸入:輸入:A=20A=20,B=40B=40,C=1C=1預期輸出:預期輸出:X=10X=10,Y=20Y=20,Z=3Z=33 3個判定表達式之值全為真?zhèn)€判定表達式之值全為真輸入:輸入:A=20A=20,B=40B=40,C=60C=60預期輸出:預期輸出:X=10X=10,Y=2

34、0Y=20,Z=30Z=30X=10T TF F開始開始停止停止A5A5INPUT A,B,CINPUT A,B,CX=1Y=20B10B10Y=2Z=30C15C15Z=3PRINT X,Y,ZPRINT X,Y,Z31習題習題2 2、設計下列偽碼程序的分支覆蓋和條件組合覆蓋測試用例。、設計下列偽碼程序的分支覆蓋和條件組合覆蓋測試用例。STARTSTARTINPUT (A,B,C)INPUT (A,B,C)IF (A0) AND (B0)IF (A0) AND (B0)THEN X=A+BTHEN X=A+BELSE X=A-BELSE X=A-BENDENDIF (CA) OR (DA)

35、OR (D0 AND A0 AND B0B0INPUT A,B,CINPUT A,B,CX=A-BY=C-DY=C+DPRINT PRINT X,YX,YCA OR CA OR DBD0 AND A0 AND B0B0INPUT A,B,CINPUT A,B,CX=A-BY=C-DY=C+DPRINT PRINT X,YX,YCA OR CA OR DBD0 AND A0 AND B0B0INPUT A,B,CINPUT A,B,CX=A-BY=C-DY=C+DPRINT PRINT X,YX,YCA OR CA OR DBD0,B0 A0,B0 A0,B0 A0,B0A0,B0 A0,B0

36、A0,B0A0,B0CA,DA,DA,DBCA,DBCA,DB CA,D0 AND A0 AND B0B0INPUT A,B,CINPUT A,B,CX=A-BY=C-DY=C+DPRINT PRINT X,YX,YCA OR CA OR DBD0,B0A0,B0 A0,B0 A0,B0A0,B0A0,B0A0,B0A0,B0CA,DA,DA,DBCA,DBCA,DBCA,D0 AND A0 AND B0B0INPUT A,B,CINPUT A,B,CX=A-BY=C-DY=C+DPRINT PRINT X,YX,YCA OR CA OR DBD0,B0A0,B0 A0,B0 A0,B0A0,

37、B0A0,B0A0,B0A0,B0CA,DA,DA,DBCA,DBCA,DBCA,D0 AND A0 AND B0B0INPUT A,B,CINPUT A,B,CX=A-BY=C-DY=C+DPRINT PRINT X,YX,YCA OR CA OR DBD0,B0A0,B0 A0,B0 A0,B0A0,B0A0,B0A0,B0A0,B0CA,DA,DA,DBCA,DBCA,DBCA,D0 AND A0 AND B0B0INPUT A,B,CINPUT A,B,CX=A-BY=C-DY=C+DPRINT PRINT X,YX,YCA OR CA OR DBD0,B0A0,B0 A0,B0 A0

38、,B0A0,B0A0,B0A0,B0A0,B0CA,DA,DA,DBCA,DBCA,DBCA,D0)2: IF (A0)3: AND (B0)3: AND (B0)4: THEN X=A+B4: THEN X=A+B5: ELSE X=A-B 5: ELSE X=A-B 6: END6: END7: IF (CA)7: IF (CA)8: OR (DB)8: OR (D0)2: IF (A0)3: AND (B0)3: AND (B0)4: THEN X=A+B4: THEN X=A+B5: ELSE X=A-B 5: ELSE X=A-B 6: END6: END7: IF (CA)7: I

39、F (CA)8: OR (DB)8: OR (D0)2: IF (A0)3: AND (B0)3: AND (B0)4: THEN X=A+B4: THEN X=A+B5: ELSE X=A-B 5: ELSE X=A-B 6: END6: END7: IF (CA)7: IF (CA)8: OR (DB)8: OR (D0)2: IF (A0)3: AND (B0)3: AND (B0)4: THEN X=A+B4: THEN X=A+B5: ELSE X=A-B 5: ELSE X=A-B 6: END6: END7: IF (CA)7: IF (CA)8: OR (DB)8: OR (D

40、B)9: THEN Y=C-D9: THEN Y=C-D10: ELSE Y=C+D10: ELSE Y=C+D11: END11: END12: PRINT (X,Y)12: PRINT (X,Y) STOP STOP解解:有有4 4個步驟:個步驟:2 23 34 45 56 69 98 87 71 1101011111212路徑路徑3 3:1-2-3-5-6-7-9-11-121-2-3-5-6-7-9-11-12路徑路徑4 4:1-2-3-4-6-7-8-9-11-121-2-3-4-6-7-8-9-11-12路徑路徑5 5:1-2-3-4-6-7-8-10-11-1-2-3-4-6-7

41、-8-10-11-1212(4)(4)設計可強制執(zhí)行基本路徑集合中設計可強制執(zhí)行基本路徑集合中每條路徑的測試用例每條路徑的測試用例路徑路徑3 3(第第1 1個判定表達式為假,個判定表達式為假,第第2 2個判定表達式為真)個判定表達式為真)輸入:輸入:A=1,B=0,C=2,D=0(A=1,B=0,C=2,D=0(任意任意) )輸出:輸出:X=1,Y=2X=1,Y=2路徑路徑4 4(2 2個判定表達式全為真)個判定表達式全為真)輸入:輸入:A=1,B=1,C=0,D= -1A=1,B=1,C=0,D= -1輸出:輸出:X=2,Y=1X=2,Y=1路徑路徑5 5(第第1 1個判定表達式為真,個判定

42、表達式為真,第第2 2個判定表達式為假)個判定表達式為假)輸入:輸入:A=1,B=1,C=0,D=2A=1,B=1,C=0,D=2輸出:輸出:X=2,Y=2X=2,Y=2流圖流圖42系統(tǒng)運行維護系統(tǒng)運行維護維護性維護性43習題習題1 1、某些軟件工程師不同意、某些軟件工程師不同意“目前國外許多軟件開目前國外許多軟件開發(fā)組織把發(fā)組織把60%60%以上的人辦用于維護已有的軟件以上的人辦用于維護已有的軟件”的的說法,他們爭論說:說法,他們爭論說:“我并沒有花費我的我并沒有花費我的60%60%的時的時間去改正我所開發(fā)的程序中的錯誤間去改正我所開發(fā)的程序中的錯誤”。請問,你對上述爭論有何看法?請問,你對

43、上述爭論有何看法?44答:答:n首先,軟件維護并非僅僅是改正程序中的錯誤,它還包括為了首先,軟件維護并非僅僅是改正程序中的錯誤,它還包括為了使軟件適應變化了的環(huán)境而修改軟件的活動,以及為了滿足用戶使軟件適應變化了的環(huán)境而修改軟件的活動,以及為了滿足用戶在使用軟件的過程中提出的擴充或完善軟件的新需求而修改軟件在使用軟件的過程中提出的擴充或完善軟件的新需求而修改軟件的活動,甚至包括為了提高軟件未來的可維護性或可靠性而主動的活動,甚至包括為了提高軟件未來的可維護性或可靠性而主動地修改軟件的活動。實際上,為了消除程序中潛藏的錯誤而進行地修改軟件的活動。實際上,為了消除程序中潛藏的錯誤而進行的改正性維護

44、,僅占全部維護活動的的改正性維護,僅占全部維護活動的1/51/5左右。左右。n其次,其次,“目前國外許多軟件開發(fā)組織把目前國外許多軟件開發(fā)組織把60%60%以上的人辦用于維以上的人辦用于維護已有的軟件護已有的軟件”指的是指的是軟件開發(fā)組織內人力分配的整體狀況。軟件開發(fā)組織內人力分配的整體狀況。至于具體到軟件工程師,則分工各不相同。有些專職負責維護至于具體到軟件工程師,則分工各不相同。有些專職負責維護工作,他們的全部工作時間都花費在維護已有軟件產品的工作工作,他們的全部工作時間都花費在維護已有軟件產品的工作;另一些人專職負責軟件開發(fā)工作,他們并不花費時間去維護;另一些人專職負責軟件開發(fā)工作,他們

45、并不花費時間去維護已有的軟件產品;還有一些人可能既要從事軟件開發(fā)工作又要已有的軟件產品;還有一些人可能既要從事軟件開發(fā)工作又要兼管軟件維護工作。兼管軟件維護工作。n第三,軟件維護人員并非只負責維護自己開發(fā)的程序,通常,第三,軟件維護人員并非只負責維護自己開發(fā)的程序,通常,一名維護人員參與多個軟件產品的維護工作。一名維護人員參與多個軟件產品的維護工作。45習題習題2 2、某些軟件公司擬采取下述措施提高他們開發(fā)出的軟件產品的可、某些軟件公司擬采取下述措施提高他們開發(fā)出的軟件產品的可維護性,請判斷哪些措施是正確的,哪些措施不正確。維護性,請判斷哪些措施是正確的,哪些措施不正確。(1)(1)在分析用戶

46、需求時同時考慮維護問題。在分析用戶需求時同時考慮維護問題。(2)(2)測試完程序后,刪去程序中的注解以縮短源程序長度。測試完程序后,刪去程序中的注解以縮短源程序長度。(3)(3)在軟件開發(fā)過程中盡量保證各階段文檔的正確性。在軟件開發(fā)過程中盡量保證各階段文檔的正確性。(4)(4)編碼時盡量多用全局變量。編碼時盡量多用全局變量。(5)(5)選用時間效率和空間效率盡可能高的算法。選用時間效率和空間效率盡可能高的算法。(6)(6)盡可能利用硬件特點以提高程序效率。盡可能利用硬件特點以提高程序效率。(7)(7)盡可能使用高級語言編寫程序。盡可能使用高級語言編寫程序。(8)(8)進行總體設計時加強模塊間的聯(lián)系。進行總體設計時加強模塊間的聯(lián)系。(9)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論