軟體開發平台概要設計

來源:互聯網
上載者:User
軟體開發平台 概要設計

目錄

一、需求概述
  1.1問題概述
  1.2業務分析
  1.3其它需求

二、系統分析
  2.1運行支撐環境
  2.2開發支援

三、平台運行支撐部分
  3.1用戶端
  3.2應用伺服器

四、平台開發支援部分
  4.1業務組件管理 
  4.2介面組件管理 
  4.3介面產生器

五、系統應用
  5.1許可權管理
  5.2通用Data Integration工具
 

一、需求概述 1.1問題概述

技術能力一直是制約發展的瓶頸,軟體開發是其中一個重要因素。通過新員工引進和平台開發,以及多年開發的經驗積累,軟體開發情況得到好轉,但沒有根本解決問題。主要體現在:

  • 軟體開發效率不高,開發週期過長;
  • 軟體品質不高,系統維護成本過大;

問題存在的原因,需求分析與軟體設計是一方面;開發中複用率過低,重複工作過多是另一方面。

一個好的平台解決方案將有助於問題的解決,進一步提升開發效率。

1.2業務分析

根據開發過程,建立業務使用案例圖如下:

根據開發過程可以繪製活動圖表如下:

1.3其它需求

公司開發下一步發展,是推進主要產品的"產品化",縮短項目開發和實施周期。

1.3.1系統模型支援

應用系統產品化的途徑,是對系統進行分析,建立系統的業務模型。平台要支援系統建模,提供模型管理和運行支援

1.3.2多層支援

應用系統都是資料應用程式,資料是應用的核心。資料訪問是應用系統不可缺少的部分,也是重複開發最多的部分。平台要實現多層架構,將資料訪問分離出去,形成資料服務,使得對資料訪問不需要編程就能直接從服務得到。

1.3.3可靠性要求

應用系統需要在使用者處能夠長期穩定運行,其可靠性需要得到保證。

1.3.4系統效率

應用系統用於使用者日常工作,速度必須得到保證,不能太過遲緩,影響使用者工作。

二、系統分析

通過對開發需求的分析,我們將開發對平台的需求,分成兩個方面,一是將應用系統通用的部分,如資料訪問、業務管理等部分抽出來,按照一定構架,建立起應用系統啟動並執行完整支撐環境;二是對非通用部分,對其結果進行管理,強調程式的重用和可配置性,形成以組件為中心的開發管理和支援。

2.1運行支撐環境

運行支撐環境是將系統通用部分,以平台服務形式固化,提供應用系統啟動並執行支撐。運行支撐環境分為前端的用戶端和後端的應用伺服器兩部分。

運行支撐環境的使用案例圖如下:

運行支撐環境的活動圖表如下:

 

2.2開發支援

現在軟體開發使用都是第四代開發工具,功能十分完善。平台對開發的支援,是建立在開發成果的管理上,成果的粒度是組件,包括業務組件和介面組件。通過對開發成果的管理,提高了程式的複用性,並在開發工具上提供了應用系統組裝工具。

系統開發的活動圖表如下:

三、平台運行支撐部分

運行支撐環境是將應用系統的通用部分、公用系統,以平台形式固化,作為應用系統啟動並執行基礎。

運行支撐環境的關鍵是架構,架構是基於多層結構的,分成資料訪問層、業務層和介面層,支援介面、業務和資料的真正分離。

與三層對應,平台分為用戶端、應用伺服器(包括業務層與資料訪問層)。

3.1用戶端

應用系統是有多個表單/頁面組成,具體是哪些?這由使用者權限所決定。每個表單/頁面都是由介面組件組成,這也是由表單設定檔決定的。服務網關提供對應用伺服器的服務。

下面是用戶端的類圖:

下面是用戶端的順序圖:

 

 

3.1.1系統控制器

系統控制器是應用系統的容器,負責系統的裝載。應用系統是動態,是由使用者權限決定的。系統控制器的主要功能是使用者認證、系統初始化和介面調用等。

1、使用者認證

使用者認證也是一個介面應用,根據介面設定檔,初始化使用者登陸介面,取得使用者名稱和密碼,通過服務網關嚮應用伺服器發出認證請求,並得到返回的使用者權限。

2、系統初始化

根據得到的系統檔案,進行主介面的初始化,主要是菜單系統的產生等。

3、系統調用

以菜單系統為主,提供系統調用。對選擇調用,提供介面名稱,交表單控制器處理。

3.1.2表單(頁面)控制器

表單(頁面)控制器是表單的容器,負責控制表單內的活動。表單由組件組成,表單(頁面)控制器也可以看作特殊的表單組件,負責其它組件的裝載、相互之間關係管理、以及其它一些操作。表單控制器的主要功能是表單初始化和表單操作管理等。

1、表單初始化

