軟件系統項目詳細介紹「軟件系統設計方案包括哪些內容」

1、什麼是軟件應用系統的系統設計

所謂的軟件系統設計其實就是通過某種特定的平台,而達到完成軟件系統項目的整體軟件的功能和性能。從軟件工程管理的角度來看,軟件系統項目的設計過程主要分為兩步完成。

(1)概要設計

將軟件系統項目的需求轉化為系統的數據結構和軟件的系統總體結構——此設計階段的工作重點在於軟件系統項目的靜態結構設計,並設計出構成軟件系統項目的各個物理組成元素——程序模塊、數據庫表結構、測試用例、各種設計文檔文件等。

當然,在軟件系統項目的系統概要設計中所需要的各種信息主要來自於軟件系統項目的需求分析的結果。

(2)詳細設計

在前面的系統概要設計中的軟件系統項目總體結構設計完成的基礎上,通過對軟件系統項目結構中的各個物理組成元素進一步設計細化和完善,最終得到軟件系統項目的更加詳細的數據結構和算法、用戶界面設計、關鍵性技術問題(包括開發環境和工具、運行環境和平台等)的解決方案和對應的實現技術等。

2、軟件系統的概要設計階段中的主要工作重點

(1)設計中所需要的各種信息主要來自於軟件系統項目的需求分析結果。

(2)概要設計工作的重點內容:是設計出軟件系統項目的系統體系結構。

(3)系統架構設計工作的基本流程如下,這個階段是軟件系統項目的系統架構師發揮作用的主要階段。

軟件項目實訓及課程設計指導——軟件系統設計中的概要設計示例

因此,軟件應用系統在進行系統設計時,軟件系統項目的系統設計人員需要做到如下的三步:

1)對系統需求進行描述;

2)對系統結構進行描述;

3)對系統行為進行描述。

因此,可以看出在這三個步驟中,第1、2步是靜態的,其建模方式一般稱為靜態建模;而第3步則是動態的,其建模方式則稱為動態建模。在UML的分析和設計的建模技術實現中靜態建模可以使用UML的例圖、類圖等UML規範的圖形來表示;而動態建模則可以用UML中的狀態圖、時序圖、活動圖等圖形表示。由此可知,靜態建模機制和動態建模機制是UML的兩大主要類型。

3、軟件系統的詳細設計階段中的主要工作重點

(1)軟件系統的詳細設計中所涉及的主要工作內容

1)用戶界面設計、和各個模塊組件的設計、實現技術等內容(給出軟件結構中各模塊的內部過程描述)

2)模塊內部的算法設計

(2)基本要求—— 一般是做到類的方法和屬性的描述,但這些方法的實現就不必做了。

4、為什麼要進行(或者開展)軟件應用系統的設計階段的工作

(1)主要的原因

通過對於軟件應用系統的用例分析,軟件系統的分析和設計人員可以產生出一個系統的分析模型,但是設計人員很少有直接根據這個分析模型去完成程序的開發實現。為什麼?如下示圖為某個BBS論壇系統的系統後台管理的用例圖的局部截圖:

軟件項目實訓及課程設計指導——軟件系統設計中的概要設計示例

首先,我們不要幻想直接把分析類圖畫好後,就直接按照其去編碼。

其次,我們應該了解到從用例圖中得到的分析模型,只是表達了系統中的一些關鍵性的概念,而不能表達系統中的性能和系統的外觀。

最後,系統的分析模型往往對於系統的結構設計來說又往往過於簡單,復用和調試等等都不能在這個模型中被考慮完成。

因此,我們有必要對前面的分析模型再進一步地進行設計,以最終產生出軟件系統的最終設計模型。

5、開展軟件應用系統的系統設計工作的主要目的

進行或者開展軟件應用系統的系統設計主要的目的是能夠指明一種易轉化成代碼的工作方案,同時也是對前一個階段中的分析工作的進一步的細化—— 即進一步細化軟件系統分析階段所提取的類(包括其操作和屬性),並且增加新類以處理諸如數據庫、用戶接口、通信、設備等技術領域方面的問題。

之所以如此,是因為軟件系統的系統設計是對問題域外部可見行為的規格說明、並增添實際的計算機系統實現所需的細節,包括人機交互、任務管理和數據管理的細節。如下為某個應用系統中的某個數據庫表結構定義的局部截圖:

軟件項目實訓及課程設計指導——軟件系統設計中的概要設計示例

