前面我們已經就數(shù)據庫系統(tǒng)開發(fā)生命周期的各個階段進行了討論江滨。在這些階段中,常常會出現(xiàn)這樣的關鍵時刻,即數(shù)據庫開發(fā)人員必須獲取繼續(xù)進行數(shù)據庫系統(tǒng)開發(fā)所必需的實況(fact)对嚼。這些必要的實況包括該企業(yè)使用的工作術語、在使用當前系統(tǒng)時遇到的問題杰标、新系統(tǒng)可能為企業(yè)帶來的機遇兵怯、新的系統(tǒng)中對數(shù)據和用戶添加的必要的約束、新系統(tǒng)中需求的輕重緩急程度腔剂。要想獲得這些實況就需要借助于實況發(fā)現(xiàn)(fact-finding)技術媒区。
實況發(fā)現(xiàn)(fact-finding):使用面談、問卷調查等技術手段收集關于系統(tǒng)掸犬、需求和優(yōu)先考慮(preference)等實況信息的規(guī)范化過程袜漩。
1. 使用實況發(fā)現(xiàn)技術的時機
在數(shù)據庫系統(tǒng)開發(fā)生命周期中有很多的時機可以使用實況發(fā)現(xiàn)技術,但是湾碎,在生命周期的前期階段宙攻,包括數(shù)據庫規(guī)劃、系統(tǒng)定義和需求收集與分析階段介褥,實況發(fā)現(xiàn)顯得尤為關鍵座掘。在這些階段,數(shù)據庫開發(fā)人員需要獲取一些重要的實況柔滔,這些實況是數(shù)據庫系統(tǒng)開發(fā)所必須的溢陪。盡管在數(shù)據庫設計以及生命周期的后期階段也會用到實況發(fā)現(xiàn)技術,但其重要性沒有在前期階段那么強睛廊。比如形真,在物理數(shù)據庫設計期間,當數(shù)據庫開發(fā)人員試圖了解更多的關于 DBMS 選型的信息時超全。没酣,會用到實況發(fā)現(xiàn)技術。同樣卵迂,在最后的運行維護階段裕便,可以應用實況發(fā)現(xiàn)技術來確定系統(tǒng)是否需要調優(yōu)以提高性能,或者未滿足新的需求而進一步開發(fā)见咒。
注意偿衰,對于一個數(shù)據庫項目,實現(xiàn)對實況發(fā)現(xiàn)所需的時間和投入做一個大概的估計是非常重要的改览。前面曾提到下翎,考慮過細會陷入分析僵局(paralysis by analysis),然而宝当,考慮過粗會導致在理解錯誤的基礎上繼續(xù)尋求錯誤的解決方案视事,從而導致不必要的時間和金錢的浪費。
2. 收集實況的類型
在數(shù)據庫系統(tǒng)開發(fā)生命周期期間庆揩,數(shù)據庫開發(fā)人員需要獲取現(xiàn)有系統(tǒng)或新系統(tǒng)的實況俐东。下表的示例中給出了在生命周期各個階段需要采集的數(shù)據分類以及每個階段生成的文檔跌穗。前文曾提到過,數(shù)據庫系統(tǒng)開發(fā)生命周期的各個階段并非嚴格遵循既有順序虏辫,而是存在一定程度的迭代蚌吸,即通過反饋重復先前階段的活動。對于數(shù)據采集和文檔的生成也是如此砌庄。比如羹唠,在數(shù)據庫設計階段遇到的問題可能有必要重返需求收集與分析階段,以采集更多的數(shù)據娄昆。
階段 | 需要獲取的數(shù)據 | 需要生成的文檔 |
---|---|---|
數(shù)據庫規(guī)劃 | 數(shù)據庫項目的目的與目標 | 數(shù)據庫系統(tǒng)的任務描述和任務目標 |
系統(tǒng)定義 | 描述主要用戶視圖(包括不同的工作角色和不同的商業(yè)應用領域) | 定義數(shù)據庫應用程序的范圍和邊界佩微,定義用戶視圖 |
需求收集和分析 | 用戶視圖的需求;系統(tǒng)規(guī)范萌焰,包括性能和安全需求 | 用戶和系統(tǒng)的需求規(guī)格說明書 |
數(shù)據庫設計 | 用戶對邏輯數(shù)據庫設計的意見和建議哺眯;目標 DBMS 的功能 | 概念 / 邏輯數(shù)據庫設計(包括 ER 模型、數(shù)據字典杆怕、關系模式);物理數(shù)據庫設計 |
應用程序設計 | 用戶對界面設計的意見和建議 | 應用程序設計(包括對程序和用戶界面的描述) |
DBMS 選型 | 目標 DBMS 的功能 | DBMS 的評估和推薦選型 |
建立原型系統(tǒng) | 用戶對原型系統(tǒng)的意見和建議 | 修改用戶需求和系統(tǒng)規(guī)范 |
實現(xiàn) | 目標 DBMS 的功能 | |
數(shù)據轉換與加載 | 當前數(shù)據的格式壳贪;目標 DBMS 的數(shù)據導入性能 | |
測試 | 測試結果 | 采用的測試策略陵珍;測試結果的分析 |
運行維護 | 性能測試結果;新增或修改以后的用戶和系統(tǒng)需求 | 用戶手冊违施;性能分析互纯;修改以后的用戶需求和系統(tǒng)規(guī)范 |
3. 實況發(fā)現(xiàn)技術
數(shù)據庫開發(fā)人員在一個數(shù)據庫項目的開發(fā)期間通常會使用幾種實況發(fā)現(xiàn)技術,以下是五種經常使用的實況發(fā)現(xiàn)技術:
3.1 分析文檔資料
分析文檔資料有助于了解一些內幕信息磕蒲,比如對數(shù)據庫的需求是如何提出的留潦。此外,還可以幫助我們找到與解決所遇問題有關的企業(yè)這一方的有用信息辣往。如果問題與當前運行的系統(tǒng)相關兔院,那么就應該存在與該系統(tǒng)相關的文檔資料,通過分析這些文檔站削、表單坊萝、報表和文件,便能夠迅速的理解該系統(tǒng)许起。
3.2 面談
面談是最常使用十偶,通常也是最有用的實況發(fā)現(xiàn)技術。面談通過與人面對面的交流來收集信息园细。使用面談有這樣幾個目的:發(fā)現(xiàn)實況惦积、核實實況、澄清實況猛频、激發(fā)熱情狮崩、使終端用戶也參與進來蛛勉、明確需求、匯集想法和意見厉亏。然而董习,面談技術的使用需要良好的溝通技能,只有這樣才能有效的與那些具有不同價值觀爱只、地位皿淋、想法、動機和個性的人交流恬试。同其他的實況發(fā)現(xiàn)技術相比窝趣,面談并不是對所有情形都是最好的方法。
面談的方式有兩種:無組織的和有組織的训柴。無組織的面談 在訪問者的腦海里只有一個大概的目標哑舒。幾乎沒有什么明確的問題。訪問者依靠被訪問者建立面談的框架幻馁,由被訪問者引導面談的方向洗鸵。無組織的面談通常會偏離談話的主題,也正是由于這個原因仗嗦,這類會談對數(shù)據庫的分析和設計幫助并不大膘滨。
在 有組織的面談 中,訪問者準備了一組明確的問題對被訪問者提問稀拐。根據被訪問者的回答火邓,訪問者將提出更多的問題以澄清問題或對問題加以擴展。開放式問題(open-ended question)允許被訪問者隨心所欲的回答德撬,只要言之有理即可铲咨。例如 “你為什么對客戶注冊報表不滿意?” 就是一個開放式問題蜓洪。封閉式問題(closed-ended question)將答案限定為要么給出明確的選擇要么簡短的直接回答纤勒。“你是否能夠準時收到客戶的注冊報表隆檀?” 或者 “用戶注冊報表上的信息是否正確踊东?” 都屬于封閉式問題,這兩個問題僅僅需要回答 “是” 或 “不是”刚操。
要想保證面談的成功闸翅,需要選擇合適的被訪問者、事先做好充分準備以及以高效且有效的方式引導面談的進行菊霜。
3.3 觀察企業(yè)的運作
要理解一個系統(tǒng)的運作方式坚冀,最有效的實況發(fā)現(xiàn)技術就是觀察。應用這種技術鉴逞,你就有可能通過親身參與或僅僅是在一旁觀看一個人的活動來了解系統(tǒng)记某。當對采用其他方法收集到的有效數(shù)據還存在疑問時司训,或者由于系統(tǒng)某些方面的復雜性使得終端用戶無法清楚解釋時,觀察就會顯得特別有用液南。
與其他的實況發(fā)現(xiàn)技術不太一樣壳猜,成功的觀察需要精心的準備。為了確保觀察的成功滑凉,很重要的一點事盡可能多的了解將要觀察的人或業(yè)務活動统扳。例如,觀察者需要深入了解 “所要觀察的業(yè)務活動的低發(fā)畅姊、正常和高峰時段分別是什么時候咒钟?” 以及 “若有人在旁觀察并記錄,被觀察者的行為是否會失常若未?” 等問題朱嘴。
3.4 研究
另一種有用的實況發(fā)現(xiàn)技術是就應用和問題本身進行詳細研究。計算機行業(yè)期刊粗合、參考書籍和因特網(包括用戶組和公告板)都是很好的信息資源萍嬉。這些信息資源能夠提供別人解決相似問題的方法,以及是否存在能夠解決或者部分解決該問題的軟件包隙疚。
3.5 問卷調查
通過問卷的方式進行調查也是一種實況發(fā)現(xiàn)技術壤追。問卷調查表是一類具有特定目的的文檔,利用問卷調查表能夠從大量的人群中收集實況甚淡,并且答案具有一定的可控性大诸。當面對大量的被調查者時捅厂,沒有哪種實況發(fā)現(xiàn)技術能夠像問卷調查一樣如此高效的收集到同樣多的實況信息贯卦。
問卷調查表里可以包括兩類問題,即自由格式和固定格式的問題焙贷。自由格式的問題 為回答問題者在作答時提供了較大的自由度撵割。在問題后面,留有相應的空白用來作答辙芍。自由格式的問題有 “你通常會收到哪些報表啡彬? 如何使用它們?” 以及 “這些報表有什么問題嗎故硅? 如果有庶灿,請說明〕孕疲”等往踢。自由格式問題的難點在于被問卷者的答案難于列表統(tǒng)計,有的還可能答非所問徘层。
固定格式的問題 需要明確作答峻呕。對于每一個問題利职,被問卷者都必須從給出的答案中選擇。這樣瘦癌,很容易對問卷結果進行列表統(tǒng)計猪贪。但從另一方面來看,被問卷者可能無法提供一些也許有用的額外信息讯私。固定格式問題的示例是:“當前適用的房屋的租賃報表是切實可行的热押,無需更改⊥保” 被問卷者可能需要從 “是” 或 “否” 中選擇楞黄,或者從 “完全同意” “同意” “沒有意見” “不同意” 和 “強烈反對” 中選擇。
4. 使用實況發(fā)現(xiàn)技術的實例
這個小節(jié)首先概述 DreamHome 案例研究抡驼,然后使用該案例討論如何建立一個數(shù)據庫項目鬼廓。我們將使用圖表的方式示范如何在數(shù)據庫系統(tǒng)開發(fā)生命周期的前期階段(即數(shù)據庫規(guī)劃、系統(tǒng)定義和需求收集與分析階段)使用實況發(fā)現(xiàn)技術以及生成相應的文檔致盟。
4.1 DreamHome 案例研究——概述
1992 年碎税,DreamHome 在英國的格拉斯哥(Glasgow)的第一家分公司開業(yè)。從那以后馏锡,這家公司穩(wěn)步發(fā)展雷蹂,目前其分公司已經遍布英國大多數(shù)的主要城市,甚至同一個城市擁有幾家分公司杯道。然而匪煌,隨著公司規(guī)模的擴大,需要聘用越來越多的員工處理日益增長的大量文案工作党巾。更糟糕的是萎庭,即使是在同一個城市里,各分公司之間也缺乏信息交流和信息共享齿拂。公司負責人 Sally Mellweadows 察覺到已經有太多的錯誤發(fā)生驳规,如果她不及時采用措施挽救現(xiàn)狀的話,公司的成功將不會長久署海。Sally 認為數(shù)據庫可以解決一部分問題吗购,并因此提出開發(fā)一個數(shù)據庫系統(tǒng)以支持 DreamHome 的運作。她簡要描述了 DreamHome 通常的運作方式砸狞。
DreamHome 專門從事房地產管理捻勉,在希望出租房屋的業(yè)主和需要租賃房屋的客戶之間擔當中介,DreamHome 目前擁有 100 個分公司刀森,大約有 2000 名員工踱启。當有新員工進入公司工作時,需要填寫 DreamHome 員工注冊表。