根據控制器調用得到的表單名稱,找到相應的設定檔,按配置裝載組件,並按照配置進行組件的初始化。

2、表單操作管理

表單控制採用MVC模式,Model-View-Controller (MVC)模式基於使用者輸入,將域的建模、顯示和操作分為三個獨立的類[Burbeck92]:

  • 模型。模型用於管理應用程式域的行為和資料,並響應為擷取其狀態資訊(通常來自視圖)而發出的請求,還會響應更改狀態的指令(通常來自控制器)。
  • 視圖。視圖用於管理資訊的顯示。
  • 控制器。控制器用於解釋使用者的滑鼠和鍵盤輸入,以通知模型和/或視圖進行相應的更改。

圖1、描述了這三個對象之間的結構關係

視圖和控制器都依賴於模型。但是,模型既不依賴於視圖,也不依賴於控制器。這是分離的主要優點之一。這樣的分離允許模型在獨立於可視表示功能的情況下建立和測試。

在我們架構中,組件響應使用者操作,並以事件的方式傳遞給表單控制器。表單控制器使用通用的命令解析器,起到控制器的作用。對事件如何處理,也由設定檔決定,它定義了組件間的操作關係,控制器根據配置所定義的當作,實現介面間的操作。

舉例說明:

  • 當使用者按下"查詢"按鈕,按鈕(按鈕集合)組件發出按鈕事件,並告訴其名稱"查詢"。
  • 表單控制器,根據"查詢"事件名稱,尋找設定檔,得到其要做的工作。
    • 從查詢條件輸入組件,得到輸入的查詢條件(通過其屬性);
    • 將業務名稱(模型)與條件,通過服務網關傳遞到應用伺服器,進行處理,並取得返回的結果;
    • 使用返回的結果更新資料集(視圖);
    • 使用資料集(視圖)更新結果顯示組件(如網格)的顯示(使用組件的方法)
3.1.3服務網關

服務網關負責與應用伺服器的操作處理。服務網關的主要功能是建立串連,服務要求映射,傳遞應用服務要求等。

1、建立串連

根據系統設定檔建立與應用服務其的串連;

2、服務要求映射

應用伺服器有自己的介面,用戶端也可以定義自己的服務要求命令。服務網關負責客戶請求命令到應用伺服器介面的映射、轉換。

這樣的好處,更改應用伺服器的介面,只要修改服務網關的對應程式,不會影響到原來的應用程式,將減少用戶端與應用伺服器的耦合度。

3、服務要求

通過遠程調用,嚮應用伺服器傳遞服務要求,並取得結果,發送給要求者。

3.2應用伺服器

應用伺服器是中介軟體的集合,它提供了應用系統運行環境,實現系統的多層架構。平台的應用伺服器暫時只有兩部分組成,一是公用的資料訪問,二是業務層管理。

資料訪問層使用資料持久化設計,支援對象到資料的持久化,以實現業務組件(對象)到資料的自動操作。

業務層管理有完整的業務組件管理架構,支援業務組件的自動調用。

下面是應用伺服器的類圖:

下面是順序圖:

 

3.2.1業務管理

啟動並執行業務層管理,主要是動態業務組件執行管理,是建立在業務組件庫上(其管理見4.4.1)。業務管理的主要功能是,業務組件調用、執行等。

主要工作及流程如下:

  • 接收業務請求;
  • 在業務組件庫中找到正確業務組件,載入;
  • 執行業務組件;
  • 將需要的資料操作傳遞到資料訪問層,並得到返回結果;
  • 將執行結果返回給要求者。
3.2.2資料持久化

資料持久化將在ORM基礎上構建。

對象關係映射(ORM)提供了概念性的、易於理解的模型化資料的方法。ORM方法論基於三個核心原則:

簡單:以最基本的形式建模資料。

傳達性:資料庫結構被任何人都能理解的語言文檔化。

精確性:基於資料模型建立正確標準化了的結構。

NHibernate 是一個基於.Net 的針對關係型資料庫的對象持久化類庫。Nhibernate 來源於非常優秀的基於Java的Hibernate 關係型持久化工具。

NHibernate 從資料庫底層來持久化你的.Net 對象到關係型資料庫。NHibernate 為你處理這些,遠勝於你不得不寫SQL去從資料庫存取對象。你的代碼僅僅和對象關聯,NHibernat 自動產生SQL語句,並確保對象提交到正確的表和欄位中去。

使用NHibernate,只要按照NHibernate的規範定義對象,NHibernate將自動完成對象到資料對應,從而完成所需要的資料操作。

NHibernate的功能:

  • 資料連線:NHibernate能串連大多數大型資料庫系統,如ORALCE、SYABSE、DB2SQL SERVER等
  • 資料操作:能執行各種資料操作;
  • 對象到SQL語句:根據對象自動產生SQL語句;

