寫程式,做自己

2021-04-14 11:22:33 字數 4348 閱讀 3189

第 3 章:邏輯設計階段

microsoft corporation

2023年5月

摘要:本章描述 microsoft 解決方案框架 (msf) 設計流程的邏輯階段。在此階段,設計小組要根據概念設計在元件應用和整合方面作出高階的決定。設計小組將使用應用方案(在概念階段開發)來構建應用程式的邏輯模型。

在此階段結束時,設計小組應已開發出邏輯設計,此設計是工程實際設計階段的基礎。

邏輯階段的目標是將概念階段定義的功能轉化為乙個抽象模型,以確定將用於支援解決方案的協作邏輯元件。

所生成的邏輯設計並不涉及具體的技術。相反,此階段的目標是在開展任何技術工作之前對功能性進行分析和了解。例如,當乙個小組在邏輯階段設計電子商務解決方案時,可能認為名為 users 的元件是必需的服務,用以對訪問應用程式的使用者組進行跟蹤。但在實際設計階段,設計小組可能會選擇使用 microsoft® commerce server 2000。這種情況下,commerce server 中的 mscsprofileservice 元件提供了 users 元件的實際實施方案。

如果最終應用程式設計包括定製元件(即未在現成的解決方案或產品中提供的元件),就可以將邏輯階段確定的相應元件直接轉換到實際階段中。例如,在邏輯階段定義了 users 物件,而設計小組決定使其成為定製物件,那麼 users 物件就將在實際階段中重複。

本章的其餘部分將概述在設計 consolidatedretail.com 時使用的邏輯設計流程,然後詳細說明滿足應用方案要求所需的邏輯元件。

建立邏輯應用設計的第一步是確定將提供所需功能的業務物件(元件)。除了確定所需物件之外,設計小組還必須確定各個物件具有的行為、屬性和關係。設計小組將使用在概念階段建立的應用方案來確定這些物件及其關係、行為和屬性。

例如,以下是應用方案 3:

使用者選擇要瀏覽的目錄。顯示所選目錄的根中的各類別和各產品。然後,使用者可以選擇要檢視其細節的產品,或選擇乙個類別,檢視所選類別中的各產品和各子類別。

這樣,設計小組將通過分析此方案來確定支援解決方案的各個方面,並執行以下任務:

確定此方案中的業務物件。

確定這些物件的行為。

確定這些物件的屬性或特性。

確定這些物件之間的邏輯關係。

這些任務將在本章的後面小節中進行更為詳細的描述。

當完成每個應用方案的這些任務並將其歸檔後,設計小組就可以結束邏輯設計階段。有關 consolidatedretail.com 應用的完整設計示例,請參考「完成的邏輯設計」一節。

統一建模語言 (unified modeling language, uml) 是一種用於描述系統執行方式的工具。在直觀地描述系統以對其進行更為全面的分析時,uml 是非常有用的工具。通過使用 uml,可以很方便地用圖表說明元件、互動操作、關係等等。

uml 通常用於在邏輯階段簡化對設計的分析。

為了說明建立邏輯設計所涉及的任務,以下各節將提供簡單 uml 圖表示例。

當分析應用方案時,首要任務是確定其中的物件。物件通常是在應用方案中出現的業務實體或過程。例如,在以下段落中,物件將以粗體標識:

user(使用者)選擇要瀏覽的catalog(目錄)。顯示所選catalog(目錄)的根位置中的categories(各類別)和products(各產品)。然後,user(使用者)可以選擇要檢視其細節的product(產品),或選擇乙個category(類別),檢視所選category(類別)中的products(各產品)和子類別。

上例使用了以下物件:

圖 3-1 是描述此示例中所確定的物件的 uml 圖:

圖 3-1:物件

這五個物件成為此方案的基本物件;不過,在有些情況下,要使方案起作用,還需要新增其他物件,即使這些物件未在方案中明確列出。通過檢查沒有明顯的物件與其相關聯的行為,即可確定這些附加物件。要確定這些物件,必須首先確定其行為。

當確定明顯的物件組後,下一步是確定其各自的行為,這些行為也稱作「方法」或「服務」。

要確定物件行為,必須首先確定在方案中執行的操作。例如,在以下段落中,動作將以粗體標識:

使用者選擇要瀏覽的目錄。顯示所選目錄的根中的各類別和各產品。然後,使用者可以選擇檢視其細節的產品,或選擇乙個類別,檢視所選類別中的各產品和子類別。

第一項動作是使用者選擇目錄。圖 3-2 是乙個 uml 圖,它將 user(使用者)物件描述為具有 select catalog(選擇目錄)行為:

圖 3-2 user 物件的行為

如先前所述,必須從方案中派生沒有明顯的物件與其相關聯的行為。我們從而可以想到,由於使用者選擇了目錄,所以必然有某種允許從目錄列表中選擇目錄的機制。這樣,您可以從邏輯上假定 catalogs 物件存在,它管理所有的 catalog 物件。然後,應該將這一新物件新增到已定義物件的列表中。

