rk3399硬件设计指南_CMMI2实施过程系列-系统设计
本篇主要聊一下CMMI中的系統設計過程。
系統設計(System Design, SD)是指設計軟件系統的體系結構、用戶界面、數據庫、模塊等,從而在需求與代碼之間建立橋梁,指導開發人員去實現能滿足用戶需求的軟件產品。
系統設計過程域是SPP模型的重要組成部分。本規范闡述了系統設計過程域的四個主要規程:
2 體系結構設計 [SPP-PROC-SD-ARCHITECTURE]
2 用戶界面設計 [SPP-PROC-RM-UI]
2 數據庫設計 [SPP-PROC-RM-DATABASE]
2 模塊設計 [SPP-PROC-RM-MODULE]
上述每個規程的“目標”、“角色與職責”、“啟動準則”、“輸入”、“主要步驟”、“輸出”、“完成準則”和“度量”均已定義。
本規范適用于國內IT企業的軟件研發項目。建議用戶根據自身情況(如商業目標、研發實力等)適當地修改本規范,然后推廣使用。
11.1 介紹
系統設計過程域分為兩個階段:高層設計階段和詳細設計階段。
高層設計階段的重點是軟件系統的體系結構設計。詳細設計階段的重點是用戶界面設計、數據庫設計和模塊設計。
系統設計過程域產生的主要文檔有:
2 《體系結構設計報告》,模板見 [SPP-TEMP-SD-ARCHITECTURE]。
2 《用戶界面設計報告》,模板見 [SPP-TEMP-SD-UI]。
2 《數據庫設計報告》,模板見 [SPP-TEMP-SD-DATABASE]。
2 《模塊設計報告》,模板見 [SPP-TEMP-SD-MODULE]。
11.2 體系結構設計
11.2.1 目的
l 分析與設計軟件的體系結構。通過系統分解,確定子系統的功能和子系統之間的關系,以及模塊的功能和模塊之間的關系,產生《體系結構設計報告》。
11.2.2 角色與職責
l 項目經理指定若干名開發人員從事體系結構設計(以下稱為體系結構設計人員)。
11.2.3 啟動準則
l 體系結構設計人員已經確定。
11.2.4 輸入
l 需求文檔如《產品需求規格說明書》
11.2.5 主要步驟
[Step1] 設計準備
l 項目經理或者技術負責人分配系統設計任務,包括體系結構設計、模塊設計、用戶界面設計、數據庫設計等。本活動可能產生一份階段性的開發計劃,如《系統設計計劃》,視工作量而定。
l 體系結構設計人員閱讀需求文檔,明確設計任務。
l 體系結構設計人員準備相關的設計工具(如Rational Rose)和資料。
[Step2] 確定影響系統設計的約束因素
l 需求約束。體系結構設計人員從需求文檔如《軟件需求規格說明書》中提取需求約束,例如:
2 本系統應當遵循的標準或規范
2 軟件、硬件環境(包括運行環境和開發環境)的約束
2 接口/協議的約束
2 用戶界面的約束
2 軟件質量的約束,如正確性、健壯性、可靠性、效率(性能)、易用性、清晰性、安全性、可擴展性、兼容性、可移植性等等。
l 隱含約束。有一些假設或依賴并沒有在需求文檔中明確指出,但可能會對系統設計產生影響,設計人員應當盡可能地在此處說明。例如對用戶教育程度、計算機技能的一些假設或依賴,對支撐本系統的軟件硬件的假設或依賴等。
[Step3] 確定設計策略
l 體系結構設計人員根據產品的需求與發展戰略,確定設計策略(Design Strategy)。例如:
2 擴展策略。說明為了方便本系統在將來擴展功能,現在有什么措施。
2 復用策略。說明本系統在當前以及將來的復用策略。
2 折衷策略。說明當兩個目標難以同時優化時如何折衷,例如“時-空”效率折衷,復雜性與實用性折衷。
[Step4] 系統分解與設計
l 體系結構設計人員:
2 將系統分解為若干子系統,確定每個子系統的功能以及子系統之間的關系。
2 將子系統分解為若干模塊,確定每個模塊的功能以及模塊之間的關系。
2 確定系統開發、測試、運行所需的軟硬件環境。
[Step5] 撰寫體系結構設計文檔
l 體系結構設計人員根據指定的模板撰寫《體系結構設計報告》,主要內容包括:
2 軟件系統概述
2 影響設計的約束因素
2 設計策略
2 系統總體結構
2 子系統的結構與模塊功能
2 開發、測試、運行所需的軟硬件環境
[Step6] 體系結構設計評審
l 體系結構設計人員邀請同行專家、開發人員對體系結構進行正式技術評審,評審流程請參考 [SPP-PROC-TR-FTR]。
l 體系結構評審的重點不是“對還是錯”,而是“好還是差”。主要評審要素包括:
2 合適性。考察該體系結構是否適合于產品需求,是否可在預定計劃內實現。
2 系統的綜合能力(Capability)。例如“時-空”效率(性能,容量等),可擴展性,可管理性(可維護性),可復用性,安全性等等,視產品特征而定。
[后續活動]
l 體系結構設計完成后進入詳細設計階段(用戶界面設計、數據庫設計、模塊設計等)。
11.2.6 輸出
l 《體系結構設計報告》
11.2.7 結束準則
l 《體系結構設計報告》已經完成,并且通過了技術評審。
11.2.8 度量
l 體系結構設計人員統計工作量以及文檔的規模,匯報給項目經理。
11.3 用戶界面設計
11.3.1 目的
l 設計軟件的用戶界面,產生《用戶界面設計報告》。
l 制作用戶界面的資源如圖像、圖標或者界面專用組件等。
11.3.2 角色與職責
l 項目經理指定若干名開發人員從事用戶界面設計(以下稱為界面設計人員)。
l 如果可能的話,邀請用戶或美工人員協助設計用戶界面。
11.3.3 啟動準則
l 需求文檔已經完成。
l 體系結構設計已經完成。
11.3.4 輸入
l 需求文檔
l 體系結構設計文檔
11.3.5 主要步驟
[Step1] 設計準備
l 界面設計人員閱讀需求文檔和體系結構設計文檔,明確界面設計任務。
l 界面設計人員與用戶交流,了解用戶的工作習慣和他們對界面的看法。
l 界面設計人員準備相關的設計工具和資料,收集或創作基本的界面資源如圖像、圖標以及通用的組件。
l 界面設計人員確定本軟件的用戶界面設計規則(或指南),主要包括:
2 優秀界面的特征或通用的設計原則;
2 軟件主界面(如主窗口、主頁面)的設計規則;
2 軟件子界面(如子窗口、子頁面)的設計規則;
2 標準控件的使用規則;
2 美學設計規則。
[Step2] 用戶界面設計
用戶界面設計一般要經歷“原型創作—>原型評估->細化”等步驟,通常迭代進行。
l [Step2.1] 原型創作
界面設計人員創作界面原型:
2 先徒手畫,或者用Visio 等工具繪制界面的視圖;
2 再用軟件開發工具實現可以運行的原型。
l [Step2.2] 原型評估
2 界面設計人員邀請用戶和同行們評估界面的原型,匯集意見,及時改進。
l [Step2.3] 細化
2 界面設計人員細化界面原型,例如美工處理,添加細節等。
補充說明:開發人員在本階段不必關心界面原型的代碼質量,因為界面原型可能不斷地被修改甚至被拋棄。
[Step3] 撰寫用戶界面設計文檔
l 用戶界面定型之后,界面設計人員根據指定的模板撰寫《用戶界面設計報告》,主要內容包括:
2 應當遵循的界面設計規范;
2 界面的關系圖和工作流程圖;
2 主界面的視圖、功能說明、操作方式;
2 子界面的視圖、功能說明、操作方式;
2 美學設計說明。
[Step4] 用戶界面設計評審
l 界面設計人員邀請用戶和同行們對定型后的界面進行正式技術評審,盡最大努力使界面變得更加美觀、易用。評審流程請參考 [SPP-PROC-TR-FTR]。
l 用戶界面的主要評審要素包括:
2 合適性
2 簡潔易用
2 一致性
2 美觀
2 動態反饋
2 功能屏蔽和出錯處理
2 用戶控制
2 國際化(兼容性和可移植性)
2 適應性(針對各種用戶)
[后續活動]
l 在系統設計工作結束之后,開發人員編寫界面的代碼,并和用戶一起通過各種途徑測試界面,從而不斷地完善用戶界面。(請參考有關測試的文檔)
l 界面設計人員總結經驗教訓,不斷地完善適用于本機構的“用戶界面設計指南”。
11.3.6 輸出
l 《用戶界面設計報告》
11.3.7 結束準則
l 《用戶界面設計報告》已經完成,界面原型已經通過評審。
11.3.8 度量
l 界面設計人員統計工作量以及文檔的規模,匯報給項目經理。
11.4 數據庫設計
11.4.1 目的
l 設計軟件的數據庫,產生《數據庫設計報告》。
11.4.2 角色與職責
l 項目經理指定若干名開發人員從事數據庫設計(以下稱為數據庫設計人員)。
11.4.3 啟動準則
l 需求文檔已經完成。
l 體系結構設計已經完成。
11.4.4 輸入
l 需求文檔
l 體系結構設計文檔
11.4.5 主要步
[Step1] 設計準備
l 數據庫設計人員閱讀需求文檔和體系結構設計文檔,明確數據庫設計任務。
l 數據庫設計人員準備相關的設計工具和資料。
l 數據庫設計人員確定本軟件的數據庫設計規則(或指南),主要包括:
2 數據庫命名規則
2 邏輯設計規則(或指南)
2 物理設計規則(或指南)
2 安全性設計規則(或指南)
2 優化規則(或指南)
2 數據庫管理與維護規則(或指南)
[Step2] 數據庫設計
數據庫設計一般要經歷“邏輯設計—>物理設計->安全性設計->優化”等步驟,通常要迭代進行。
l [Step2.1] 邏輯設計
2 數據庫設計人員根據需求文檔,創建與數據庫相關的那部分實體關系圖(ERD)。如果采用面向對象方法(OOAD),這里實體相當于類(class)。
l [Step2.2] 物理設計
2 設計表結構。一般地,實體對應于表,實體的屬性對應于表的列,實體之間的關系成為表的約束。邏輯設計中的實體大部分可以轉換成物理設計中的表,但是它們并不一定是一一對應的。數據庫表的參考格式如表11-1所示。
2 對表結構進行規范化處理(第三范式)。
表名
功能說明
列名
數據類型(精度范圍)
空/非空
約束條件
補充說明
表11-1 數據庫表的參考格式
l [Step2.3] 安全性設計
提高軟件系統的安全性應當從“管理”和“設計”兩方面著手。這里僅考慮數據庫的安全性設計。
2 用戶只能用帳號登陸到應用軟件,通過應用軟件訪問數據庫,而沒有其它途徑可以操作數據庫。
2 對用戶帳號的密碼進行加密處理,確保在任何地方都不會出現密碼的明文。
2 確定每個角色對數據庫表的操作權限,如創建、檢索、更新、刪除等。每個角色擁有剛好能夠完成任務的權限,不多也不少。在應用時再為用戶分配角色,則每個用戶的權限等于他所兼角色的權限之和。
l [Step2.4] 優化
分析并優化數據庫的“時-空”效率,盡可能地“提高處理速度”并且“降低數據占用的空間”。
2 分析“時-空”效率的瓶頸,找出優化對象(目標),并確定優先級。
2 當優化對象(目標)之間存在對抗時,給出折衷方案。
2 給出優化的具體措施,例如優化數據庫環境參數,對表格進行反規范化處理等。
[Step3] 撰寫數據庫設計文檔
l 數據庫設計人員根據指定的模板撰寫《數據庫設計報告》,主要內容包括:
2 數據庫環境說明
2 數據庫的命名規則
2 邏輯設計
2 物理設計
2 安全性設計
2 優化
2 數據庫管理與維護說明
[Step4] 數據庫設計評審
l 數據庫設計人員邀請同行們對數據庫進行正式技術評審,評審流程請參考 [SPP-PROC-TR-FTR]。
l 數據庫的主要評審要素包括:
2 正確性、完整性、一致性
2 安全性
2 “時-空”效率
[后續活動]
l 在系統設計工作結束之后,開發人員將編寫與數據庫相關的代碼,并和用戶一起通過各種途徑測試數據庫,從而不斷地完善數據庫。(請參考有關測試的文檔)
l 數據庫設計人員總結經驗教訓,不斷地完善適用于本機構的《數據庫設計指南》。
l 軟件交付給用戶后,由用戶管理與維護數據庫。
11.4.6 輸出
l 《數據庫設計報告》
11.4.7 結束準則
l 《數據庫設計報告》已經完成,并且通過了技術評審。
11.4.8 度量
l 數據庫設計人員統計工作量以及文檔的規模,匯報給項目經理。
11.5 模塊設計
11.5.1 目的
l 設計軟件所有模塊的主要接口與屬性、數據結構和算法,產生《模塊設計報告》。
11.5.2 角色與職責
l 項目經理指定若干名開發人員從事模塊的設計(以下稱為模塊設計人員),模塊設計人員將在實現階段編寫這些模塊的代碼。
11.5.3 啟動準則
l 需求文檔已經完成。
l 體系結構設計已經完成。
11.5.4 輸入
l 需求文檔
l 體系結構設計文檔
11.5.5 主要步驟
[Step1] 設計準備
l 模塊設計人員閱讀需求文檔和體系結構設計文檔,明確模塊設計任務。
l 模塊設計人員準備相關的設計工具和資料。
l 模塊設計人員確定本軟件的編程規范,確保模塊設計文檔的風格與代碼的風格保持一致。
[Step2] 模塊設計
模塊設計一般要經歷“接口與屬性設計—>數據結構與算法設計”等步驟,并且通常需要反復迭代。
建議:由于現代的軟件開發工具越來越先進,模塊的詳細設計和編程可以很好地融合一起,而且效率相當高,有些工具甚至具有代碼自動生成功能。所以在系統設計階段,模塊設計究竟要詳細到什么地步,應當視問題復雜性以及所采用的開發工具而定。一般地,只要確定了每個模塊的主要接口、數據結構與算法,能夠清楚地指導模塊編程即可。總之,不必花太多時間用于設計模塊的細節。
l [Step2.1] 接口與屬性設計
2 模塊設計人員設計每個模塊的主要接口與屬性。如果采用面向對象方法(OOAD),相當于設計類的函數和成員變量。
l [Step2.2] 數據結構與算法設計
2 模塊設計人員設計每個模塊的數據結構與算法(如果存在的話)。
[Step3] 撰寫模塊設計文檔
l 模塊設計人員根據指定的模板撰寫《模塊設計報告》,主要內容包括:
2 模塊匯總
2 每個模塊的主要接口與屬性
2 每個模塊的數據結構與算法(如果存在的話)
[Step4] 模塊設計評審
l 模塊設計人員邀請同行們對模塊設計文檔進行正式技術評審或者非正式技術評審(由技術負責人決定采用何種評審方式),評審流程請參考 [SPP-PROC-TR]。
l 模塊的主要評審要素包括:
2 信息隱藏(獨立性)
2 強內聚、低耦合
2 數據結構與算法的效率
[后續活動]
l 模塊的代碼實現可以與模塊設計同步進行,也可以在模塊設計完成之后進行。
11.5.6 輸出
l 《模塊設計報告》
11.5.7 結束準則
l 《模塊設計報告》已經完成,并且通過了技術評審。
11.5.8 度量
l 模塊設計人員統計工作量以及文檔的規模,匯報給項目經理。
11.6 實施建議
l 先對系統設計人員進行“專題”培訓,讓他們掌握必要的系統設計技能。
l 由于國內絕大多數的大學不開設“用戶界面設計課程”,這導致大部分軟件開發人員不善于設計用戶界面。項目開發小組應當設法邀請用戶界面設計專家參與(或指導)本軟件的界面設計。
l 系統設計人員可以根據產品的特征,適當地修改《體系結構設計報告》、《用戶界面設計報告》、《數據庫設計報告》和《模塊設計報告》的模板。
l 對系統設計過程中產生的所有有價值的文檔進行配置管理。
總結
以上是生活随笔為你收集整理的rk3399硬件设计指南_CMMI2实施过程系列-系统设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序分享到朋友圈功能_来啦!小程序支持
- 下一篇: ping32终端安全管理系统_IPgua