見仁見智

          用程序員的眼光看世界

          2007年4月4日 #

          應(yīng)用開發(fā)的思考2------編寫好的需求分析書

          應(yīng)用開發(fā)的思考2
           
              我發(fā)現(xiàn)多數(shù)需求分析說明書編寫得毫無價值,多數(shù)公司的做法是寫完該需求說明書之后,就把它扔一邊,埋頭苦干寫程序了.一方面這和公司對需求分析的認(rèn)識不夠有關(guān),另一方面,也和需求分析編寫方式不盡合理,以至它的價值難以體現(xiàn)有關(guān).
              軟件程序,從最終的抽象意義而言,是計算機(jī)系統(tǒng)對自然語言的翻譯.而需求分析充當(dāng)了翻譯任務(wù)的急先鋒.很難想象,如果沒有一份好的需求說明書,針對客戶含糊不清的自然語言描述,開發(fā)者能做出一個符合要求的優(yōu)秀軟件.然而,什么是好的需求說明書?應(yīng)具備什么樣的特點?我認(rèn)為好的需求說明書應(yīng)有由如下三個階段,經(jīng)多次循環(huán)反饋而逐漸形成:
                 
           1 調(diào)研階段:
           客戶和需求分析師討論系統(tǒng)該具有的功能.客戶希望系統(tǒng)能做什么,達(dá)到什么樣的效果.需求分析師的責(zé)任是認(rèn)真聽取客戶的原始言語,通過討論,語言的提煉和客戶達(dá)成共識,最終得到確切的需求--客戶希望系統(tǒng)能做什么.這一過程運用的是自然語言,需求分析師必須具備良好的溝通能力,文字表達(dá)能力,并且必須具備客戶領(lǐng)域內(nèi)的相關(guān)業(yè)務(wù)知識,不使用用戶不懂的計算機(jī)專業(yè)詞匯.
              參與人員:需求分析師,客戶,系統(tǒng)設(shè)計師.
              運用工具:自然語言.
              階段成果:調(diào)研記錄書.

           2 確定功能結(jié)構(gòu)和設(shè)計系統(tǒng)原型:
           需求分析師和系統(tǒng)設(shè)計師討論客戶的需求.需求分析師針對調(diào)研階段的記錄,逐點提出客戶需求,并用uml的用例概念,和系統(tǒng)設(shè)計師進(jìn)行討論.系統(tǒng)設(shè)計師根據(jù)這些需求,運用他的技術(shù),知識和經(jīng)驗,將之分解總結(jié)為系統(tǒng)的功能結(jié)構(gòu).(此處僅針對應(yīng)用系統(tǒng)而言,對于其他系統(tǒng),可能還要總結(jié)進(jìn)程結(jié)構(gòu)或部署結(jié)構(gòu))得到功能結(jié)構(gòu)之后,系統(tǒng)設(shè)計師還要構(gòu)建系統(tǒng)原型,該原型用于和客戶進(jìn)行更好的交流.
           在這一階段之后,由于得到了功能分解表和系統(tǒng)原型,需求分析師和系統(tǒng)設(shè)計師已明白系統(tǒng)的雛形,該成果將作為開發(fā)者和客戶繼續(xù)進(jìn)行討論的基礎(chǔ).
           參與人員:需求分析師,系統(tǒng)設(shè)計師(或該設(shè)計師領(lǐng)導(dǎo)的相關(guān)團(tuán)隊).
           運用工具:uml,構(gòu)建原型的相關(guān)工具技術(shù).
           階段成果:功能分解表,系統(tǒng)原型.(大致的業(yè)務(wù)流程圖)
           
           3 編寫需求分析說明書
           在參照功能分解表和系統(tǒng)原型的基礎(chǔ)上,需求分析師和系統(tǒng)設(shè)計師編寫系統(tǒng)的需求分析說明書.該需求分析說明書作為客戶和系統(tǒng)開發(fā)者的橋梁,既表達(dá)了客戶想要系統(tǒng)做什么的愿望,又反映了系統(tǒng)開發(fā)者針對此需求得到的努力成果(功能分解表和系統(tǒng)原型).通過該說明書,對系統(tǒng)具有的功能和最終可能的形態(tài),客戶和開發(fā)者達(dá)成共識.
           有可能經(jīng)過多次的1,2階段的反復(fù),最終才得到需求分析說明書.各階段的成果應(yīng)妥善保存.
           參與人員:需求分析師,系統(tǒng)設(shè)計師,客戶.
           運用工具:自然語言,功能分解表,系統(tǒng)原型.
           階段成果:改進(jìn)的功能分解表,系統(tǒng)原型,(業(yè)務(wù)流程圖),需求分析說明書.
           
           第1階段,是開發(fā)者得到自然語言需求的階段.該階段的重要性不言而喻.
           
           第2階段,是需求分析編寫的核心階段.很多公司會有意無意忽略該階段.確實,該階段耗費的人力和時間挺多,但這個階段決不能馬虎的進(jìn)行,甚至忽略.只有詳盡的將自然語言翻譯成功能需求表,并為此構(gòu)建原型,開發(fā)者對系統(tǒng)究竟能做什么和未來該怎么做的認(rèn)識才會逐漸加深.并且,對應(yīng)的功能界面,能夠讓客戶大致認(rèn)識到最終的系統(tǒng)會是什么樣子.他能夠據(jù)此提出自己的滿意度,修改或者增加需求.
           我主張在構(gòu)建功能分解表的時候,將界面的相關(guān)控件,字段,標(biāo)簽都一一列出,并且和原型的界面相對應(yīng).這樣在功能分解表/需求分析說明書確定之后,開發(fā)者就有可能根據(jù)這些控件/字段/標(biāo)簽確立業(yè)務(wù)層的接口和數(shù)據(jù)庫系統(tǒng)的表結(jié)構(gòu),減少了概要設(shè)計階段所作的工作量.
           以下是一個分解功能的例子:
           
           功能:修改我的資料
                功能簡述:用戶可以更新個人資料
                界面控件:姓名文本框(輸入姓名),郵箱文本框(輸入郵箱),密碼文本框(輸入文本),確認(rèn)密碼文本框(輸入確認(rèn)密碼),所屬組別選擇框 (輸入所屬組別),地址文本域(輸入地址),備注文本域(輸入備注).提交按鈕.
                界面標(biāo)簽(Label):根據(jù)界面控件描述進(jìn)行配對.如姓名文本框的標(biāo)簽是"姓名".不再贅述.
                界面:見圖(修改我的資料)

                
                
             只有經(jīng)過詳盡完備的1,2階段后,我們才可能進(jìn)行第3階段,將1,2階段的成果綜合起來,和客戶進(jìn)一步討論需求.客戶可能會對功能分解不滿意,對原型有異議.這樣我們必須返回到1,2階段,再次分解功能,修改原型.直到客戶滿意為止.
             在這個基礎(chǔ)上,我們才可能編寫最終的需求說明分析書.我認(rèn)為,嚴(yán)格按照上述流程進(jìn)行編寫的需求說明書,就是好的.它的特點總結(jié)如下:
             1)經(jīng)歷過反復(fù)功能分解和原型構(gòu)建.客戶因原型而清楚認(rèn)識到自己想要系統(tǒng)的形態(tài),開發(fā)者經(jīng)多次反饋明確了系統(tǒng)所具備的功能.
             2)編寫良好的功能分解表,能夠幫助開發(fā)者進(jìn)一步設(shè)計業(yè)務(wù)接口.
             3)構(gòu)建成型的原型,有助于開發(fā)者設(shè)計數(shù)據(jù)庫系統(tǒng).
             4)*明確的業(yè)務(wù)流程圖,能夠協(xié)助開發(fā)者構(gòu)建系統(tǒng)的業(yè)務(wù)流.
            
             用戶的需求永遠(yuǎn)在變化,沒錯.但如果我們按照上述步驟努力在分析階段弄清楚客戶的需求,以后的開發(fā)維護(hù)階段就能將需求變更的代價降到最低.只有對事物認(rèn)識越深刻,才越有可能認(rèn)識到事物可能存在的變化.這條哲學(xué)法則在需求分析階段同樣適用.
            
             經(jīng)過以上討論,我們就可以看到為什么多數(shù)公司的需求分析書難以達(dá)到預(yù)期要求.它們沒有功能分解階段,沒有原型構(gòu)建階段,沒有反饋認(rèn)識再加深的階段....這樣的需求分析書,僅僅為構(gòu)建而構(gòu)建,對系統(tǒng)的開發(fā)毫無幫助.(我還看到過有人用三天寫完一個系統(tǒng)的需求分析書)接踵下去的軟件開發(fā)階段,如何進(jìn)行?這樣做出來的軟件,能好到哪里去?
            
             一點淺見,貽笑方家. :-)

          posted @ 2007-04-05 15:36 Diego 閱讀(1733) | 評論 (3)編輯 收藏

          四 烏有的需求說明分析書

          1 引言
           1.1 編寫目的
            本說明書是客戶與軟件系統(tǒng)開發(fā)者的溝通橋梁.客戶根據(jù)需求說明書提出需求,闡述系統(tǒng)能做什么.軟件系統(tǒng)開發(fā)者根據(jù)此需求,闡述需求實現(xiàn)的功能與界面,并將之清晰明白的反映到本說明書中,以供客戶審閱.
            本說明書的預(yù)期讀者為客戶,業(yè)務(wù)需求分析人員,系統(tǒng)設(shè)計人員,項目管理人員,軟件開發(fā)人員等系統(tǒng)開發(fā)的相干參與者.
           1.2 項目背景
            軟件開發(fā)過程中無可避免的存在源碼缺陷(以下簡稱BUG).在軟件系統(tǒng)的開發(fā)維護(hù)階段階段,對BUG的修復(fù)管理工作必不可少.本系統(tǒng)提供了bug的管理功能.客戶可應(yīng)用本系統(tǒng)簡單有效的管理BUG,以協(xié)助軟件系統(tǒng)的開發(fā)維護(hù)工作.
           1.3 定義,縮寫詞和符號
            BUG:軟件系統(tǒng)在功能或界面方面所產(chǎn)生的缺陷.

          2 系統(tǒng)運行環(huán)境
           2.1 硬件環(huán)境
            2.1.1 一臺586微機(jī),建議CPU主頻在500MHZ以上,內(nèi)存大于512MB.
           2.2 軟件環(huán)境
            2.2.1 WINDOWS 或類 LINUX 操作系統(tǒng).該操作系統(tǒng)應(yīng)能正常運行JAVA虛擬機(jī).
            2.2.2 安裝IE6或FIREFOX1.5瀏覽器
            2.2.3 安裝J2SDK,要求版本在1.4以上.
            2.2.4 安裝TOMCAT或其他支持SERVLET 2.3 的WEB 服務(wù)器.
            2.2.5 安裝MYSQL數(shù)據(jù)庫.要求版本在5.0以上.
           
          3 系統(tǒng)用例說明
           3.1 系統(tǒng)用例說明
           3.1.1 用例名稱:用戶查看BUG列表
              用例編號:1
              用例說明:用戶點擊"查看我的BUG"標(biāo)簽,查看屬于自己的BUG列表.或者點擊"查看所有BUG"標(biāo)簽,查看所有BUG列表.并能根據(jù)自定   義的條件過濾器,查看符合特定條件的BUG.
              前置條件:用戶已登錄系統(tǒng).
             
           3.1.2 用例名稱:用戶查看BUG詳情
              用例編號:2
              用例說明:在BUG列表上存在HTML鏈接,用戶點擊該鏈接,可以看到BUG的詳細(xì)情況.并且用戶可以修改BUG的狀態(tài),修改時間.
              前置條件:用戶已登錄系統(tǒng)
           
           3.1.3 用例名稱:用戶增加新BUG
              用例編號:3
              用例說明:用戶點擊"增加新的BUG"界面,進(jìn)入增加新BUG界面.可以增加新的BUG到系統(tǒng).
              前置條件:用戶已登錄系統(tǒng)
             
           3.1.4 用例名稱:用戶管理BUG列表過濾器
              用例編號:4
              用例說明:用戶可以增刪改BUG條件過濾器.在BUG列表中,可以通過選取過濾器查看符合特定條件的BUG(請參照用例1).
              前置條件:用戶已登錄系統(tǒng).
             
           3.1.5 用例名稱:用戶修改個人資料
              用例編號:5
              用例說明:用戶可以修改個人資料,例如修改EMAIL,住址等.
              前置條件:用戶已登錄系統(tǒng).
             
           3.1.6 用例名稱:用戶管理帳號
              用例編號:6
              用例說明:系統(tǒng)管理員可以增刪改新的用戶.
              前置條件:用戶已登錄系統(tǒng),且該用戶必須是系統(tǒng)管理員.
             
           3.1.7 用例名稱:用戶管理開發(fā)組
              用例編號:7
              用例說明:系統(tǒng)管理員可以增刪改開發(fā)組.在增加新BUG界面,該組名用于劃分BUG的歸屬.
              前置條件:用戶已登錄系統(tǒng),且該用戶必須是系統(tǒng)管理員.
             
           3.2 簡單的用例圖
            見圖:
            


          4 系統(tǒng)功能分解
           4.1 BUG管理
             4.1.1 列出我的BUG
              功能簡述:以分頁的列表方式列出指派給我的bug,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看bug詳情.
                 界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改)
                 界面標(biāo)簽(指Label):可選項,序號,概述,緊急程度,狀態(tài),所有人,發(fā)現(xiàn)時間.
                 HTML鏈接:序號
             
             4.1.2 查看所有bug
                 功能簡述:以分頁的列表方式列出所有bug,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看bug詳情.可以按過濾器查看符合該   過濾器條件的bug.
                 界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),過濾器選擇框(選擇某個過濾器).
                 界面標(biāo)簽(指Label):可選項,序號,概述,緊急程度,狀態(tài),所有人,發(fā)現(xiàn)時間.
                 HTML鏈接:序號
           
             4.1.3 增加新的bug
                 功能簡述:用戶可以增加新的bug
                 界面控件:所屬模塊選擇框(設(shè)定bug的所屬模塊),發(fā)現(xiàn)時間日期控件(確定bug的發(fā)現(xiàn)時間),發(fā)現(xiàn)者選擇框(確定bug的發(fā)現(xiàn)者),狀   態(tài)選擇框(確定bug的狀態(tài)),截止期限日期控件(確定bug的建議修改時間),指派給選擇框(選擇bug的所有人),描述文本域(輸入   bug的描述),附件一(文件選擇框),附件二(文件選擇框),附件三(文件選擇框).提交按鈕.
                 界面標(biāo)簽(指Label):根據(jù)界面控件描述進(jìn)行配對.如所屬模塊選擇框的標(biāo)簽是"所屬模塊".不再贅述.
                
                
           4.2 個人資料
             4.2.1 修改我的資料
                 功能簡述:用戶可以更新個人資料
                 界面控件:姓名文本框(輸入姓名),郵箱文本框(輸入郵箱),密碼文本框(輸入文本),確認(rèn)密碼文本框(輸入確認(rèn)密碼),所屬組別選   擇框(輸入所屬組別),地址文本域(輸入地址),備注文本域(輸入備注).提交按鈕.
                 界面標(biāo)簽(Label):根據(jù)界面控件描述進(jìn)行配對.如姓名文本框的標(biāo)簽是"姓名".不再贅述.
                
           4.3 過濾器配置
             4.3.1 列出過濾器
                 功能簡述:列表方式列出該用戶所增加的過濾器,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看過濾器詳情,可以刪除某條記   錄.
                 界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),刪除按鈕(對某條記錄進(jìn)行刪除)
                 界面標(biāo)簽(Label):可選項,序號,過濾器名稱.
                
             4.3.2 增加新過濾器
                 功能簡述:用戶可以增加新的過濾器.每個用戶只能有最多10個過濾器.
                 界面控件:過濾器名稱文本框(輸入過濾器名稱),狀態(tài)選擇框(選擇狀態(tài)),所屬模塊選擇框(選擇模塊),發(fā)現(xiàn)者選擇框(選擇發(fā)現(xiàn)者   ),指派給選擇框(選擇bug的所有人),發(fā)現(xiàn)時間段時間選擇框(選擇發(fā)現(xiàn)起始時間),發(fā)現(xiàn)時間段時間選擇框(選擇發(fā)現(xiàn)終止時間   ),截止時間段時間選擇框(選擇截止起始時間),截止時間段時間選擇框(選擇截止終止時間).提交按鈕.
                 界面標(biāo)簽(Label):根據(jù)界面控件描述進(jìn)行配對.如過濾器名稱文本框的標(biāo)簽是"過濾器名稱".不再贅述.
                
           4.4 系統(tǒng)管理
             4.4.1 用戶列表
                 功能簡述:列表方式列出所有用戶,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看某用戶詳情,可以刪除某條記錄.
                 界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),刪除按鈕(對某條記錄進(jìn)行刪除)
                 界面標(biāo)簽(Label):可選項,登錄ID,Email,電話,職位
                
             4.4.2 增加新用戶
                 功能簡述:增加新用戶
                 界面控件:登錄ID文本框(輸入用戶帳號),姓名文本框(輸入姓名),郵箱文本框(輸入郵箱),密碼文本框(輸入文本),確認(rèn)密碼文本   框(輸入確認(rèn)密碼),是否管理員選擇框(設(shè)定是否管理員),地址文本域(輸入地址),備注文本域(輸入備注).提交按鈕.
                 界面標(biāo)簽(Label):根據(jù)界面控件描述進(jìn)行配對.如姓名文本框的標(biāo)簽是"姓名".不再贅述.
           
             4.4.3 開發(fā)組列表
                 功能簡述:列表方式列出所有開發(fā)組,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看某記錄詳情,可以刪除某條記錄.
                 界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),刪除按鈕(對某條記錄進(jìn)行刪除)
                 界面標(biāo)簽(Label):可選項,開發(fā)組名稱,描述.
                
             4.4.4 增加新開發(fā)組
                 功能簡述:增加新開發(fā)組.
                 界面控件:組名稱文本框(輸入開發(fā)組名稱),備注文本域(輸入備注).提交按鈕.
                 界面標(biāo)簽(Label):組名稱,備注.
                
             4.4.5 日志列表
                 功能簡述:分頁列出系統(tǒng)日志.用戶刪除某條記錄,可以彈出框形式查看某條記錄詳情.
                 界面控件:刪除按鈕.
                 界面標(biāo)簽(Label):可選項,日志時間,用戶ID,操作概述.

          posted @ 2007-04-05 15:34 Diego 閱讀(1120) | 評論 (0)編輯 收藏

          三 功能和原型設(shè)計

              Diego打算用html開發(fā)系統(tǒng)的原型,在開發(fā)期間,他發(fā)現(xiàn)經(jīng)探討了解的需求信息還存在不足,而且,一些潛在的需求如果不經(jīng)討論確定,下一步的開發(fā)工作就沒辦法進(jìn)行.
             
              他向自己提出了這些要求:
             
              1.盡快開發(fā)系統(tǒng)原型并獲得客戶的通過.
              BS程序通常通過開發(fā)html模型以確定用戶需求,演示系統(tǒng)功能.演示讓客戶能夠最快的看到"實際的系統(tǒng)".盡管系統(tǒng)的最終開發(fā)結(jié)果不可能和原型一模一樣,然而原型確實能最大限度的幫助系統(tǒng)開發(fā)工作.
             
              2.盡快確定顯示界面所需的字段.
              這些顯示字段能夠幫助數(shù)據(jù)庫系統(tǒng)設(shè)計師確定系統(tǒng)的表結(jié)構(gòu).
             
              3.在開發(fā)原型時對系統(tǒng)進(jìn)行初步的功能分解.
              這步工作是系統(tǒng)架構(gòu)設(shè)計的基礎(chǔ),并且可以明確需求,協(xié)助需求分析設(shè)計書的編寫.經(jīng)驗表明,精心劃分的功能需求能使開發(fā)人員和客戶更好的進(jìn)行交流.
             
              另外,Diego還問自己如下問題:
             
              1.系統(tǒng)是否存在權(quán)限控制?如果存在,通過什么形式實現(xiàn)?
             
              2.系統(tǒng)有哪些隱含而必不可少的功能(例如用戶管理等管理模塊)?這部分功能應(yīng)該明確制定,并且和用戶進(jìn)行討論.
             
              Diego的原型和功能列表如下:
             
              功能列表:
             
              1 Bug管理
             
              1.1 列出我的bug
                功能簡述:以分頁的列表方式列出指派給我的bug,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看bug詳情.
                界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改)
                界面標(biāo)簽(指Label):可選項,序號,概述,緊急程度,狀態(tài),所有人,發(fā)現(xiàn)時間.
                HTML鏈接:序號
                界面:見圖(列出我的bug)
           
                
              1.2 查看所有bug
                功能簡述:以分頁的列表方式列出所有bug,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看bug詳情.可以按過濾器查看符合該過濾器條件的bug.
                界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),過濾器選擇框(選擇某個過濾器).
                界面標(biāo)簽(指Label):可選項,序號,概述,緊急程度,狀態(tài),所有人,發(fā)現(xiàn)時間.
                HTML鏈接:序號
                界面:見圖(查看所有bug)

              
              1.3 增加新的bug
                功能簡述:用戶可以增加新的bug
                界面控件:所屬模塊選擇框(設(shè)定bug的所屬模塊),發(fā)現(xiàn)時間日期控件(確定bug的發(fā)現(xiàn)時間),發(fā)現(xiàn)者選擇框(確定bug的發(fā)現(xiàn)者),狀態(tài)選擇框(確定bug的狀態(tài)),截止期限日期控件(確定bug的建議修改時間),指派給選擇框(選擇bug的所有人),描述文本域(輸入bug的描述),附件一(文件選擇框),附件二(文件選擇框),附件三(文件選擇框).提交按鈕.
                界面標(biāo)簽(指Label):根據(jù)界面控件描述進(jìn)行配對.如所屬模塊選擇框的標(biāo)簽是"所屬模塊".不再贅述.
                界面:見圖(增加新的bug)

                
              2 個人資料
             
              2.1 修改我的資料
                功能簡述:用戶可以更新個人資料
                界面控件:姓名文本框(輸入姓名),郵箱文本框(輸入郵箱),密碼文本框(輸入文本),確認(rèn)密碼文本框(輸入確認(rèn)密碼),所屬組別選擇框(輸入所屬組別),地址文本域(輸入地址),備注文本域(輸入備注).提交按鈕.
                界面標(biāo)簽(Label):根據(jù)界面控件描述進(jìn)行配對.如姓名文本框的標(biāo)簽是"姓名".不再贅述.
                界面:見圖(修改我的資料)

                
              3 過濾器配置
             
              3.1 列出過濾器
                功能簡述:列表方式列出該用戶所增加的過濾器,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看過濾器詳情,可以刪除某條記錄.
                界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),刪除按鈕(對某條記錄進(jìn)行刪除)
                界面標(biāo)簽(Label):可選項,序號,過濾器名稱.
                界面:見圖(列出過濾器)

              
              3.2 增加新過濾器
                功能簡述:用戶可以增加新的過濾器.每個用戶只能有最多10個過濾器.
                界面控件:過濾器名稱文本框(輸入過濾器名稱),狀態(tài)選擇框(選擇狀態(tài)),所屬模塊選擇框(選擇模塊),發(fā)現(xiàn)者選擇框(選擇發(fā)現(xiàn)者),指派給選擇框(選擇bug的所有人),發(fā)現(xiàn)時間段時間選擇框(選擇發(fā)現(xiàn)起始時間),發(fā)現(xiàn)時間段時間選擇框(選擇發(fā)現(xiàn)終止時間),截止時間段時間選擇框(選擇截止起始時間),截止時間段時間選擇框(選擇截止終止時間).提交按鈕.
                界面標(biāo)簽(Label):根據(jù)界面控件描述進(jìn)行配對.如過濾器名稱文本框的標(biāo)簽是"過濾器名稱".不再贅述.
                界面:見圖(增加新的過濾器)

                
              權(quán)限體現(xiàn)的實現(xiàn):
              系統(tǒng)權(quán)限:
              1)用戶需要登錄到系統(tǒng),才能進(jìn)行相關(guān)操作.
              2)用戶存在"非活動時限",如果超過一個時間定值用戶不進(jìn)行系統(tǒng)相應(yīng)操作,則提示用戶重新登錄.
             
              管理權(quán)限:
              1)用戶必須是管理員用戶,才能進(jìn)行系統(tǒng)的管理工作.
             
              應(yīng)用權(quán)限:
              1)只有系統(tǒng)管理員能夠刪除bug.
             
              在列出用戶要求的功能列表和參考權(quán)限實現(xiàn)方式之后,Diego將系統(tǒng)隱含必不可少的功能整理如下
             
              4 系統(tǒng)管理 (只有管理員才能操作該模塊的所有功能)
             
              4.1 用戶列表
                功能簡述:列表方式列出所有用戶,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看某用戶詳情,可以刪除某條記錄.
                界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),刪除按鈕(對某條記錄進(jìn)行刪除)
                界面標(biāo)簽(Label):可選項,登錄ID,Email,電話,職位
                界面:見圖(用戶列表)

              
              4.2 增加新用戶
                功能簡述:增加新用戶
                界面控件:登錄ID文本框(輸入用戶帳號),姓名文本框(輸入姓名),郵箱文本框(輸入郵箱),密碼文本框(輸入文本),確認(rèn)密碼文本框(輸入確認(rèn)密碼),是否管理員選擇框(設(shè)定是否管理員),地址文本域(輸入地址),備注文本域(輸入備注).提交按鈕.
                界面標(biāo)簽(Label):根據(jù)界面控件描述進(jìn)行配對.如姓名文本框的標(biāo)簽是"姓名".不再贅述.
                界面:見圖(增加新用戶)
                

              4.3 開發(fā)組列表
                功能簡述:列表方式列出所有開發(fā)組,可以選擇某條記錄進(jìn)行修改,可以彈出框形式查看某記錄詳情,可以刪除某條記錄.
                界面控件:序號Radio(可以選擇某條記錄),修改按鈕(對記錄進(jìn)行修改),刪除按鈕(對某條記錄進(jìn)行刪除)
                界面標(biāo)簽(Label):可選項,開發(fā)組名稱,描述.
                界面:見圖(開發(fā)組列表)

                
              4.4 增加新開發(fā)組
                功能簡述:增加新開發(fā)組.
                界面控件:組名稱文本框(輸入開發(fā)組名稱),備注文本域(輸入備注).提交按鈕.
                界面標(biāo)簽(Label):組名稱,備注.
                界面:見圖(增加新開發(fā)組)

                
             4.5 日志列表
                功能簡述:分頁列出系統(tǒng)日志.用戶刪除某條記錄,可以彈出框形式查看某條記錄詳情.
                界面控件:刪除按鈕.
                界面標(biāo)簽(Label):可選項,日志時間,用戶ID,操作概述.
                界面:見圖(日志列表)

           


             Diego將該原型交給烏有,烏有將據(jù)此編寫需求分析說明書,和子虛先生作進(jìn)一步的交流.

          posted @ 2007-04-04 16:25 Diego 閱讀(1062) | 評論 (4)編輯 收藏

          二 烏有和Diego的對話(如何確定需求)

              烏有和Diego在討論需求
             
              烏:Diego,對這個系統(tǒng)的看法怎樣?
              D:嗯,我覺得我們遺漏了某些東西.查看bug列表時,是允許所有用戶查看呢?還是經(jīng)過系統(tǒng)驗證的用戶?
              烏:.... 我覺得應(yīng)該是經(jīng)過系統(tǒng)驗證的用戶吧.
              D:不一定.如果用戶要登錄之后才能看到bug列表,不方便.理想狀況應(yīng)該打開系統(tǒng)就能看到.   
              烏:但是你要考慮這么一個問題,假設(shè)bug按發(fā)現(xiàn)時間的順序分頁列出且bug的數(shù)量很多,很可能在第一頁該用戶看不到屬于自己的bug,他就以為沒有bug.假如我們要求他必須先登錄,那我們就可以根據(jù)他的登錄信息,列出他的bug的總數(shù),bug的列表...等等.
              D:我上當(dāng)當(dāng)網(wǎng)購書的時候,發(fā)現(xiàn)他們可以在不登錄的情況下記下用戶的瀏覽歷史.我猜想這可以通過寫用戶的cookie實現(xiàn).
              烏:但我們公司的技術(shù)人員對這項技術(shù)不熟.我可不能憑猜測確定這個需求.
              (雖然Diego躍躍欲試,但看到烏有先生堅決的神色,也只有妥協(xié))
              D:好吧,那我們就必須先登錄,再看列表.
             
              (于是烏有先生編寫系統(tǒng)的用例如下:)
             
              用例1:用戶查看bug列表
              1.用戶點擊"bug列表"標(biāo)簽,查看屬于自己的bug列表.   
              前置條件:用戶已登錄系統(tǒng).
             
              (該用例獲得一致通過)
             
              (烏有先生編寫系統(tǒng)用例2)
              用例2:用戶查看bug詳細(xì)信息
              1.用戶點擊bug列表中的某個bug,進(jìn)入bug詳細(xì)信息頁面.
              2.用戶可以修改bug的狀態(tài),修改時間.
              前置條件:用戶已登錄系統(tǒng).
             
              D:我發(fā)現(xiàn),如果系統(tǒng)要求用戶必須先登錄才能查看bug,那么此時系統(tǒng)列出的bug都是他的,列出其他人的bug好像沒什么必要.
              烏:但是你要考慮,假設(shè)我是項目經(jīng)理或者測試組組長,我想看到所有bug的列表.系統(tǒng)列出所有bug還是必要的.
              D:解決辦法有兩種.1)訪問系統(tǒng)的時候,根據(jù)某種邏輯(如時間,模塊,bug性質(zhì))列出bug的列表.大家不用登錄就可以看到.我稱這個為"公共bug列表界面".用戶一訪問系統(tǒng)就能看到這個界面. 2)或者用戶登錄之后,點"列出所有bug"列表.當(dāng)然,用戶還可以構(gòu)造自己的過濾器,以決定列出bug的條件.
              烏:那么其實"列出所有bug"和"列出自己的bug"功能可以合并到一起.只不過默認(rèn)狀態(tài)列出屬于自己的bug,簡單的選取條件后又可以列出所有bug.
              D:對,這種想法不錯.而且,各自選擇應(yīng)該能匯總成一個名稱,姑且稱之為過濾器.用戶可以建幾個常用的過濾器以供快捷使用.
              烏:好辦法!
             
              (于是烏有先生修改用例1如下:)
             
              用例1:用戶查看bug列表
              1.用戶點擊"bug列表"標(biāo)簽,查看bug列表. (此時列出的所有bug屬于該用戶).
              2.用戶可以選擇某些條件,系統(tǒng)根據(jù)這些條件列出相應(yīng)的bug.如果什么條件都不選,系統(tǒng)列出所有bug.
              前置條件:用戶已登錄系統(tǒng).
             
              (烏有先生繼續(xù)編寫用例如下)
             
              用例3:用戶添加bug
             1.用戶點選"添加bug"標(biāo)簽,進(jìn)入添加bug界面.   
             2.用戶可以添加bug,設(shè)定bug的簡單描述,詳細(xì)描述,bug的發(fā)現(xiàn)時間,建議修復(fù)時間,所屬模塊,添加人,所有人,修改人,狀態(tài).
            
             用例4:用戶增刪改過濾器
             1.用戶點擊"過濾器列表"標(biāo)簽,查看當(dāng)前過濾器列表和當(dāng)前所采用的過濾器.
             2.用戶可以增刪改新的過濾器.
            
             (烏有滿意的伸伸懶腰)
             烏:我想差不多了.這個系統(tǒng)確實不算太復(fù)雜.
             D:我設(shè)計個原型,然后一起找子虛先生繼續(xù)討論.
             烏:好的,加油!

          posted @ 2007-04-04 16:13 Diego 閱讀(862) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 都兰县| 海伦市| 高阳县| 潍坊市| 明溪县| 泽普县| 炎陵县| 台湾省| 博爱县| 鹤峰县| 犍为县| 自治县| 克拉玛依市| 博兴县| 东兴市| 绥江县| 江北区| 双峰县| 黔西县| 唐河县| 平乐县| 平阳县| 新巴尔虎左旗| 常山县| 祥云县| 偃师市| 游戏| 田东县| 辽阳市| 平南县| 乐亭县| 炎陵县| 静海县| 咸丰县| 泸州市| 同心县| 富蕴县| 曲沃县| 长海县| 建平县| 鹤岗市|