當定義「catalogs」物件後,可以將第一項動作定義為 select catalog(選擇目錄),此行為屬於「catalogs」物件。

您可以繼續分析方案中的每個句子,直至確定所有的徵詢物件及其關聯行為。

當確定行為後,下一步是確定所定義物件的屬性(也稱作「特性」)。屬性是解決方案需要跟蹤的元素。它們是用於保留(或「存留」)資料的佔位符。

屬性派生的方法是,分析方案中的行為並提取需要存留(或跟蹤)的元素。例如,在上一節中,應用方案指定使用者將能夠檢視產品。當檢視產品時,顯示給使用者的元素將成為產品的屬性。例如,如果業務要求顯示產品規格和**,這些元素就會成為物件的屬性。

圖 3-3 是乙個 uml 圖,顯示具有 name 屬性的 user 物件:

圖 3-3:user 物件的屬性

確定物件及其屬性後,下一步是確定「關係」。關係是物件之間的邏輯關聯。

要確定關係,必須分析物件之間的互動方式。例如,「categories」物件與「category」物件具有關係,因為「categories」物件管理「category」物件的集合幷包含「category」物件。

務必要注意,另外有一種名為 inheritance(繼承)的關係,它專門處理乙個物件由另乙個物件定義的情況。例如,如果所設計的解決方案要銷售食品和書籍,但又需要在邏輯上將這兩者區別開,則可以定義這樣一種關係:「book」和「food」物件都屬於一種「product」物件。這樣,它們都可以繼承「product」物件。

在商務參考體系結構解決方案中,未在邏輯階段定義任何繼承關係。但在有些電子商務解決方案中,這些關係可能非常重要。

在參考體系結構應用 consolidatedretail.com 的邏輯設計階段,設計小組確定了以下物件,它們組成了支援解決方案所需元件的抽象集合。(這些物件按字母順序排列,而不是按使用順序排列。)

authentication

authentication 物件處理使用者的註冊和身份驗證。

catalog

catalog 物件存留特定目錄的資訊並管理該目錄內產品的集合。

catalog manager

catalog manager 物件管理目錄的集合。

category

category 物件存留有關特定類別的資訊。

category manager

category manager 物件管理類別的集合。

configuration

configuration 物件存留應用配置資訊並處理與配置相關的任務。

data functions

data functions 物件執行特定於資料的功能,如開啟與資料庫的連線。

e-mail

e-mail 物件用於向使用者傳送電子郵件訊息,如訂單確認訊息。

error handler

出錯時將呼叫「error handler」物件。它處理使用者友好的錯誤轉換和日誌錯誤。

order

order 物件存留有關特定訂單的資訊。

product

product 物件存留有關特定產品的資訊。

search

search 物件用於搜尋目錄並返回產品搜尋的結果。

user

user 物件用於存留特定使用者的有關資訊。此外,它還管理所有的使用者訂單。

user manager

user manager 物件管理使用者的集合。

圖 3-4 演示了主要物件之間以及主要物件與第二章所述的用例之間的關係

圖 3-4:物件關係

本章說明了確定組成電子商務應用的物件(即業務元件)及其屬性、行為和相互關係的四步驟流程。此流程的最終結果是建立出將用作技術設計和規範基礎的邏輯設計。

要注意,所生成的邏輯設計並不涉及具體的技術。這些技術將在實際設計階段確定,這是下一章討論的主題。

發布自己寫的NewsBar掛機程式

為了寫這個程式,本人仔細研究了newsbar的執行全過程,發現其中一些技術還是很有意思的,本人將會在以後的博文中一一講述。掛機程式的主要功能包括 1 自動無人值班執行 通過綜合運用網頁自動登入 監控執行狀態 模擬點選 驗證碼識別 網頁提交等技術,完成了程式讀廣告 程式存點等全過程,只要網路連線正常,...

程式設計師,不要讓自己做兔子

前段時間和乙個朋友聊天,酒席間向我抱怨他那段時間的鬱悶 專案經理從客戶那裡拿來乙個需求,實際上就是乙個ppt描述,我這個朋友拿過來看後剛開始不覺得什麼,乙個通常的 系統又能複雜的了哪去,但是越往後做就越發覺得裡面的問題。在ppt描述中很多地方描述的都有矛盾。比如論壇,沒錯,小公司,尤其是對於我們這樣...

程式設計師,不要讓自己做兔子

沒錯,小公司,尤其是對於我們這樣剛畢業的學生來說,這種情況會時有發生。朋友此類的抱怨還有很多,當然,陳述的時候大都把這種感覺同酒杯裡的酒一同拌著鬱悶飲了下去。這些抱怨我想起網上最近流傳的乙個笑話,關於兔子,狼還有乙隻老虎的,故事如下 兔子跟街上走著,迎面碰上了老狼。老狼伸手就給他一大嘴巴 讓你丫不戴...