備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業(yè)熱線:400-778-8318
Copyright ?2015- 海馬課堂網(wǎng)絡科技(大連)有限公司辦公地址:遼寧省大連市高新技術產(chǎn)業(yè)園區(qū)火炬路32A號創(chuàng)業(yè)大廈A座18層1801室
在沒有計劃的情況下,你不會想要做一個項目,軟件架構(gòu)設計也不例外。通過使這個過程更有效,你可以妥善考慮所有需求,并讓利益相關者有機會提供他們的意見。通過使用技術視覺和謹慎的規(guī)劃過程,你可以在開始原型之前勾勒出你的軟件架構(gòu)和設計。下面,我們闡述了墨爾本大學留學生設計軟件架構(gòu)的5個步驟。

軟件架構(gòu)設計利用編程知識來規(guī)劃軟件的高層設計,以便稍后添加細節(jié),使軟件團隊能夠勾勒出整體情況并開始準備原型。
通過遵循軟件架構(gòu)設計的技巧和最佳實踐,軟件開發(fā)人員可以思考他們的軟件特性,并確定如何設計軟件架構(gòu)。
1.清楚地了解你的需求
你開始的每一個設計都會有功能性和非功能性需求。這些需求指導你的軟件架構(gòu),并允許你完成項目,使利益相關者滿意。
如果從一開始就沒有清楚地理解這些需求,你的團隊就有可能迷失方向,強調(diào)錯誤的需求而忽略其他需求,或者使用過多的內(nèi)部資源。
通過視覺方式獲得更好的理解——按照以下步驟在智能圖表平臺上繪制出你的需求:
從高層次出發(fā):首先以“直升機視角”勾勒出你的需求。思維導圖是做這件事的有效方式。
繪制你的功能性需求:你可以使用動詞來幫助你將名詞聚集在一起。例如,“查看”和“編輯”這樣的動詞可以將“賬戶”或“個人資料”連接到功能區(qū)域的思維導圖中。
考慮非功能性需求:在制作思維導圖時,你可以記下非功能性需求以備后用。像“性能”這樣的需求很重要,但可能太抽象了,無法放在思維導圖上。
你的需求應該用來塑造你的工作范圍并規(guī)劃你的項目。
2.開始思考每個組件
面對現(xiàn)實吧——你的功能需求對項目的強大影響,一旦你繪制了需求地圖,你的設計和技術選擇可能已經(jīng)決定了。
在過早考慮實現(xiàn)方式之前,你需要找出哪些需求對你的設計或項目計劃構(gòu)成重大挑戰(zhàn)。在某些假設或選擇下,一些需求實際上可能是不可能的。
從一個“完美的世界”開始:如果你能完美地創(chuàng)建它,你的設計會是什么樣子?
考慮并記錄你的需求的影響:與你的團隊開始一個工作草稿,并逐漸發(fā)展它。首先,你需要看看你的需求對你的設計意味著什么——例如,你的利益相關者愿望清單中的個別項目可能互相矛盾,或者與其他功能和非功能性需求沖突。
稍后再設計最終架構(gòu):很可能在這個過程中,你的架構(gòu)規(guī)劃會發(fā)生變化,所以不要期望第一稿就像最終結(jié)果一樣。
3.將架構(gòu)劃分為多個部分
自然地,隨著你決定如何實現(xiàn)你的設計,你的架構(gòu)設計會進入規(guī)劃階段。將你的架構(gòu)劃分為片段可以幫助你以一種能夠為用戶提供價值并適當規(guī)劃你的開發(fā)資源的方式制定這個計劃。
想象一下切蛋糕。大多數(shù)人是垂直切割蛋糕,穿過每一層。假設一整塊蛋糕有糖霜、餡料,以及兩到三層海綿蛋糕。垂直切片包含了一切。蛋糕也可以水平切割,分開各個層次。
同樣,如果每個片段都是用來規(guī)劃你的軟件架構(gòu)的故事,那么就有了層次——垂直切割蛋糕會創(chuàng)建圍繞個別特性的故事,而水平切割則會顯示單個組件。你的項目需要水平和垂直思維。
敏捷專注于垂直切片,讓你的團隊能夠快速提供價值。這種方法可以讓客戶迅速了解產(chǎn)品進展,并讓開發(fā)團隊對每個特性背后的每一層都有反饋。一個垂直切片的軟件架構(gòu)示例是電子商務網(wǎng)站的結(jié)賬流程。
在你的“結(jié)賬”垂直蛋糕切片中,你可以看到存儲結(jié)賬信息的數(shù)據(jù)層,中間層 API,以及購物者看到的頂層用戶界面。通過垂直切片,你可以決定要提供哪些功能,并選擇迭代的部分。
通過繪制你的軟件架構(gòu)項目涉及的層次,你可以可視化整個項目以及每個層次如何影響其他層次。在規(guī)劃過程中,拿出個別的敏捷蛋糕片段,并繪制它們之間的連接。
4.原型
始終創(chuàng)建原型。原型允許您快速失敗并早期失敗——提供快速反饋,讓您發(fā)現(xiàn)您的概念驗證。這是驗證您的工作并檢查您的假設以確保它們有效和徹底的重要部分。
在創(chuàng)建原型時,請記住,最初的幾個迭代永遠不會完美,而最終的迭代也不會完全完美。原型的優(yōu)勢之一是它不會被設定為成品,大多數(shù)人本能地進入原型過程中至少期望有些粗糙的地方。
充分利用原型階段。這并不能取代測試,但卻是您需要進行的測試的關鍵部分。
保持仔細的修訂記錄:當然,如果您不記錄從原型中學到的東西,那么您就有重復錯誤的風險。寫下所有內(nèi)容——徹底記錄您的設計決策以及您沿途所做的更改。
確保單一真相來源:您不希望多個更改和不同版本讓您的進度受阻,因此建立一個專注于文檔的單一來源的強大版本控制。
繪制原型圖:您可以使用圖表來幫助您管理原型的變化并可視化每個版本之間的差異。
5.確定和量化非功能性需求
除了功能性需求之外,您還將考慮非功能性需求。這些需求與功能性需求一樣重要,因為它們定義了系統(tǒng)的特性。
非功能性需求通常是整個項目的高級質(zhì)量需求,但并非總是如此。您的系統(tǒng)可能有非功能性需求,這些需求僅適用于軟件架構(gòu)的一部分。因此,您必須準備好將利益相關者納入本地非功能性需求。例如,項目的特定垂直切片可能尤其引起客戶服務團隊的興趣,該團隊可能對這些非功能性需求有自己的期望。
然而,僅僅說您想要性能、可移植性或可擴展性是不夠的。非功能性需求還必須量化。沒有項目可以擁有絕對完美的性能:為了滿足其他需求,必須明確規(guī)定和限制“性能”。
由于您的非功能性需求在塑造您的設計方面發(fā)揮作用,您不能避免定義它們。以下是您可能要考慮的其他要求:
性能:您的整個系統(tǒng)以及單個切片或?qū)拥男阅苋绾巍?/p>
可擴展性:與您的需求一起,您的系統(tǒng)以及您的需求未來擴展的潛力如何。
可移植性:您的數(shù)據(jù)可移植性以及您的系統(tǒng)組件的潛在可移植性,如果適用或必要。
可擴展性:考慮到您的系統(tǒng)和公司未來的增長,您的系統(tǒng)如何適應以及適應所需的工作量。
合規(guī)性:另一個重要因素——并且對您的整體項目設計產(chǎn)生重大影響。
繪制您的非功能性需求圖可以幫助您的團隊了解您如何量化它們,同時將特定需求放置在相關的上下文中。盡管您現(xiàn)在不必擔心優(yōu)化一切,但您確實需要考慮以后優(yōu)化這些非功能性需求可能需要的工作量和資源。
海馬課堂留學生作業(yè)輔導
1.根據(jù)學生的輔導需求匹配背景相符的專業(yè)老師。
2.老師根據(jù)學生情況,1V1個性化備課,雙語教學,實時輔導。
3.講解相關知識點和解題思路,提供大型作業(yè)任務的解決方案,輔導計算機編程語言操作,教授學生高效完成PPT和演講稿。
閱讀原文:http://cheshan.cn/news/19275_62.html
版權作品,未經(jīng)海馬課堂 highmarktutor.com 書面授權,嚴禁轉(zhuǎn)載,違者將被追究法律責任。
備案號:遼ICP備19007957號-1
聆聽您的聲音:feedback@highmark.com.cn企業(yè)熱線:400-778-8318
Copyright ?2015- 海馬課堂網(wǎng)絡科技(大連)有限公司辦公地址:遼寧省大連市高新技術產(chǎn)業(yè)園區(qū)火炬路32A號創(chuàng)業(yè)大廈A座18層1801室
hmkt088