NHibernate的工作流程是:

  • 應用系統使用(業務)對象操作,並傳遞對象到NHibernate;
  • NHibernate自動將對象操作翻譯成SQL語句;
  • NHibernate在串連池中尋找可用的資料連線,沒有則串連到指定資料;
  • NHibernate在資料連線上執行SQL語句,並得到結果;將結果返回;
四、平台開發支援部分

應用系統除開基礎的、通用的部分,還有許多與業務相關的千差萬別的應用。雖然應用各有不同,其中也有許多相同的地方,如介面、介面元素或者業務模型。

軟體開發要提高效率,就需要提高程式的複用率。提高程式複用率,關鍵在設計和程式架構,如實現介面與業務的分離,實現業務建模,實現業務的原子化。

另一方面,對已有程式如何有效再利用?也是提高程式複用率的途徑。我們認為來源程式級的複用,牽扯到太多因素,不是很有效;應該在開發成果的一定粒度上進行複用,我們將其定為組件。通過成熟組件的再利用,我們實現了軟體的複用。

在平台的軟體支援上,我們以組件的管理為基礎,以系統的組裝作為終極應用。

組件管理是將應用開發結果以組件形式進行管理,又分為業務組件管理和介面組件管理。

4.1業務組件管理

業務組件包含商務邏輯,如果是按照物件導向方法建立的,組件也可以看作業務模型。這樣,組件管理也就成為業務模型的管理。

在平台中,業務組件(對象)可以以兩種形式存在,一是實體型的業務組件,二是儲存在描述檔案中的。兩者區別是,描述型是簡單的業務對象,相當於只有屬性的業務對象;而實體型可以通過方法實現複雜的商務邏輯。

業務組件管理主要功能是,簡單業務組件產生,業務組件管理。

  • 簡單業務對象產生,是編輯業務對象(屬性),產生描述檔案或對象來源程式。當然來源程式還要人工加入到應用系統工程中,並進行必要修改;
  • 系統所使用的業務組件可以看作一個庫,業務組件管理,就是對業務組件庫管理,包括增、刪、改,以維護系統可使用的業務組件。
4.2介面組件管理

介面組件是構成介面的元素,好象磚塊之於建築物。在平台中,介面組件都以實體形式出現。介面與介面組件的關係,使用介面設定檔進行描述。

在平台中,介面組件組成介面組件庫。介面組件管理就是對介面組件庫的管理,包括增、刪、改,以維護系統可使用的業務組件。

4.3介面產生器

組件得到有效管理,也有支撐啟動並執行環境,但還不方便使用進行開發。介面產生器就是利用組件,協助進行介面開發的工具。

介面產生器就是一個專用的IDE(整合式開發環境),它以組件應用為中心,通過組件的選擇、運行、組裝、調試,使用組件構成特定的介面。結果以介面設定檔的方式儲存。

介面產生器的主要功能是,組件查看(包括測試)、介面組裝和測試。

1、查看組件

查看組件庫內組件,並可以RUN一下,看看感覺。

2、介面組裝

挑選組件,分別挑選介面組件和業務組件;

組成介面,使用介面組件組裝介面,包括屬性的設定,如位置、大小等;

測試介面,對構成的介面進行運行,對不滿意地方回到前面進行調整;

完成介面,測試完成的介面,將其以介面設定檔方式進行儲存,包括組成的組件、已設定的屬性,要處理的操作(事件)等。

下面是相關的順序圖:

 

 

五、系統應用

系統應用是系統提供一些的應用、工具,它們可以看作是特殊的業務,系統本身的業務,也是使用平台的,可以看作是平台應用的示範-DEMO。

基本的系統工具包括許可權管理和通用Data Integration工具等。

5.1許可權管理

許可權管理中存在3個對象:

  • 使用者
  • 角色
  • 許可權

是它們的類圖:

其中角色是某一類型使用者的集合,也可以看作特殊的使用者。

它們之間存在一些關係:

  • 使用者與許可權關係形成使用者權限;
  • 角色與許可權關係形成角色的許可權;
  • 使用者可以繼承其所屬角色的許可權,並加以修改;

許可權管理就是這些對象-使用者、角色、許可權以及它們關係的管理,包括增加、刪除、修改。

許可權管理另一重要的功能是使用者認證,它是在系統運行時使用。

5.2通用Data Integration工具

通用Data Integration工具是一種通用資料應用,也可看作特殊的業務組件。它能根據已定義的來源物件和目標對象,以及它們之間的關係,自動將來源物件執行個體(資料),轉化成目標對象(執行個體),並進行儲存。

通用Data Integration工具多應用於Data Integration,使用資料庫整合方式,將外部系統Data Integration到應用系統,或者將應用系統資料傳送給所需要的外部系統。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.