軟件工程(總體設計①設計過程)

經過需求分析(https://blog.csdn.net/weixin_45626468/article/details/115324885)階段的工作,系統必選“做什么”已經清楚了,現在是決定“怎樣做”的時候了。

總體設計的基本目的就是回答“概況地說,系統應該如何實現”這個1問題,因此,總體設計又稱為概要設計或初步設計。

通過這個階段的工作將劃分出組成系統的物理元素——程序、文件、數據庫、人工過程和文檔等

但是每個物理元素仍然處于黑盒子級,這些黑盒子里的具體內容將在以后仔細設計。

總體設計階段的另一項主要任務是設計軟件的結構,也就是確定系統中每個程序是由哪些模塊組成的,以及這些模塊相互間的關系。

總體設計過程首先尋找實現目標系統的各種不同的方案,需求分析階段得到的數據流圖(https://blog.csdn.net/weixin_45626468/article/details/115117900)是設想各種可能方案的基礎。

然后分析員從這些供選擇的方案中選取若干個合理的方案,為每個合理的方案準備一份系統流程圖,列出組成系統的所有物理元素,進行成本/效益分析(https://blog.csdn.net/weixin_45626468/article/details/115227014),并且制定實現這個方案的進度計劃。

分析員應該綜合分析比較這些合理的方案,從中選出最佳方案向用戶和使用部門負責人推薦。

如果用戶和使用部門負責人接受了推薦的方案,分析員應該進一步為這個最佳方案設計軟件結構,通常,設計出初步軟件結構后還要多方改進,從而得到更合理的結構,進行必要的數據庫設計,確定測試要求并且制定測試計劃。

從上面的敘述當中不難看出,在詳細設計之前先進行總體設計的必要性;

可以站在全局高度上,花較少的成本,從較抽象的層次分析對比多種可能的系統實現方案和軟件結構,從中選出最佳方案和最合理的軟件結構,從而用較低成本開發出較高質量的軟件系統。

設計過程

總體設計過程通常由兩個主要階段組成:

系統設計階段,確定系統的具體實現方案

結構設計階段,確定軟件結構

典型的總體設計過程包括:

1.設想供選擇的方案

如何實現要求的系統呢?在總體設計階段分析員應該考慮各種可能的實現方案,并且力求從中選出最佳方案。在總體設計階段開始時只有系統的邏輯模型,分析員有充分的自由分析比較不同的物理實現方案,一且選出了最佳的方案,將能大大提高系統的性能/價格比。

需求分析階段得出的數據流圖是總體設計的極好的出發點。設想供選擇的方案的一種常用的方法是,設想把數據流圖中的處理分組的各種可能的方法,拋棄在技術上行不通的分組方法(例如,組內不同處理的執行時間不相容),余下的分組方法代表可能的實現策略,并且可以啟示供選擇的物理系統。

2.選取合理的方案

應該從前一步得到的一 系列供選擇的方案中選取若干個合理的方案,通常至少選取低成本、中等成本和高成本的3種方案。在判斷哪些方案合理時應該考慮在問題定義和可行性研究階段確定的工程規模和目標,有時可能還需要進一步征求用戶的意見。

對每個合理的方案,分析員都應該準備下列4份資料。
(1)系統流程圖。
(2)組成系統的物理元素清單。個
(3)成本/效益分析。
(4)實現這個系統的進度計劃。

3.推薦最佳方案

分析員應該綜合分析對比各種合理方案的利弊,推薦一個最佳的方案,并且為推薦的方案制定詳細的實現計劃。
用戶和有關的技術專家應該認真審查分析員所推薦的最佳系統,如果該系統確實符合用戶的需要,并且是在現有條件下完全能夠實現的,則應該提請使用部門負責人進一步審批。在使用部門的負責人也接受了分析員所推薦的方案之后,將進人總體設計過程的下一個重要階段一結構設計。

4.功能分解

為了最終實現目標系統,必須設計出組成這個系統的所有程序和文件(或數據庫)。對程序(特別是復雜的大型程序)的設計,通常分為兩個階段完成:首先進行結構設計,然后進行過程設計。結構設計確定程序由哪些模塊組成,以及這些模塊之間的關系;過程設計確定每個模塊的處理過程。結構設計是總體設計階段的任務,過程設計是詳細設計階段的任務。
為確定軟件結構,首先需要從實現角度把復雜的功能進一步分解。 分析員結合算法描述仔細分析數據流圖中的每個處理,如果一個處理的功能過分復雜,必須把它的功能適當地分解成一系列比較簡單的功能。一般說來,經過分解之后應該使每個功能對大多數程序員而言都是明顯易懂的。功能分解導致數據流圖的進一步細化,同時還應該用IPO圖或其他適當的工具簡要描述細化后每個處理的算法。

5.設計軟件結構

通常程序中的一個模塊完成一個適當的子功能。應該把模塊組織成良好的層次系統頂層模塊調用它的下層模塊以實現程序的完整功能,每個下層模塊再調用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。軟件結構(即由模塊組成的層次系統)可以用層次圖或結構圖來描繪。如果數據流圖已經細化到適當的層次,則可以直接從數據流圖映射出軟件結構

6.設計數據庫

對于需要使用數據庫的那些應用系統,軟件工程師應該在需求分析階段所確定的系統數據需求的基礎上,進一步設計數據庫。在數據庫課中已經詳細講述了設計數據庫的方法,本書不再贅述。

7.制定測試計劃

在軟件開發的早期階段考慮測試問題,能促使軟件設計人員在設計時注意提高軟件的可測試性。本書第7章將仔細討論軟件測試的目的和設計測試方案的各種技術方法。

8.書寫文檔

應該用正式的文檔記錄總體設計的結果,在這個階段應該完成的文檔通常有下述幾種。
(1)系統說明主要內容包括用系 統流程圖描繪的系統構成方案,組成系統的物理元素清單,成本/效益分析;對最佳方案的概括描述,精化的數據流圖,用層次圖或結構圖描繪的軟件結構,用IPO圖或其他工具(例如,PDL語言)簡要描述的各個模塊的算法,模塊間的接口關系,以及需求、功能和模塊三者之間的交叉參照關系等。
(2)用戶手冊根據總體設計階段的結果 ,修改更正在需求分析階段產生的初步的用戶手冊。
(3)測試計劃包括測試策略,測試方案,預期的測試結果,測試進度計劃等。
(4)詳細的實現計劃
(5)數據庫設計結果

9.審查和復審

最后應該對總體設計的結果進行嚴格的技術審查,在技術審查通過之后再由客戶從管理角度進行復審。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534303.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534303.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534303.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ygo游戲王卡組_ACG大科普(7)游戲王

大家是否在小時候接觸過一種卡片類似這種的 這就是今天的主角游戲王。 背景 1996年,《游戲王》漫畫開始在集英社《周刊少年Jump》連載。 1998年,Bandai推出以《游戲王》原作中登場的集換卡牌游戲“M&W”為題材的集換卡牌。 采用Bandai的卡片自動販賣…

Qt圖形界面編程入門(基本窗口及控件)

基本窗口類QWidget QWidget是所有窗體部件的基類,例如對話框類,主窗體類,以及其他諸如按鈕,編輯框,標簽等等都是由QWidget派生得到,QWidget擁有的方法往往都可以在其他子類中使用。 窗體的幾何尺寸分為包…

背景se_盤點那些RPG手游中主角的背景故事,越悲情越強大

RPG游戲一直以代入感超強的游戲方式來吸引玩家,用超越現實的藝術手段把玩家帶入到虛擬的游戲世界,讓玩家擔任不同的社會角色來去經歷不同的虛擬故事,體驗多種人生經歷,想要扮演任何角色都是有可能的。當然在RPG游戲中也有好壞之分…

TensorFlow構建二維數據擬合模型(2)

變量的定義和使用 變量的定義與初始化 TensorFlow中,變量是一種特殊的張量,其值可以是一個任意類型的形狀的張量。 與其他張量不同,變量存在于單個回話調用的上下文之外,主要作用是保存和更新模型中的參數。 聲明變量通常使用…

c++用牛頓法開多次根_望遠鏡的歷史之三:大神出世,改變望遠鏡歷史的竟然是牛頓...

上次我們說到格里高利望遠鏡有點畫蛇添足,那么格里高利望遠鏡添了什么呢?格里高利望遠鏡格里高利望遠鏡觀測的圖像都是正立的,這就意味著要采用多個凹面反射鏡,而當時凹面反射鏡磨制不易,無論是多大的科學家都要親自動…

python浮點型精度損失問題_解決float型數據精度損失問題

問題:浮點型數據存儲方式會導致數據精度損失,增大計算誤差。float fval 0.45;  // 單步調試發現其真實值為:0.449999988double dval 0.45; // 單步調試發現其真實值為:0.45000000000000001當很多個這樣的單精度浮點型數據進行…

Linux配置本地yum源(RHEL8)

https://www.cnblogs.com/itwangqiang/p/13391401.html

如何把照片正面變成反面_各國簽證照片要求大全 (含模板)

對于不是很熟悉簽證的小伙伴來說,面對全球那么多國家的簽證而且每張簽證照片的規格不同為此我們為您整理了各國簽證照片要求大全 東南亞國家的簽證照要求基本相同,就以泰國為例,告訴大家簽證照的注意事項。“泰國,新加坡&#xff…

TensorFlow實驗(3)

模型的保存與恢復 我們來簡單實現一下模型的保存與恢復 訓練完TensorFlow模型后,可將其保存為文件,以便于預測新數據時直接加載使用。 TensorFlow模型主要包含網絡的設計或者圖以及已經訓練好的網絡參數的值。 TensorFlow提供的tf.train.Saver()函數…

ad域 禁用賬號_IST-AD域信息同步平臺來襲

IST的AD域信息同步系統是能幫助域管理員簡化日常的一些管理工作,可以讓AD域系統與其他的業務系統進行用戶信息同步,實現自動的新舊用戶帳戶信息的同步修改、組織架構同步調整,并有簡單易操作的配置頁面系統與操作日志查詢等。通過ODBC、Web S…

Linux基礎(firewalld防火墻配置管理工具的圖形用戶界面)

firewall-config的界面如圖所示 我們先將當前區域中請求http服務的流量設置為允許,但僅限當前生效。具體配置如圖 嘗試添加一條防火墻策略規則,使其放行訪問8080-8088端口(TCP協議)的流量,并將其設置為永久生效&#x…

ios 請求失敗封裝_vue_axios請求封裝、異常攔截統一處理

1、前端網絡請求封裝、異常統一處理vue中采用axios處理網絡請求,避免請求接口重復代碼,以及各種網絡情況造成的異常情況的判斷,采用axios請求封裝和異常攔截操作;axios 請求封裝// 引入axios文件包import axios from axios// POST…

Linux基礎(使用ssh服務管理遠程主機1)

配置網絡參數 使用nmtui命令配置網絡參數,以及通過nmcli命令查看網絡信息并管理網絡會話服務。 執行nmtui命令運行網絡配置工具 進入主界面 選中編輯連接并按下回車鍵 選中要編輯的網卡名稱,然后按下Edit(編輯)按鈕 把網絡IPv4 …

聯想g510升級方案_聯想智慧中國行,聚焦第一古城,助力企業智能升級

12月29日,聯想智慧中國行“一起聯想 生態綻放”One Lenovo融合品鑒會邢臺站盛大啟幕,現場近70位河北合作伙伴到場參會,共同探討智能時代帶來的多重挑戰和迎戰機遇。“聯想智慧中國行”是聯想致力于推動中國行業智能化升級舉辦的系列活動&…

軟件工程(總體設計②設計原理)

設計原理 模塊化 模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個總體標識符代表它。 按照模塊的定義,過程、函數、子程序和宏,都可作為模塊。 面向對象方法學中的對象是模塊,對象內的方法也是模塊。模塊是構成程序的基…

TensorFlow構建二維數據擬合模型(3)

占位符與數據喂入機制 placeholder是TensorFlow提供的占位符節點,由tf.placeholder()函數創建,其實質上也是一種變量。占位符沒有初始值,只會分配必要的內存,其值由會話中用戶調用的run()函數傳遞。 占位符聲明的方法如表 函數…

合作開發過程產生的專利_被起訴專利侵權怎么辦?專利律師給你出招!

隨著國內企業專利申請量的增加及專利保護意識的逐步提升,專利侵權訴訟作為常用的商業競爭手段和策略,其數量也隨之呈逐年遞增之勢。考慮到目前國內專利數量較多,且很多專利技術互有交叉,因此在進行產品研發時即使未借鑒他人產品&a…

idea怎么設置代碼提示不區分大小寫_IntelliJ IDEA 這樣設置動圖,棒極了!

轉自:IntelliJ-IDEA-Tutorial/Judas.n鏈接:http://suo.im/6sHdelIntelliJ IDEA 有很多人性化的設置我們必須單獨拿出來講解,也因為這些人性化的設置讓我們這些 IntelliJ IDEA 死忠粉更加死心塌地使用它和分享它。推薦設置IntelliJ IDEA 的代碼…

linux課堂筆記(1)

一、linux特點 1.源代碼開發: *.c *.h 可二次開發 2.安全:可檢測安全性 3.穩定:共享內存 內存沖突(Windows,內存沖突,藍屏死機) 4.網絡服務:server(WWW&#xf…

表字段順序有何影響_「品味保定」炸烹蝦段乾隆贊 百年保定柔雅香

【引文】上溯先賢堯帝,保定傳承已逾千載。燕趙之地、畿輔之疆、北控三關、南通九省、翅衛京師說的就是古城保定。千百年來,古城保定形成了獨具特色的飲食文化,精致氣派的直隸官府菜就是這種文化的結晶。品百年保定酒,嘗直隸官府菜…