6、軟件應用系統設計時的基本要求

在進行軟件應用系統的系統設計時所應該考慮的主要問題在於:處理什麼?怎麼處理?如何使用?

因此,軟件應用系統設計時所需要關注的方面,概括起來主要包括以下三個大類:

(1)處理的對象,也就是數據。

(2)處理的方式,也就是我們的系統如何來處理系統的邏輯。

(3)如何進行交互,這個交互包括用戶(使用者),以及外部系統。

7、讀者需要區分軟件設計和軟件的編程實現

(1)軟件設計以面向數據為主,以面向功能和面向對象為輔;

(2)而軟件的編程實現則以面向對象為主,以面向數據和功能為輔。

8、在進行軟件應用系統設計時所應該要注意的要點

(1)核心問題——能否使用重複的體系結構模式

也就是能否達到結構級的軟件重用——即能否在不同的軟件體系中,使用同一體系結構。比如我們經常說的C/S和B/S體系結構等問題。因為體系結構是從更高的層面上考慮問題——關注的問題就體現在”不變”因素上,體系結構一般關心應用程序的模式,更加體現在通過技術去解決這些業務差異帶來的各種影響。

比如,關心是否是分佈式應用程序,關心系統分層是如何設計,也關心性能和安全——因此,在這樣的情況之下,會考慮集群,負載平衡,故障遷移等等一系列技術的使用。如下示圖為某個軟件應用系統在系統架構設計中應用MVC體系結構模式的分層設計結果的局部示圖:

軟件項目實訓及課程設計指導——軟件系統設計中的概要設計示例

(2)軟件系統設計工作中所應該要遵循的”3W”原則

Who(為誰設計,用戶是誰)

What(要解決用戶的哪些問題—-功能方面、性能方面)

Why(為什麼要解決這些問題—-為用戶帶來價值、降低開發方的成本等)

其實”3W”的本質,就是要求軟件應用系統的系統設計人員圍繞着”用戶”而不是圍繞着”我們”或者”時髦的技術”來開展軟件應用系統的設計工作的,因此滿足”用戶的需求、便於用戶的使用、同時又能使開發的技術儘可能簡單而相應地降低軟件應用系統開發的總體成本”,這就是軟件應用系統的設計人員所要追求的設計目標。

9、軟件應用系統設計中的系統概要設計——總體結構設計

(1)在什麼時期進行軟件應用系統的系統概要設計

在軟件系統的需求分析明確並對軟件應用系統的系統需求進行域建模之後,需要進一步開展系統概要設計的工作,因為軟件應用系統的系統概要設計對後續的軟件應用系統的開發、測試、實施、維護等方面的工作都起到關鍵性的影響。因此,軟件應用系統的設計人員需要重點關注、細心周到地開展相關的工作。

(2)軟件應用系統的概要設計工作的工作重點

如何使得系統概要設計工作能夠適應特定的實施環境和部署環境?系統概要設計工作的核心應該是規劃方案的構造,在揭示實施細節的基礎上得到設計方案的詳細對象模型。如下示圖為某個軟件應用系統的部署環境的局部截圖:

軟件項目實訓及課程設計指導——軟件系統設計中的概要設計示例

(3) 軟件應用系統的概要設計工作的重要性

1)分析和設計模型是交錯並且迭代的

2)軟件應用系統的概要設計的重要性主要體現在它是把軟件應用系統的需求轉化為軟件應用系統的開發實現過程中的最重要的環節,並且軟件應用系統的系統設計最終結果的優劣在根本上也決定了軟件應用系統的總體質量。

10、軟件應用系統設計中的系統概要設計所涉及的主要內容

(1)制定開發規範

制定本軟件應用系統中的各種開發規範是項目開發小組今後共同開發的基礎,有了這個開發規範和程序模塊之間、項目成員彼此之間的接口規則、方式和方法,開發團隊中的各個成員也就有了共同的工作語言、共同的工作平台,從而使得整個軟件開發的工作可以協調而有序地進行和開展。而制定這些規範所涉及的主要內容包括:

1)代碼體系、接口規約、命名規則

2)規定設計文檔的編製標準。

3)規定與硬件,操作系統的接口規約,命名規則。

(2)軟件系統的體系結構設計(架構設計)

