一步一步做專案(19)架構設計

2021-09-29 05:13:53 字數 1887 閱讀 3601

在前面一步一步做專案(13)managepublicnotice用例的分析模型的基礎上進行,重要用例的分析結束後,就可以進行系統的架構設計了,當然,對應小系統,沒有什麼太多的設計,主要受技術限制,選用了相應的技術,其架構基本就確定了,我這裡就是針對採用ssh框架技術的系統來進行相應的架構處理。

開發構架需要大量的時間,但是,經驗表明,有乙個好的構架作指導,後面的各階段會大大縮短整個開發周期,對大型專案尤其重要。在第乙個生命週期的細化階段,大約投資了30%的初期產品發布時,就可能開發出乙個穩定的構架,這是很吸引人的地方。這個構架會成為系統剩餘生命週期的基礎。由於對基礎的每個改動代價都很昂貴,在某些情況下也非常麻煩,因此,在開發工作的初期階段得到乙個穩定的構架是至關重要的。一方面,為某一特定系統開發構架是建立新的東西;另一方面,構架技術已經使用很多年了,已經積累了開發好的構架的經驗和知識,有許多經過多年進化而得到的通用「方案」,包括結構、協作和實際的構架,每個有經驗的構架設計師都應熟悉這些方案,這些方案通常稱為「模式」,如構架模式和設計模式,通用模式是構架設計師所依賴的資源。

建立堅實、可靠的構架需要經歷如下幾個步驟

1)確立目標

2)將類分組

3)展示技術

4)抽取子系統

5)應用準則和目標對構架進行評估

可擴充套件性。

雖然所有的系統都會發生變化,但是,普通高校藝術類招考綜合管理系統的目標看起來已經相當集中了——從考生那裡獲取志願資料,院校提供報考專業,考點安排考試,管理機構負責監控,同樣的資料針對不同的使用者有不同的展現。因此,對於採用成熟的技術來實現的話,可擴充套件性不是問題,因而優先順序不高。

可維護性。

cmsaecu系統必須易於理解和維護,系統應該可以配置,方便系統修改。

可靠性。

由於系統要處理敏感資料,必須高度可靠。它畢竟不是為支援生命系統而建造的,所以限制範圍內的停機時間是可以接受的,但是,不可**的停機時間是不應該出現的。

可伸縮性。

因為考生數量可能大幅增加,所以系統必須能夠擴大以適應更多的資料和更多的使用者。

對於一般的管理資訊系統,通過分析,一般有這樣一些分析類:

有了基本的包圖,上面的包圖,只是單純地從系統本身的角度來描述系統的構成關係,現在要進行設計,就需要針對具體的技術,因此,將實現的技術疊加上去,我這裡的實現技術就是ssh框架技術,就得到包含所採用技術的包之間的依賴關係,如下圖所示:

系統不是孤立存在的,需要和其他系統進行互動,就需要針對其他系統提供介面,就需要抽取需要的處理,形成子系統,這個系統需要提供excel資料的匯入匯出,普遍需要進行excel**操作,在匯入匯出過程中,就必須提供統一的處理機制,以便簡化系統,便於修改,這樣就得到如下圖所示的包圖:

完成了構架設計,需要針對目標進行評估:

可維護性和可擴充套件性

每個包都有嚴格定義的職責,而且每個包都被很好地封裝。對易於理解並易於維護的系統來說,這無疑是令人滿意的。另外,系統是基於一些標準的技術,將來的開發人員能夠從系統文件之外得到大量的資源支援。

可靠性和可伸縮性

對系統來說,決定可靠性和可伸縮性方面的大多數因素都集中在model和service兩個包內,而且要使用ssh框架來實現。如果能夠選擇正確的伺服器,為設計分配充足的時間,並在實際的應用伺服器上建立原型系統,應該能夠解決這方面的問題。

經過一系列的構思、模型、分組處理之後,就完成了系統構架的設計,其基本過程對於小系統主要受採用技術的限制,對於大系統來說,要得到乙個成熟的構架那是相當困難的,而且要經過漫長的時間來驗證。

android 一步一步做TabHost

本文將記錄如何一步一步做tabhost的,最終實現效果如下圖 下面具體講解如何一步一步做出來這個效果的!1 建立工程和類如下圖所示 2 編寫ic tab artists.xml 編寫main.xml 作用 乙個tabhost的配置檔案 android layout alignparentbottom...

一步一步 Sql Azure

一步一步 sql azure 1.使用 windowsazure 平台賬號登陸 2.新建sqlazure server 3.新建資料庫 4.為sql azure server 新增防火牆規則,只有將本機新增到規則裡才能從本機連線到該sqlazure server 5.連線到sql azure ser...

一步一步學cscope

告之 1,我不喜歡寫部落格 因為感覺太浪費時間 2,部落格能記住自己某階段學過的東西,而這些東西可能會很快的忘卻 所以我以後要學著在部落格上浪費時間 前言 本文件記錄了我今天 2007 11 9 下午學習cscope的一點收穫,特收錄部落格以作分享。在學習cscope過程中查閱了大量的文件,但發現適...