步驟:
???? 1。識別參與者(*)---在系統(tǒng)之外,透過系統(tǒng)邊界與系統(tǒng)進行有意義交互的任何事物.
????????????????????? 系統(tǒng)外---參與者不是系統(tǒng)的成分.
??????? 系統(tǒng)邊界---責(zé)任邊界,非物理邊界.(用戶和系統(tǒng)的接口).
??????? 系統(tǒng)邊界---直接與系統(tǒng)交互.(游客,旅行社,訂票系統(tǒng)----*旅行社是邊界*).
??????? 有意義交互---屬于目標系統(tǒng)的責(zé)任.
??????? 任何事物---人、外系統(tǒng)、外部因素、時間.
?參與者類:屬性---姓名:String,性別:Integer,電話:String,用戶名:String,密碼:String,首次登陸:Boolean
????????? 方法---驗證用戶名和密碼(),取參與者信息(),取未結(jié)帳訂單(),檢查是否第一次登陸().
??????? 地位:-----------------------??????????????????????????????????? ------------------------------------
???????????????????????????? \---------------------------------/
????????????? 識別用例之前重要????????????? 開始書寫用例文檔以后---不重要????? 測試部署階段---重要
?????? ?? 有助與識別用例-寧多勿少?????? 涉及的參與者太多????????????????? 需要從參與者的角度考慮
???? 2.識別用例(*)
?????? 定義:參與者使用系統(tǒng)達到某個目標.
?????? 用例要點:?可觀測---用例止于系統(tǒng)邊界(描述交互,而不是內(nèi)在的系統(tǒng)活動)的。
??????????????????????? 結(jié)果值---用例是目標導(dǎo)向的.(系統(tǒng)的存在是因為:參與者有一些需要使用它來滿足的目標)
???系統(tǒng)執(zhí)行---結(jié)果值由系統(tǒng)生成.(不同的擁護,得到不同的結(jié)果)
???由參與者觀測---業(yè)務(wù)語言(非技術(shù)語言),用戶觀點.
???一組用例實例---用例的粒度.
???? 注意:用例要有路徑,路徑要有步驟.而這一切都是"可觀測"的,最常犯的錯誤:粒度過細.
???? 常見錯誤:
????1.把交互的某個步驟當作用例.eg:會員---->輸入用戶名.
????2.把系統(tǒng)活動當作用例:???????????????? 建立數(shù)據(jù)庫連接
???????查詢訂單 ---/
????????????????????? 傳送sql語句
????????????????????????????????? 暫時無法判斷時,寧粗勿細
????3.四輪馬車的錯誤: "系統(tǒng)就是數(shù)據(jù)庫的增刪改查",這是常犯的錯誤,先關(guān)心數(shù)據(jù)庫,反而
????????????????????? 忽略了用戶的目的.
????4.crud(增、刪、改、查)掩蓋業(yè)務(wù): (我的理解:有的用例超出了本身的功能范圍).
????-------------------------方法--------------------------------------------------
????5.如果CRUD不涉及復(fù)雜的交互,一個用例“管理**”即可.
????? 不管是crud,都是為了完成“管理“的目標.
????? 甚至很多種基本數(shù)據(jù)的管理都用一個用例表示.
????6.靈活處理CRUD: 管理員---------管理用戶----《extend》--------增加用戶.
??????????????????? 也可以把包含復(fù)雜交互的路徑獨立出去形成用例命名時盡量不要用CRUD詞匯.
??????? 最現(xiàn)實:業(yè)務(wù)人員提供素材,開發(fā)人員寫用例文檔.
?/*用例---用戶的觀點,功能---系統(tǒng)的觀點.*/
?
?3.書寫用例文檔(*)-----寫:可觀測的(eg:系統(tǒng)按照查詢條件搜索零件)、體現(xiàn)客戶利益的文字(這才是“需求”)
??用例模版:?用例編號,用例名,用例描述,參與者
????前置條件,后置條件,
????基本路徑:1。。。。。。(核心的核心:客戶最想看到、最關(guān)心的路徑).
????????????? 2。。。。。。
?????? 3。。。。。。
????擴展:2a.........(系統(tǒng)要處理意外)
?????????? 2a.........(參與者的選擇,另一條成功路線,系統(tǒng)進行驗證)
????補充說明
????待解決問題
?? 路徑交互步驟的描述:
??1.只書寫"可觀測"的(體現(xiàn)客戶利益的文字).
??2.使用主動語句.(eg:會員提交用戶名和密碼,系統(tǒng)驗證用戶名和密碼)
??3.句子必須以參與者或系統(tǒng)做主語.(eg:參與者****,系統(tǒng)****)
??4.程序邏輯的處理.
???a.判斷
???b.循環(huán)
??5.不要涉及界面細節(jié).
?4.識別用例關(guān)系:(不要濫用用例關(guān)系)
??用例關(guān)系:---------------------<extend>------------------->擴展
??? 擴展:分離復(fù)雜部分和易變部分.(o--去城里(基本用例本身是完整的),o---上廁所(擴展用例,意外情況),當然不上廁所也能趕路).
??? 何時使用擴展關(guān)系:
????a.擴展路徑步驟多. b.擴展路徑內(nèi)部還有擴展點--擴展之擴展
????c.擴展路徑容易變化--分離以"凍結(jié)"基用例.
??? ---------------------<include>------------------>包含
??? 包含:提取公共交互,提高復(fù)用.(基本用例路徑本身是不完整的(把上廁所考慮在內(nèi)了,不上廁所就不完整了),包含用例)
???????? eg:o---下訂單-----------《include》--------->o---提供客戶信息.
??? 何時使用包含關(guān)系:
????a.某些交互步驟可以被多個用例復(fù)用.
????b.用例的交互步驟較多時,可以用Include簡化.
??? ------------------------------------------------>泛化
??? 泛化:同一業(yè)務(wù)目的的不同技術(shù)實現(xiàn).
???????? eg:??????? o--識別用戶
????????????????????? /???? \
???? o--驗證口令???? o--掃描視往膜
??? --------------除此之外,不能有別的關(guān)系---------->
??? 注意:用例之間不能通訊.
???? 開發(fā)過程第0步,業(yè)務(wù)建模.
?5.對用例進行排序和分包?
??排序原則:
???以下情況的用例優(yōu)先級最高:
????a.對類圖有重要影響.
????b.包含豐富的業(yè)務(wù)過程信息和線索.
????c.有開發(fā)風(fēng)險、時間緊迫或功能復(fù)雜.
????d.涉及到重要核心技術(shù)或新技術(shù).
????e.能直接產(chǎn)生經(jīng)濟效益或降低成本.
????f.代表本系統(tǒng)的核心流程.
??按參與者分包,按主題分包,按開發(fā)團隊分包,按發(fā)布情況分包.
??*可以先按主題分包,主題內(nèi)再按開發(fā)團隊和發(fā)布情況分包.
?補充需求規(guī)約:????????????????????????? 軟件需求
????????????????????????????????? |????????? |??????? |
??????? 非功能需求?? 功能需求?? 設(shè)計約束
??????????????? 非功能需求:可用性,可靠性,性能,可支持性.
??設(shè)計約束:用oracle數(shù)據(jù)庫平臺,用PB開發(fā).........
???? 軟件必須符合ISO... 標準........
???? 本質(zhì)上不是需求,只是從商業(yè)、行政、技術(shù)上的約束.
??? 下一步:
??需求<----->用例----->面向?qū)ο蠓治鲈O(shè)計、結(jié)構(gòu)化分析設(shè)計、其他方法、自己的方法.---->系統(tǒng)
???? 用例和oo
???? 1.“發(fā)明”與oo的環(huán)境.
???? 2.從外部actor的角度描述系統(tǒng)功能(和對象的消息類是).
???? 3.不暴露內(nèi)部結(jié)構(gòu).
???? 4.oo設(shè)計的最好開始,但.....
???? 5.用例可以用在非oo的開發(fā)過程中.
???? 6.oo理論不需要懂得和使用用例.
我的qq:8201726 驗證:java ,愿你我共同面對所有的問題!
-------------------------------------類圖,我的理解---------------------------------------------------------------------------------------------------
?1.識別類及其屬性.
??a.閱讀需求文檔,抽取對應(yīng)于業(yè)務(wù)實體或事件的名詞.
??b.將名詞進行分類、抽取出合適的類.
?2.識別類之間的泛化.
?3.識別類之間的聚合/組合.
?4.識別類之間的連接.
??
?
?
?