體系結構是對複雜的軟件系統的一種抽象,如客戶/服務器(C/S)和瀏覽器—Web 服務器—數據庫服務器(B/W/S)結構等的應用。同時在架構設計中還應該考慮採用什麼形式的框架技術和服務器的平台類型等內容。

(3)劃分軟件應用系統中的各個模塊並進行組件類的設計

根據用戶的需求實現從功能上來劃分各個功能模塊,在模塊設計中應該遵守”功能獨立的單一職責原則(SRP,Single-Responsibility Principle)”是模塊化設計的基本原則。因為,”功能獨立”的模塊可以降低軟件應用系統在開發、測試、維護等階段的代價。

(4)數據結構與算法設計

設計高效率的程序是基於良好的數據結構與算法的,而不是基於編程小技巧的。因為數據結構與算法就是一類數據的表示及其相關的操作。確定軟件系統所涉及的文件系統的結構以及數據庫中的數據訪問的模式,進行數據完整性和安全性的設計,並確定輸入,輸出文件的詳細的數據結構是本階段所要考慮的問題。

(5)數據庫的邏輯設計及系統數據流圖(DFD),如下示圖為藍夢CRM管理系統中的系統數據結構設計階段所涉及的系統數據流圖(DFD)設計結果局部示圖。

軟件項目實訓及課程設計指導——軟件系統設計中的概要設計示例

(6)其它如可靠性等方面的設計等

軟件系統在運行過程中,為了能夠適應環境的變化和用戶新的功能要求,需經常對軟件進行改造和修正、完善。在軟件開發的一開始就要確定軟件可靠性和其它質量指標,考慮相應措施,以使得軟件易於修改和易於維護。

11、掌握軟件應用系統的系統概要設計中所涉及的系統設計的一些基本的原則

(1)先進性

在設計思想、系統構架、採用技術和選用平台上均要有一定的先進性、前瞻性和擴充性。特別要考慮一定時期內業務的增長和應用的變化趨勢。在充分考慮技術上先進性的同時,盡量採用技術成熟、市場佔有率比較高的產品,從而保證建成的網站系統具有良好的穩定性、可擴展性和安全性。

(2)實用性

在盡量滿足業務功能需求的前提下,要適應各業務角色的工作特點,做到簡單、使用和人性化。實現統一身份和資源管理、統一認證、統一內容管理、個性化界面和內容定製。

(3)可靠性

由於企業應用中不可避免地要涉及不同的用戶群(操作層、管理層和業務層等人員),所以建設的信息服務網站系統必須在建設平台上保證系統的可靠性和安全性。系統設計中,應有適量冗餘及其他保護措施,平台和應用軟件應具有容錯性和容災性。

(4)開放性

在系統架構、採用技術和選用平台方面都必須要有較好的開放性。特別是在選擇產品上,要符合開放性要求,遵循國際標準化組織的技術標準,對選定的產品既有自己獨特優勢,又能與其他多家優秀的產品進行組合,共同構成一個開放的、易擴充的、穩定的和統一軟件的系統。

(5)可維護性

系統設計應標準化和規範化,按照分層設計,軟件化實現。對於採用的軟件構件化開發方式要滿足:一是系統結構分層,業務與實現分離;二是以統一的服務接口規範為核心,使用開放標準;三是構件語意描述要形式化;四是提煉封裝構件要規範化。

(6)可伸縮性

考慮到一般的企業應用的網站系統的網上業務建設是一個循序漸進、不斷擴充的過程,系統要採用積木式結構,整體構架的考慮要與現有系統進行無縫連接,為今後系統擴展和集成留有擴充餘量。

(7)可移植性

在選擇開發的應用平台上,應該考慮能夠建設出一套與平台無關,以統一的服務接口規範和與各種數據庫相連的應用組件。

12、軟件應用系統的系統概要設計階段最終的重要輸出結果

(1)軟件應用系統的概要設計說明書,一般需要包含如下的主要內容:

1)編碼規範:信息形式、接口規約、命名規則;

2)物理模型:組件圖、配置圖;

3)不同角度的構架視圖:用例視圖、邏輯視圖、進程視圖、部署視圖、實施視圖、數據視圖(可選);

4)系統總體布局:哪些部分組成、各部分在物理上、邏輯上的相互關係;

(2)數據庫設計說明書

(3)用戶手冊

(4)制定初步的測試計劃

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/298385.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-28 17:29
下一篇 2024-12-28 17:29

相關推薦

發表回復

登錄後才能評論