① 什麼叫做用例規約
測試用例應當遵守的規則即用例規約。
測試用例是指對一項特定的軟體產品進行測試任務的描述,體現測試方案、方法、技術和策略。其內容包括測試目標、測試環境、輸入數據、測試步驟、預期結果、測試腳本等,最終形成文檔。簡單地認為,測試用例是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,用於核實是否滿足某個特定軟體需求。
(1)軟體工程用例規約擴展閱讀
⒈,指導測試的實施
測試用例主要適用於集成測試、系統測試和回歸測試。在實施測試時測試用例作為測試的標准,測試人員一定要按照測試用例嚴格按用例項目和測試步驟逐一實施測試。並對測試情況記錄在測試用例管理軟體中,以便自動生成測試結果文檔。
根據測試用例的測試等級,集成測試應測試那些用例,系統測試和回歸測試又該測試那些用例,在設計測試用例時都已作明確規定,實施測試時測試人員不能隨意作變動。
⒉,規劃測試數據的准備
在我們的實踐中測試數據是與測試用例分離的。按照測試用例配套准備一組或若干組測試原始數據,以及標准測試結果。尤其像測試報表之類數據集的正確性,按照測試用例規劃准備測試數據是十分必須的。
除正常數據之外,還必須根據測試用例設計大量邊緣數據和錯誤數據。
⒊,編寫測試腳本的"設計規格說明書"
為提高測試效率,軟體測試已大力發展自動測試。自動測試的中心任務是編寫測試腳本。如果說軟體工程中軟體編程必須有設計規格說明書,那麼測試腳本的設計規格說明書就是測試用例。
⒋,評估測試結果的度量基準
完成測試實施後需要對測試結果進行評估,並且編制測試報告。判斷軟體測試是否完成、衡量測試質量需要一些量化的結果。例:測試覆蓋率是多少、測試合格率是多少、重要測試合格率是多少,等等。以前統計基準是軟體模塊或功能點,顯得過於粗糙。採用測試用例作度量基準更加准確、有效。
⒌,分析缺陷的標准
通過收集缺陷,對比測試用例和缺陷資料庫,分析確證是漏測還是缺陷復現。漏測反映了測試用例的不完善,應立即補充相應測試用例,最終達到逐步完善軟體質量。而已有相應測試用例,則反映實施測試或變更處理存在問題。
② 如何針對不同的功能選擇不同的測試用例
上面那個匿名的,你的給的那是什麼網址啊!
-------------
測試用例
------------------
中科永聯高級技術培訓中心
測試用例(Test Case)是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某個特定需求。
測試用例(TESt CASe)目前沒有經典的定義。比較通常的說法是:指對一項特定的軟體產品進行測試任務的描述,體現測試方案、方法、技術和策略。內容包括測試目標、測試環境、輸入數據、測試步驟、預期結果、測試腳本等,並形成文檔。
不同類別的軟體,測試用例是不同的。不同於諸如系統、工具、控制、游戲軟體,管理軟體的用戶需求更加不統一,變化更大、更快。筆者主要從事企業管理軟體的測試。因此我們的做法是把測試數據和測試腳本從測試用例中劃分出來。測試用例更趨於是針對軟體產品的功能、業務規則和業務處理所設計的測試方案。對軟體的每個特定功能或運行操作路徑的測試構成了一個個測試用例。
隨著中國軟體業的日益壯大和逐步走向成熟,軟體測試也在不斷發展。從最初的由軟體編程人員兼職測試到軟體公司組建獨立專職測試部門。測試工作也從簡單測試演變為包括:編制測試計劃、編寫測試用例、准備測試數據、編寫測試腳本、實施測試、測試評估等多項內容的正規測試。測試方式則由單純手工測試發展為手工、自動兼之,並有向第三方專業測試公司發展的趨勢。
要使最終用戶對軟體感到滿意,最有力的舉措就是對最終用戶的期望加以明確闡述,以便對這些期望進行核實並確認其有效性。測試用例反映了要核實的需求。然而,核實這些需求可能通過不同的方式並由不同的測試員來實施。例如,執行軟體以便驗證它的功能和性能,這項操作可能由某個測試員採用自動測試技術來實現;計算機系統的關機步驟可通過手工測試和觀察來完成;不過,市場佔有率和銷售數據(以及產品需求),只能通過評測產品和競爭銷售數據來完成。
既然可能無法(或不必負責)核實所有的需求,那麼是否能為測試挑選最適合或最關鍵的需求則關繫到項目的成敗。選中要核實的需求將是對成本、風險和對該需求進行核實的必要性這三者權衡考慮的結果。
確定測試用例之所以很重要,原因有以下幾方面。
測試用例構成了設計和制定測試過程的基礎。
測試的「深度」與測試用例的數量成比例。由於每個測試用例反映不同的場景、條件或經由產品的事件流,因而,隨著測試用例數量的增加,您對產品質量和測試流程也就越有信心。
判斷測試是否完全的一個主要評測方法是基於需求的覆蓋,而這又是以確定、實施和/或執行的測試用例的數量為依據的。類似下面這樣的說明:「95 % 的關鍵測試用例已得以執行和驗證」,遠比「我們已完成 95 % 的測試」更有意義。
測試工作量與測試用例的數量成比例。根據全面且細化的測試用例,可以更准確地估計測試周期各連續階段的時間安排。
測試設計和開發的類型以及所需的資源主要都受控於測試用例。
測試用例通常根據它們所關聯關系的測試類型或測試需求來分類,而且將隨類型和需求進行相應地改變。最佳方案是為每個測試需求至少編制兩個測試用例:
·一個測試用例用於證明該需求已經滿足,通常稱作正面測試用例;
·另一個測試用例反映某個無法接受、反常或意外的條件或數據,用於論證只有在所需條件下才能夠滿足該需求,這個測試用例稱作負面測試用例。
一、測試用例是軟體測試的核心
軟體測試的重要性是毋庸置疑的。但如何以最少的人力、資源投入,在最短的時間內完成測試,發現軟體系統的缺陷,保證軟體的優良品質,則是軟體公司探索和追求的目標。每個軟體產品或軟體開發項目都需要有一套優秀的測試方案和測試方法。
影響軟體測試的因素很多,例如軟體本身的復雜程度、開發人員(包括分析、設計、編程和測試的人員)的素質、測試方法和技術的運用等等。因為有些因素是客觀存在的,無法避免。有些因素則是波動的、不穩定的,例如開發隊伍是流動的,有經驗的走了,新人不斷補充進來;一個具體的人工作也受情緒等影響,等等。如何保障軟體測試質量的穩定?有了測試用例,無論是誰來測試,參照測試用例實施,都能保障測試的質量。可以把人為因素的影響減少到最小。即便最初的測試用例考慮不周全,隨著測試的進行和軟體版本更新,也將日趨完善。
因此測試用例的設計和編制是軟體測試活動中最重要的。測試用例是測試工作的指導,是軟體測試的必須遵守的准則。更是軟體測試質量穩定的根本保障。
二、編制測試用例
著重介紹一些編制測試用例的具體做法。
1、測試用例文檔
編寫測試用例文檔應有文檔模板,須符合內部的規范要求。測試用例文檔將受制於測試用例管理軟體的約束。
軟體產品或軟體開發項目的測試用例一般以該產品的軟體模塊或子系統為單位,形成一個測試用例文檔,但並不是絕對的。
測試用例文檔由簡介和測試用例兩部分組成。簡介部分編制了測試目的、測試范圍、定義術語、參考文檔、概述等。測試用例部分逐一列示各測試用例。每個具體測試用例都將包括下列詳細信息:用例編號、用例名稱、測試等級、入口准則、驗證步驟、期望結果(含判斷標准)、出口准則、注釋等。以上內容涵蓋了測試用例的基本元素:測試索引,測試環境,測試輸入,測試操作,預期結果,評價標准。
2、測試用例的設置
我們早期的測試用例是按功能設置用例。後來引進了路徑分析法,按路徑設置用例。目前演變為按功能、路徑混合模式設置用例。
按功能測試是最簡捷的,按用例規約遍歷測試每一功能。
對於復雜操作的程序模塊,其各功能的實施是相互影響、緊密相關、環環相扣的,可以演變出數量繁多的變化。沒有嚴密的邏輯分析,產生遺漏是在所難免。路徑分析是一個很好的方法,其最大的優點是在於可以避免漏測試。
但路徑分析法也有局限性。在一個非常簡單字典維護模塊就存在十餘條路徑。一個復雜的模塊會有幾十到上百條路徑是不足為奇的。筆者以為這是路徑分析比較合適的使用規模。若一個子系統有十餘個或更多的模塊,這些模塊相互有關聯。再採用路徑分析法,其路徑數量成幾何級增長,達5位數或更多,就無法使用了。那麼子系統模塊間的測試路徑或測試用例還是要靠傳統方法來解決。這是按功能、路徑混合模式設置用例的由來。
3、設計測試用例
測試用例可以分為基本事件、備選事件和異常事件。設計基本事件的用例,應該參照用例規約(或設計規格說明書),根據關聯的功能、操作按路徑分析法設計測試用例。而對孤立的功能則直接按功能設計測試用例。基本事件的測試用例應包含所有需要實現的需求功能,覆蓋率達100%。
設計備選事件和異常事件的用例,則要復雜和困難得多。例如,字典的代碼是唯一的,不允許重復。測試需要驗證:字典新增程序中已存在有關字典代碼的約束,若出現代碼重復必須報錯,並且報錯文字正確。往往在設計編碼階段形成的文檔對備選事件和異常事件分析描述不夠詳盡。而測試本身則要求驗證全部非基本事件,並同時盡量發現其中的軟體缺陷。
可以採用軟體測試常用的基本方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆蓋法等設計測試用例。視軟體的不同性質採用不同的方法。如何靈活運用各種基本方法來設計完整的測試用例,並最終實現暴露隱藏的缺陷,全憑測試設計人員的豐富經驗和精心設計。
三、測試用例在軟體測試中的作用
1、指導測試的實施
測試用例主要適用於集成測試、系統測試和回歸測試。在實施測試時測試用例作為測試的標准,測試人員一定要按照測試用例嚴格按用例項目和測試步驟逐一實施測試。並對測試情況記錄在測試用例管理軟體中,以便自動生成測試結果文檔。
根據測試用例的測試等級,集成測試應測試那些用例,系統測試和回歸測試又該測試那些用例,在設計測試用例時都已作明確規定,實施測試時測試人員不能隨意作變動。
2、規劃測試數據的准備
在我們的實踐中測試數據是與測試用例分離的。按照測試用例配套准備一組或若干組測試原始數據,以及標准測試結果。尤其象測試報表之類數據集的正確性,按照測試用例規劃准備測試數據是十分必須的。
除正常數據之外,還必須根據測試用例設計大量邊緣數據和錯誤數據。
3、編寫測試腳本的"設計規格說明書"
為提高測試效率,軟體測試已大力發展自動測試。自動測試的中心任務是編寫測試腳本。如果說軟體工程中軟體編程必須有設計規格說明書,那麼測試腳本的設計規格說明書就是測試用例。
4、評估測試結果的度量基準
完成測試實施後需要對測試結果進行評估,並且編制測試報告。判斷軟體測試是否完成、衡量測試質量需要一些量化的結果。例:測試覆蓋率是多少、測試合格率是多少、重要測試合格率是多少,等等。以前統計基準是軟體模塊或功能點,顯得過於粗糙。採用測試用例作度量基準更加准確、有效。
5、分析缺陷的標准
通過收集缺陷,對比測試用例和缺陷資料庫,分析確證是漏測還是缺陷復現。漏測反映了測試用例的不完善,應立即補充相應測試用例,最終達到逐步完善軟體質量。而已有相應測試用例,則反映實施測試或變更處理存在問題。
四、相關問題
1、測試用例的評審
測試用例是軟體測試的准則,但它並不是一經編制完成就成為准則。測試用例在設計編制過程中要組織同級互查。完成編制後應組織專家評審,需獲得通過才可以使用。評審委員會可由項目負責人、測試、編程、分析設計等有關人員組成,也可邀請客戶代表參加。
2、測試用例的修改更新
測試用例在形成文檔後也還需要不斷完善。主要來自三方面的緣故:第一、在測試過程中發現設計測試用例時考慮不周,需要完善;第二、在軟體交付使用後反饋的軟體缺陷,而缺陷又是因測試用例存在漏洞造成;第三、軟體自身的新增功能以及軟體版本的更新,測試用例也必須配套修改更新。
一般小的修改完善可在原測試用例文檔上修改,但文檔要有更改記錄。軟體的版本升級更新,測試用例一般也應隨之編制升級更新版本。
3、測試用例的管理軟體
運用測試用例還需配備測試用例管理軟體。它的主要功能有三個:第一、能將測試用例文檔的關鍵內容,如編號、名稱等等自動導入管理資料庫,形成與測試用例文檔完全對應的記錄;第二、可供測試實施時及時輸入測試情況;第三、最終實現自動生成測試結果文檔,包含各測試度量值,測試覆蓋表和測試通過或不通過的測試用例清單列表。
有了管理軟體,測試人員無論是編寫每日的測試工作日誌、還是出軟體測試報告,都會變得輕而易舉。
五、測試用例的設計
(一)白盒技術
白盒測試是結構測試,所以被測對象基本上是源程序,以程序的內部邏輯為基礎設計測試用例。
1、邏輯覆蓋
程序內部的邏輯覆蓋程度,當程序中有循環時,覆蓋每條路徑是不可能的,要設計使覆蓋程度較高的或覆蓋最有代表性的路徑的測試用例。下面根據圖7-1所示的程序,分別討論幾種常用的覆蓋技術。
(1)語句覆蓋。
為了個提高發現錯誤的可能性,在測試時應該執行到程序中的每一個語句。語句覆蓋是指設計足夠的測試用例,使被測試程序中每個語句至少執行一次。
如圖7-1是一個被測試程序流程圖:
(2)判定覆蓋。
判定覆蓋指設計足夠的測試用例,使得被測程序中每個判定表達式至少獲得一次「真」值和「假」值,從而使程序的每一個分支至少都通過一次,因此判定覆蓋也稱分支覆蓋。
(3)條件覆蓋。
條件覆蓋是指設計足夠的測試用例,使得判定表達式中每個條件的各種可能的值至少出現一次。
(4)判定/條件測試。
該覆蓋標准指設計足夠的測試用例,使得判定表達式的每個條件的所有可能取值至少出現一次,並使每個判定表達式所有可能的結果也至少出現一次。
(5)條件組合覆蓋。
條件組合覆蓋是比較強的覆蓋標准,它是指設計足夠的測試用例,使得每個判定表達式中條件的各種可能的值的組合都至少出現一次。
(6)路徑覆蓋。
路徑覆蓋是指設計足夠的測試用例,覆蓋被測程序中所有可能的路徑。
在實際的邏輯覆蓋測試中,一般以條件組合覆蓋為主設計測試用例,然後再補充部分用例,以達到路徑覆蓋測試標准。
2.循環覆蓋
3.基本路徑測試
(二)黑盒技術
1.等價類劃分
(1)劃分等價類。
①如果某個輸入條件規定了取值范圍或值的個數。則可確定一個合理的等價類(輸入值或數在此范圍內)和兩個不合理等價類(輸入值或個數小於這個范圍的最小值或大於這個范圍的最大值)。
②如果規定了輸入數據的一組值,而且程序對不同的輸入值做不同的處理,則每個允許輸入值是一個合理等價類,此處還有一個不合理等價類(任何一個不允許的輸入值)。
③如果規定了輸入數據必須遵循的規則,可確定一個合理等價類(符合規則)和若干個不合理等價類(從各種不同角度違反規則)。
④如果已劃分的等價類中各元素在程序中的處理方式不同,則應將此等價類進一步劃分為更小的等價類。
(2)確定測試用例。
①為每一個等價類編號。
②設計一個測試用例,使其盡可能多地覆蓋尚未被覆蓋過的合理等價類。重復這步,直到所有合理等價類被測試用例覆蓋。
③設計一個測試用例,使其只覆蓋一個不合理等價類。
2.邊界值分析
使用邊界值分析方法設計測試用例時一般與等價類劃分結合起來。但它不是從一個等價類中任選一個例子作為代表,而是將測試邊界情況作為重點目標,選取正好等於、剛剛大於或剛剛小於邊界值的測試數據。
(1)如果輸入條件規定了值的范圍,可以選擇正好等於邊界值的數據作為合理的測試用例,同時還要選擇剛好越過邊界值的數據作為不合理的測試用例。如輸入值的范圍是[1,100],可取0,1,100,101等值作為測試數據。
(2)如果輸入條件指出了輸入數據的個數,則按最大個數、最小個數、比最小個數少1、比最大個數多1等情況分別設計測試用例。如,一個輸入文件可包括1--255個記錄,則分別設計有1個記錄、255個記錄,以及0個記錄的輸入文件的測試用例。
(3)對每個輸出條件分別按照以上原則(1)或(2)確定輸出值的邊界情況。如,一個學生成績管理系統規定,只能查詢95--98級大學生的各科成績,可以設計測試用例,使得查詢范圍內的某一屆或四屆學生的學生成績,還需設計查詢94級、99級學生成績的測試用例(不合理輸出等價類)。
由於輸出值的邊界不與輸入值的邊界相對應,所以要檢查輸出值的邊界不一定可能,要產生超出輸出值之外的結果也不一定能做到,但必要時還需試一試。
(4)如果程序的規格說明給出的輸入或輸出域是個有序集合(如順序文件、線形表、鏈表等),則應選取集合的第一個元素和最後一個元素作為測試用例。
3.錯誤推測
在測試程序時,人們可能根據經驗或直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例,這就是錯誤推測法。
4.因果圖
等價類劃分和邊界值方法分析方法都只是孤立地考慮各個輸入數據的測試功能,而沒有考慮多個輸入數據的組合引起的錯誤。
5.綜合策略
每種方法都能設計出一組有用例子,用這組例子容易發現某種類型的錯誤,但可能不易發現另一類型的錯誤。因此在實際測試中,聯合使用各種測試方法,形成綜合策略,通常先用黑盒法設計基本的測試用例,再用白盒法補充一些必要的測試用例。
六、測試用例設計的誤區
(來源:關河測試網)
·能發現到目前為止沒有發現的缺陷的用例是好的用例;
首先要申明,其實這句話是十分有道理的,但我發現很多人都曲解了這句話的原意,一心要設計出發現「難於發現的缺陷」而陷入盲目的片面中去,忘記了測試的目的所在,這是十分可怕的。我傾向於將測試用例當作一個集合來認識,對它的評價也只能對測試用例的集合來進行,測試本身是一種「V
③ 軟體工程 圖書管理系統需求分析
引言
一直以來人們使用傳統的人工方式管理圖書館的日常工作,對於圖書館的借書和還書過程,想必大家都已很熟悉。在計算機尚未在圖書館廣泛使用之前,借書和還書過程主要依靠手工。一個最典型的手工處理還書過程就是:讀者將要借的書和借閱證交給工作人員,工作人員將每本書上附帶的描述書的信息的卡片和讀者的借閱證放在一個小格欄里,並在借閱證和每本書貼的借閱條上填寫借閱信息。這樣借書過程就完成了。還書時,讀者將要還的書交給工作人員,工作人員根據圖書信息找到相應的書卡和借閱證,並填好相應的還書信息,這樣還書過程就完成了。
以上所描述的手工過程的不足之處顯而易見,首先處理借書、還書業務流程的效率很低,其次處理能力比較低,一段時間內,所能服務的讀者人數是有限的。利用計算機來處理這些流程無疑會極大程度地提高效率和處理能力。我們將會看到排隊等候借書、還書的隊伍不再那麼長,工作人員出錯的概率也小了,讀者可以花更多的時間在選擇書和看書上。
為方便對圖書館書籍、讀者資料、借還書等進行高效的管理,特編寫該程序以提高圖書館的管理效率。使用該程序之後,工作人員可以查詢某位讀者、某種圖書的借閱情況,還可以對當前圖書借閱情況進行一些統計,給出統計表格,以便全面掌握圖書的流通情況。
本次作業設計題目:「圖書管理系統」主要目的是利用資料庫軟體編制一個管理軟體,用以實現圖書、讀者以及日常工作等多項管理。同時對整個系統的分析、設計過程給出一個完整論證。
圖書管理系統是一種基於集中統一規劃的資料庫數據管理新模式。在對圖書、讀者的管理,其實是對圖書、讀者數據的管理。本系統的建成無疑會為管理者對圖書管理系統提供極大的幫助。
2 系統設計
2.1 系統指導思想和建設目標
2.1.1 系統指導思想
立足於校園實際,著眼於未來發展,建成符合標准化協議、通用性較強、實用的系統,以提高圖書信息的現代化管理水平,實現信息資源的共享。
2.1.1 系統建設目標
(1)要解決的問題:(以某學校為參照) 隨著辦公自動化水平的不斷提高,現在學校管理學生信息也逐步從手工轉到計算機自動化信息處理階段。設計一個功能完整、操作簡便、界面友好的學生信息管理系統已經是勢在必行的了。
(2)系統開發的目的:提高圖書管理工作的效率,減少相關人員的工作量,使學校的圖書管理工作真正做到科學、合理的規劃,系統、高效的實施。
(3)系統名稱:圖書管理系統
2.2 總體功能設計
系統要能實現如下功能:
l 登錄系統:注銷用戶、系統退出。
l 管理:用戶管理、圖書管理、讀者管理、借閱管理。
l 查詢:圖書查詢、讀者查詢、借閱查詢。
l 報表列印:所有圖書、借出圖書、庫存圖書、所有讀者。
l 幫助:使用說明、關於。
3 資料庫設計
3.1 資料庫系統的選擇
本系統是一個中小型管理系統,運行環境是Windows2000 server,因此使用Windows環境下最容易使用且功能還可以的Microsoft Access 2000 作為後台的資料庫系統。
3.2 需求分析
圖3 圖書流通數據流圖
1.2
判斷能
否借書
索書
信息
讀 者
1.2
辦理借
書手續
讀者信息
查詢結果
借書申請
被借圖書
借書結果
借書信息
被借圖書復本量
(b) 借書
借閱
3
讀者
1
圖書
5
1.1
圖書
查詢
借書信息
查詢
4
判斷
2
判斷結果
索書
信息
圖書信息
讀 者
1
借書
2
還書
讀 者
申請借書
還書申請
借書結果
還書結果
(a) 頂層數據流圖
3
辦借
書證
讀者信息
辦證信息
需求分析是資料庫設計首先要做的工作,通過需求分析,我們作出了圖書管理系統的各層數據流圖,圖3是圖書流通數據流圖(圖中省略了「還書」和「辦理借書證」的數據流圖)。
在數據流圖的基礎上,定義數據字典。數據字典是關於資料庫中數據的描述,它的作用是在軟體分析和設計過程中為有關人員提供關於數據描述信息的查詢,以保證數據的一致性。下面在圖3的基礎上舉例說明數據字典的定義。
圖3中涉及很多數據項,其中數據項「讀者編號」可以描述如下:
數據項名:讀者編號
別名:讀者條碼
含義:唯一標識每個讀者
類型:字元型
取值范圍:00000000至99999999
取值含義:順序編號
「讀者」一個數據結構,它可以描述如下:
數據結構名:讀者
含義說明:是圖書管理系統的數據結構之一,定義了一個讀者的有關信息
組成:讀者編號,姓名,性別,單位
數據流「借閱記錄」可描述如下:
數據流名:借閱記錄
說明:讀者的借書記錄
數據來源:辦理借閱手續
數據去向:借閱
數據結構:讀者編號、圖書館藏號、借閱日期
數據存儲「借閱」可以描述如下:
數據存儲名:借閱
說明:記錄讀者的借書情況
流出數據流:借閱記錄
流入數據流:借閱記錄
數據描述:讀者編號、圖書館藏號、借閱日期
數據量:每年5000條以上
存取方式:隨機存取
處理過程「判斷能否借書」可描述如下:
處理過程「判斷能否借書」
說明:根據讀者的已借書情況可被借圖書的館藏情況判斷讀者能否借書
輸入:借閱記錄、讀者信息、被借圖書信息
輸出:能否借書的標志
處理:讀者提出借書請求後,先判斷該讀者以前的借書量是否達到了10本,如果達到了10本,則不能再借書,如果沒有達到10本,則再判斷讀者要借的圖書的可借量是否為0,如果不為0,則該書可以借出。
3.3 資料庫設計
在圖書管理系統中,資料庫設計占重要位置,資料庫設計質量的優劣,可直接影響到資料庫數據的冗餘度、數據的一致性、數據丟失等問題。下面就系統資料庫規范化設計進行說明。
3.3.1 資料庫設計的理論指導
資料庫設計的理論指導是範式理論,其主要內容如下:
1)如果關系模式R,其所有的域為單純域則稱R是規范化的關系,或稱第一範式 (1NF)
2)如果關系模式R為第一範式,且每個非主屬性完全函數依賴於碼,則模式R為第二範式(2NF)。
3) 如果關系模式R為第二範式,且每個非主屬性非傳遞依賴於碼,則稱關系模式R為第三範式(3NF)。
4)關系模式R為第一範式,滿足函數依賴集合F,X和A均為R的屬性集合,且X不包含A,如果R滿足X->A且X必包含R的碼,稱關系模式R為BCNF範式。
3.3.2 資料庫設計
圖書管理系統資料庫常常要設計含有如下數據項:借書證號、姓名、單位、館藏號(館藏號為每本書上的條形碼號)、書名、分類號、作者、價格等。如何進行模式的設計呢?下面以圖書流通模塊所涉及的資料庫為例來說明。
圖 書
讀 者
借閱
m
n
借閱時間
館藏號
書名
分類號
作者
價格
借書證號
姓名
性別
圖4 圖書流通的E-R圖
屬於
單 位
1
n
單位名稱
單位編號
先設計圖書流通的實體-關系圖(E-R圖)。E-R圖由3個相關聯的部分構成,即實體、實體與實體之間的關系以及實體和關系的屬性。圖書流通過程中實體「圖書」與「讀者」之間的關系是借閱和被借閱的關系,實體「讀者」與「單位」之間的關系是屬於和被屬於的關系,「圖書」的屬性有「館藏號」、「書名」、「分類號」、「作者」、「價格」,「讀者」的屬性有「借書證號」、「姓名」、「性別」,「單位」的屬性有「單位編號」和「單位名稱」,「借閱」屬性「借書日期」,由此得出E-R圖如圖4。
從圖中可以知道:
①「借書證號」是唯一的,所以「借書證號」決定「姓名」,每位讀者應只屬於一個性別,所以「借書證號」也決定「性別」;
②「館藏號」是唯一的,所以「館藏號」決定「書名」、「分類號」、「作者」、「價格」;
③ 「單位編號」是唯一的,所以「單位編號」決定「單位名稱」;
④ 每位讀者在一個時間只能借一本書,所以「借書證號」 +「館藏號」決定「借閱時間」。
如果將這些數據項置於一個關系模式中,根據範式理論,該關系模式屬於1NF(第一範式),它存在刪除異常和冗餘等問題,不是理想的模式,因此要把它分解成滿足3NF或BCNF的關系模式。根據範式理論和E-R圖轉換成關系模型的規則,上面的E-R圖可轉換為4個關系模式:①圖書(館藏號、書名、分類號、作者、價格);②讀者(借書證號、姓名、性別、單位編號);③借閱(借書證號、館藏號、借閱時間),④單位(單位編碼、單位名稱),其中打下劃線的為碼,這樣就解決了插入、刪除和數據冗餘等問題。
我們對數據的結構進行詳細的分析,按照上述的設計思想,共設計了讀者表,書目表,館藏表,流通表等百餘張數據表,然後創建視圖和存儲過程。下面舉例說明:
讀者表:借書證號、姓名、單位、讀者類別、職稱等欄位;
書目表:館藏號、ISBN、題名、作者、出版社、復本數、語種、文獻類型、版次等欄位;
館藏表:館藏號、索書號、分類號、種次號、館藏位置、單價、出版日期等欄位;
流通表:借書證號、館藏號、借期、還期、續借、應還期、操作員等欄位;
借閱規則表:讀者類別編碼、圖書類別編碼、限借冊數、每期天數、續借天數、過期日期、罰金等欄位。
讀者類別表:讀者類別編碼、讀者類別等欄位。
圖書類別表:圖書類別編碼、圖書類別等欄位。
3.4 資料庫索引
建立索引是加快查詢速度的有效手段,資料庫的每一個表建立了主鍵,主鍵由一個或幾個欄位組成,每一個表都按主鍵建立了索引,部分表為了滿足查詢和排序的需要,除建立主索引外,還建立了次索引。例如在查詢時要用到「館藏號」、「作者」、「題名」等條件來查找圖書,因此,在書目表上除了對主鍵「館藏號」建立了主索引外,也對「作者」、「書名」等建立了次索引。
3.5 視圖
視圖是從一個或幾個基本表導出的表,它是定義在基本表之上的,它是一個虛表,資料庫中只存放視圖的定義,而不存放視圖對應的數據,數據仍然存放在原來的基本表中。通過定義視圖,可以使用戶眼中的資料庫結構簡單、清晰,並可以簡化用戶的數據查詢操作。由於本系統數據表較多,表中的欄位多,為了簡化對表的操作,我們創建了圖書_按書名查詢、期刊_按刊名查詢、期刊_按編輯部查詢、借閱規則查詢、待還書查詢、超期記錄查詢等30餘個視圖。
3.6 存儲過程
存儲過程是一段經過編譯的程序代碼,存放在資料庫伺服器端。通過調用適當的存儲過程,可在伺服器端處理大量數據,再將處理結果送到客戶端。這樣可減少數據在網路上的傳送,消除網路阻塞現象;例如:要查詢某條記錄,若該記錄在表中的順序號是10000,不採用存儲過程,伺服器將從1至於10000條記錄數據逐條送至客戶端,採用存儲過程後,由於過程是經過編譯的並且是在本地,不需要通過網路,因此能很快查出所需記錄並將結果送到客戶端,大大減少了網上數據傳輸量。存儲過程另一好處是可供不同的開發工具調用,如PB、VB、ASP、Delphi等開發工具均可調用。在流通模塊和WEB查詢模塊上均有圖書檢索功能,實際上調用同一存儲過程完成的。本系統建立了60多個存儲過程,實現諸如借還書處理、新書入庫統計、編目入館藏、讀者統計、生成索書號等功能。
3.7 資料庫調用
採用ODBC介面實現資料庫的調用,採用ADO介面調用。
4 條形碼的使用
條形碼具有唯一性和一次輸入後就可反復使用的優點,利用條形碼技術作為信息快速輸入的手段可迅速且不易發生錯誤地處理圖書管理業務。本系統使用條形碼作為圖書和讀者的標識,實現標識的唯一性。
使用條碼後,能夠使圖書管理工作更加簡單、快捷、不易出錯。例如,當一本書具有唯一條形碼標識,每位讀者也具有唯一條形碼標識時,圖書的借閱、查詢就十分便捷了。應用條形碼取代了以往填寫書袋卡、借書證,核對借閱時間等繁瑣的手工勞動。讀者在借書時只要將借書證給工作人員,工作人員只需登錄借書系統,用條形碼閱讀器掃描讀者借書證上的條形碼,屏幕就會顯示出該讀者的信息,包括讀者姓名、單位、可借幾本書、已借幾本書、是否過期、有無罰款等。如可以借書,工作人員只需用條形碼閱讀器掃描該讀者所需借的書上的條形碼符號後,該書的書名和條形碼等信息都從資料庫中調出顯示在屏幕上,自動記錄在該讀者的借閱檔案中,借書工作即告完成。一般借一本書僅需 1至 2秒鍾。操作完後,計算機自動地將該借閱者和借閱的圖書號碼輸入對應資料庫中,並自動提示借閱期限
④ 誰會做軟體工程的需求規約和設計規約啊
我也在找,只有模板。
先發給你吧
軟體需求規約
1. 簡介
[軟體需求規約 (SRS) 的簡介應提供整個文檔的概述。它應包括軟體需求規約的目的、范圍、定義、首字母縮寫詞、縮略語、參考資料和概述。]
[註:軟體需求規約完整地記錄對系統或系統一部分的所有軟體需求。以下是一個採用用例建模的項目的典型軟體需求規約概述。此工件由包含用例模型的用例、適用的補充規約及其他支持信息的包組成。有些軟體需求規約沒有採用用例建模,它在一個文檔中記錄了所有需求,而適用的部分可從補充規約(此後將不再需要)中插入,這種軟體需求規約的模板請參見 rup_srs.dot。]
[軟體需求規約可能會有許多不同的組織方式。有關以上兩種組織方式的進一步闡述以及軟體需求規約的其他組織方式,請參見 [IEEE830-1998]。]
1.1 目的
[闡明此軟體需求規約的目的。]軟體需求規約應詳細地說明所確定的應用程序或子系統的外部行為。它還要說明非功能性需求、設計約束以及提供完整、綜合的軟體需求說明所需的其他因素。]
1.2 范圍
[簡要說明此軟體需求規約適用的軟體應用程序、特性或其他子系統分組、與其相關的用例模型,以及受到此文檔影響的任何其他事物。]
1.3 定義、首字母縮寫詞和縮略語
[此小節應提供正確理解軟體需求規約所需的全部術語的定義、首字母縮寫詞和縮略語。可以通過參考項目詞彙表來獲取這些信息。]
1.4 參考資料
[此小節應完整地列出軟體需求規約中其他部分所引用的所有文檔。每個文檔應標有標題、報告號(如果適用)、日期和出版單位。列出可從中獲取這些參考資料的來源。這些信息可以通過參考附錄或其他文檔來提供。]
1.5 概述
[此小節應說明軟體需求規約其他部分所包含的內容,並解釋文檔的組織方式。]
2. 整體說明
[軟體需求規約的這一節應說明影響產品及其需求的一般因素。本節並不列出具體的需求,而只是提供在第 3 節中詳述的各種需求的背景,以使這些需求便於理解。其中包括產品總體效果、產品功能、用戶特徵、約束、假設與依賴關系、需求子集等內容。]
2.1 用例模型調查
[當採用用例建模時,此節將概述適用於該子系統或特性的用例模型或用例模型的子集。其中包括所有用例和主角的名稱列表及簡要說明,以及適用的各種圖和關系。請參見用例模型調查報告,它在此處可用作附件。]
2.2 假設與依賴關系
[本節說明所有重要的技術可行性假設、子系統或構件可用性假設,或者可作為此軟體需求規約所述軟體可行性的基礎的其他與項目有關的假設。]
3. 具體需求
[軟體需求規約的這一節應包括所有的軟體需求,其詳細程度應使設計人員能夠設計出可以滿足這些需求的系統,並使測試人員能夠測試該系統是否滿足這些需求。當利用用例建模時,這些需求在用例和適用的補充規約中記錄。如果沒有利用用例建模,則可以將補充規約的概要直接插入此節。]
3.1 用例報告
[在用例建模過程中,用例通常會定義系統的大部分功能性需求,以及一些非功能性需求。對於以上用例模型中的每個用例或其子集,都需在此節中引用或附上用例報告。務必要明確地標明每一需求。]
3.2 補充需求
[補充規約記錄未包含在用例中的需求。應在此處列出補充規約中適用於該子系統或特性的具體需求,並對這些需求加以改進,以足夠詳細地說明該子系統或特性。這些需求可以直接記錄在此文檔中,也可單獨保存為補充規約,補充規約在此處可用作附件。務必要明確地標明每一需求。]
4. 支持信息
[支持信息用於使軟體需求規約更易於使用。它包括:
? 目錄
? 索引
? 附錄
其中可以包括用例示意板或用戶界面原型。如果包含附錄,軟體需求規約應明確指出是否將附錄當作需求的一部分。]
⑤ 測試用例的編制
著重介紹一些編制測試用例的具體做法。
⒈測試用例文檔
編寫測試用例文檔應有文檔模板,須符合內部的規范要求。測試用例文檔將受制於測試用例管理軟體的約束。
軟體產品或軟體開發項目的測試用例一般以該產品的軟體模塊或子系統為單位,形成一個測試用例文檔,但並不是絕對的。
測試用例文檔由簡介和測試用例兩部分組成。簡介部分編制了測試目的、測試范圍、定義術語、參考文檔、概述等。測試用例部分逐一列示各測試用例。每個具體測試用例都將包括下列詳細信息:版本號、模塊名稱、用例編號、用例名稱、用例級別、預知條件、驗證步驟、期望結果(含判斷標准)、測試結果、測試時間、測試人員等。
⒉測試用例的設置
我們早期的測試用例是按功能設置用例。後來引進了路徑分析法,按路徑設置用例。演變為按功能、路徑混合模式設置用例。
按功能測試是最簡捷的,按用例規約遍歷測試每一功能。
對於復雜操作的程序模塊,其各功能的實施是相互影響、緊密相關、環環相扣的,可以演變出數量繁多的變化。沒有嚴密的邏輯分析,產生遺漏是在所難免。路徑分析是一個很好的方法,其最大的優點是在於可以避免漏測試。
但路徑分析法也有局限性。在一個非常簡單字典維護模塊就存在十餘條路徑。一個復雜的模塊會有幾十到上百條路徑是不足為奇的。筆者以為這是路徑分析比較合適的使用規模。若一個子系統有十餘個或更多的模塊,這些模塊相互有關聯。再採用路徑分析法,其路徑數量成幾何級增長,達5位數或更多,就無法使用了。那麼子系統模塊間的測試路徑或測試用例還是要靠傳統方法來解決。這是按功能、路徑混合模式設置用例的由來。
⒊設計測試用例
測試用例可以分為基本事件、備選事件和異常事件。設計基本事件的用例,應該參照用例規約(或設計規格說明書),根據關聯的功能、操作按路徑分析法設計測試用例。而對孤立的功能則直接按功能設計測試用例。基本事件的測試用例應包含所有需要實現的需求功能,覆蓋率達100%。
設計備選事件和異常事件的用例,則要復雜和困難得多。例如,字典的代碼是唯一的,不允許重復。測試需要驗證:字典新增程序中已存在有關字典代碼的約束,若出現代碼重復必須報錯,並且報錯文字正確。往往在設計編碼階段形成的文檔對備選事件和異常事件分析描述不夠詳盡。而測試本身則要求驗證全部非基本事件,並同時盡量發現其中的軟體缺陷。
可以採用軟體測試常用的基該方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆蓋法等設計測試用例。視軟體的不同性質採用不同的方法。如何靈活運用各種基該方法來設計完整的測試用例,並最終實現暴露隱藏的缺陷,全憑測試設計人員的豐富經驗和精心設計。
⑥ 軟體工程 畫圖
不知道你想描述的是什麼,也不像廣告啊。
⑦ 根據案例背景,要求用軟體工程方法加以實踐
草 這里是解答疑問的 不是專門給你們這些懶人提供作業答案的
不會就認真學,不會就問同學問老師,不會就上網查資料,拿別人做的交任務算什麼事
別他媽說沒時間,平時幹嘛去了,別他媽找一堆借口騙自己
最後完成不了活該,掛科了痛苦了才能讓你理解什麼叫自己的事自己負責任,不然永遠就這么懶下去吧,看你能混多久
⑧ 求軟體工程作業 超市進銷存管理系統用例規約及用例圖
軟體還是選象過河 就是很不錯
⑨ uml用例規約怎麼寫
軟體需求規約 (SRS) 記錄對系統或系統的一部分的完整軟體需求。使用用例建模時,本工件由一個包組成,該包包含用例模型的用例和適用的補充規約。
軟體需求規約 (SRS) 側重於收集並組織所有與您的項目有關的需求。請參見需求管理計劃以決定如何確定並組織需求。例如,您可能希望用一個獨立的 SRS 來說明產品的某一特定版本中各項特性的全部軟體需求。這可能包括幾個來自系統用例模型中的用例,以此來說明此特性的功能性需求,以及補充規約中一系列相關的詳細需求。
捉鬼游戲也是雷同的...