- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
;;;;;;;;;;;;;;;;;;;;;;圖7.1所示的自動取款機(ATM)系統,講述面向對象分析和麵向對象設計時使用的一個實例。
某銀行擬開發一個自動取款機系統,它是一個由自動取款機、中央電腦、分行電腦及櫃員終端組成的網路系統。ATM和中央電腦由總行投資購買。總行擁有多臺ATM,分別設在全市各主要街道上。分行負責提供分行電腦和櫃員終端。櫃員終端設在分行營業廳及分行下屬的各個儲蓄所內。該系統的軟體開發成本由各個分行分攤。;
圖7.1ATM系統;銀行櫃員使用櫃員終端處理儲戶提交的儲蓄事務。
儲戶可以用現金或支票向自己擁有的某個帳戶記憶體款或開新帳戶。
儲戶也可以從自己的帳戶中取款。通常,一個儲戶可能擁有多個帳戶。
櫃員負責把儲戶提交的存款或取款事務輸進櫃員終端,接收儲戶交來的現金或支票,或付給儲戶現金。
櫃員終端與相應的分行電腦通信,分行電腦具體處理針對某個帳戶的事務並且維護帳戶。;擁有銀行帳戶的儲戶有權申請領取現金兌換卡。使用現金兌換卡可以通過ATM訪問自己的帳戶。目前僅限於用現金兌換卡在ATM上提取現金(即取款),或查詢有關自己帳戶的資訊(例如,某個指定帳戶上的餘額)。將來可能還要求使用ATM辦理轉賬、存款等事務。;
1.找出候選的類與對象
對象是對問題域中有意義的事物的抽象,它們既可能是物理實體,也可能是抽象概念。具體地說,大多數客觀事物可分為下述5類:;(1)可感知的物理實體,例如,飛機、汽車、書、房屋等等。
(2)人或組織的角色,例如,醫生、教師、雇主、雇員、電腦系、財務處等等。
(3)應該記憶的事件,例如,飛行、演出、訪問、交通事故等等。
(4)兩個或多個對象的相互作用,通常具有交易或接觸的性質,例如,購買、納稅、結婚等等。
(5)需要說明的概念,例如,政策、保險政策、版權法等等。
;2.篩選出正確的類與對象
依據下列標準,刪除不正確或不必要的類與對象:
(1)冗餘
如果兩個類表達了同樣的資訊,則應該保留在此問題域中最富於描述力的名稱。
以ATM系統為例,上面用非正式分析法得出其中儲戶與用戶,現金兌換卡與磁卡及副本分別描述了相同的兩類資訊,???此,應該去掉“用戶”、“磁卡”、“副本”等冗餘的類,僅保留“儲戶”和“現金兌換卡”這兩個類。;(2)無關
僅需要把與本問題密切相關的類與對象放進目標系統中。有些類在其他問題中可能很重要,但與當前要解決的問題無關,同樣也應該把它們刪掉。
以ATM系統為例,這個系統並不處理分攤軟體開發成本的問題,而且ATM和櫃員終端放置的地點與本軟體的關係也不大。因此,應該去掉候選類“成本”、“市”、“街道”、“營業廳”和“儲蓄所”。;(3)籠統
通常把籠統的或模糊的類去掉。
以ATM系統為例,“銀行”實際指總行或分行,“訪問”在這裏實際指事務,“資訊”的具體內容在需求陳述中隨後就指明了。此外還有一些籠統含糊的名詞。總之,在本例中應該去掉“銀行”、“網路”、“系統”、“軟體”、“資訊”、“訪問”等候選類。;(4)屬性
在需求陳述中有些名詞實際上描述的是其他對象的屬性,應該把這些名詞從候選類與對象中去掉。當然,如果某個性質具有很強的獨立性,則應把它作為類而不是作為屬性。
在ATM系統的例子中,“現金”、“支票”、“取款額”、“帳單”、“餘額”、“分行代碼”、“卡號”、“密碼”、“類型”等,實際上都應該作為屬性對待。;(5)操作
在需求陳述中有時可能使用一些既可作為名詞,又可作為動詞的詞,應該慎重考慮它們在本問題中的含義,以便正確地決定把它們作為類還是作為類中定義的操作。
例如,談到電話時通常把“撥號”當作動詞,當構造電話模型時確實應該把它作為一個操作,而不是一個類。但是,在開發電話的自動記賬系統時,“撥號”需要有自己的屬性(例如日期、時間、受話地點等),因此應該把它作為一個類。總之,本身具有屬性需獨立存在的操作,應該作為類與對象。;(6)實現
在分析階段不應該過早地考慮怎樣實現目標系統。因此,應該去掉僅和實現有關的候選的類與對象。
在ATM系統的例子中,“事務日誌”無非是對一系列事務的記錄,它的確切表示方式是面向對象設計的議題;“通信鏈路”在邏輯上是一種聯繫,在系統實現時它是關聯類的物理實現。總之,應該暫時去掉“事務日誌”和“通信鏈路”這兩個類,在設計或實現時再考慮它們。;在ATM系統的例子中,經過初步篩選,剩下下列類與對象:ATM、中央電腦、分行電腦、櫃員終端、總行、分行、櫃員、儲戶、帳戶、事務、現金兌換卡。;3.初步確定關聯
在需求陳述中使用的描述性動詞或動詞片語,通常表示關聯關係。
以ATM系統為例,經過分析初步確定出下列關聯:;(1)直接提取動詞短語得出的關聯
ATM、中央電腦、分行電腦及櫃員終端組成網路。
總行擁有多臺ATM。
ATM設在主要街
原创力文档


文档评论(0)