6.1 从分析到设计
? 1、準(zhǔn)備高質(zhì)量的”用例模型 ”…
? OOAD的主要輸入!Use Case is the main input of OOAD
1.1 用例模型
? 用例模型的組成
? 參與者
? 用例(取名:短小精悍的動(dòng)名詞,如“取錢”、“修改密碼)
? 用例描述 (作為領(lǐng)域模型的輸入、設(shè)計(jì)的輸入、開發(fā)的輸入…)
? 系統(tǒng)邊界
? 系統(tǒng)順序圖
? 操作契約(待講)
? 用例模型是客戶、開發(fā)單位、設(shè)計(jì)人員、編程人員之間的合約
1.2 參與者 Actor
? Actor
? 位于系統(tǒng)之外并和系統(tǒng)進(jìn)行交互的一類事物(人、物、其他軟件子系統(tǒng)等)
? 參與者主要有三類
? 主要參與者Primary – 這類用戶希望通過(guò)新系統(tǒng)實(shí)現(xiàn)自己的商業(yè)目標(biāo)
? 為什么 ?他們是用例的主要來(lái)源
? 例如,POS系統(tǒng)的 cashier
? 協(xié)助性參與者Supporting – 提供支持,比如關(guān)于第三方軟件接口
? 為什么?為了澄清外部接口、協(xié)議等
? 例如, POS系統(tǒng)的信用卡支付的授權(quán)認(rèn)證服務(wù)
? 幕后參與者 Offstage – 對(duì)系統(tǒng)功能感興趣,但不是很強(qiáng)烈
? 為什么?為了保證所有想到的參與者都考慮了,盡可能滿足所有人的期望,這些參與 者的愿望一? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 般不需要實(shí)現(xiàn),有余力時(shí)可以做一下
? 例如, POS系統(tǒng)的政府稅收代理人員
1.3 用例 Use Case
? 用例
? 系統(tǒng)為響應(yīng)參與者引發(fā)的一個(gè)事件而執(zhí)行的一系列的處理/動(dòng)作,這些處 理應(yīng)該為參與者產(chǎn)生一種有價(jià)? ? ? ? ? ? ? ? ? ? 值的結(jié)果
? 用例描述的三種詳細(xì)程度
? 簡(jiǎn)短格式 brief
? 一段扼要的總結(jié),通常是主事件流
? 在早期階段的分析中很有用,標(biāo)識(shí)系統(tǒng)范圍、可能的風(fēng)險(xiǎn)等
? 隨意的 casual (寫到哪里是哪里!)
? 非正式的一段、一段描述,每一段也許是一個(gè)場(chǎng)景scenarios
? 正式的 fully
? 根據(jù)指定的格式,一步步地描述每個(gè)動(dòng)作,包括前置條件、后置條件、成功保證、約 束等
? 重要的用例,都需要有詳細(xì)的描述。有助于建立詞匯表、抽取概念類、評(píng)估風(fēng)險(xiǎn)等
? 在后續(xù)的迭代過(guò)程中,可能需要來(lái)回修改這些描述
? 至少有10%的關(guān)鍵用例,必須以這種方式來(lái)描述
1.3 用例 Use Case,Example
? 簡(jiǎn)短或者隨意格式案例 Brief or Casual format
? For example, use case “Process Sale”:
? A customer arrives at a checkout with items to purchase
? The cashier uses the POS system to record each purchased item
? The system presents a running total and line-item details
? The customer enters payment information, which the system validates and records
? The system updates inventory
? The customer receives a receipt from the system and then leaves with the items
1.4 系統(tǒng)邊界
? 選擇系統(tǒng)邊界Choose system boundary | scope | border
? Is the cashier an actor of system?
? Is Credit authorization our responsibility?
? 原則“屁股決定腦袋!”
1.5 發(fā)現(xiàn)所有“主要參與者”及其目標(biāo)
? Find all primary actors and their goals
? Who does what or needs what ?
? Rather than asking “what you do” ask “what is your role, goal, interest”
? Analyze events
? Remember stakeholders and their goals
? E.g , Cashier wants easy processing while management wants efficient and secure processing
? 千萬(wàn)不要把“老板”的要求給疏忽了 !
1.6 標(biāo)識(shí)“合適的”用例
? 如何判斷一個(gè)用例是否是一個(gè)合適的用例 ?
? ①用例是否描述了應(yīng)該做什么,而不是如何做?
? ②用例的描述是否采取了參與者的視點(diǎn)?
? 在確定用例的關(guān)鍵特征時(shí),應(yīng)該依據(jù)參與者的視點(diǎn)。也就是說(shuō),應(yīng)該從參與者如何使 用系統(tǒng)的角? ? ? ? ? ? ? ? ? ? ? ? ? ? ?度出發(fā)定義用例,而不是從系統(tǒng)自身的角度
? ③用例是否對(duì)參與者有價(jià)值?
? 用例不是動(dòng)作步驟的任意集合,它必須為參與者提供可辨識(shí)的價(jià)值
? ④用例描述的時(shí)間流是否是一個(gè)完整場(chǎng)景?
? 每一個(gè)用例必須描述出,在一個(gè)給定場(chǎng)景下參與者將如何使用系統(tǒng)的完整事件流。這 有助于避免? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 產(chǎn)生單步用例、部分用例或者功能分解用例
? ⑤是否所有的參與者、用例都有相應(yīng)的關(guān)聯(lián)用例或關(guān)聯(lián)參與者?
? 判斷方法:三種
? Boss test
? Can you excuse your time doing THIS ?
? EBP(Elementary Business Process )test
? 一個(gè)人于某個(gè)時(shí)刻在某個(gè)地點(diǎn)所執(zhí)行的任務(wù),以響應(yīng)業(yè)務(wù)事件,該任務(wù)能夠增加可量化的業(yè)務(wù) 價(jià)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 值,并使數(shù)據(jù)保持一致的狀態(tài)
? 例如,批準(zhǔn)一筆信貸、確定訂單價(jià)格
? 規(guī)模測(cè)試 Size test
? Remember that use case(s) will be processed in your time boxes
? 下列用例是否合適?
? Negotiate a Supplier Contract(太大!)
? Handle Returns(OK)
? Log On(如果你一整天都在登錄,老板會(huì)不滿意的)
? Move Piece on Game Board(太小!)
小結(jié)
? 用例模型是OOAD的重要輸入
? 參與者的三種類型
? 用例描述的三種細(xì)節(jié)程度
? 系統(tǒng)的邊界
? 定義“合適“的用例
轉(zhuǎn)載于:https://www.cnblogs.com/mayZhou/p/10548352.html
總結(jié)
以上是生活随笔為你收集整理的6.1 从分析到设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UOJ#310.【UNR #2】黎明前的
- 下一篇: 复合数据类型,英文词频统计