91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

幾種軟件架構設計的思維方式

如意 ? 來源:軟件工程之思 ? 作者:軟件工程之思 ? 2021-03-08 15:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

架構設計是門藝術。

一個優(yōu)秀的程序員要想成為一名優(yōu)秀的架構設計師,就改變編程的思維,學會使用架構設計的思維方式。

架構設計的思維方式有以下幾種:

1. 分而治之的思維方式

分而治之,是把一件籠統(tǒng)模糊的事項變得清晰,把復雜的事項變得簡單的思維方式。而這正是我們進行架構設計首要達成的目標。

架構設計師必須要學會架構分解,將軟件的功能和非功能需求在架構的多個層面進行分解。

架構分解的時機要恰當,不要過早分解、也不要過度分解,通常的分解時機就是架構構造和演變時。

架構分解應當遵循以下原則:

高內(nèi)聚、低耦合。

層次性。分解的順序一般是系統(tǒng)→子系統(tǒng)→模塊→組件→類。

正交原則。分解出的架構元素符合正交原則。

抽象原則。分解出的架構元素應當是架構設計師抽象的結果。

穩(wěn)定性原則。應當將穩(wěn)定架構元素和不穩(wěn)定的架構元素獨立。

復用性原則。架構設計應當和軟件一樣,要考慮復用和可復用的設計。

2. 聚而合之的思維方式

分而治之的目的是降低難度,但軟件的設計和實現(xiàn)最終還是要將分解的各個元素組合在一起。所以,不能為了分解而分解,在分解的過程中也要考慮將來的集成。畢竟如果分解后的內(nèi)容無法集成在一起,分解得再詳細,再清晰也沒有任何意義。

3. 動靜分離的思維方式

動靜分離的思維方式要求將系統(tǒng)中的靜態(tài)資源與動態(tài)資源分離,同時又要注意二者結合的架構設計。因為動態(tài)的流程和用例無法離開靜態(tài)的數(shù)據(jù)和類就能自行完成的。

4. 復用的思維方式

復用是最佳的軟件工程實踐,沒有之一。復用可以給我們帶來以下好處:

較高的生產(chǎn)率。

較高的系統(tǒng)質量。

改善系統(tǒng)的可維護性。

所以,我們在進行架構設計時也需要使用復用思維,將各個模塊需要用到的共性功能抽取為可復用的共性組件。

我們可以將復用分為常規(guī)復用和系統(tǒng)層復用。

其中常規(guī)復用又可分為代碼復用、算法復用、數(shù)據(jù)結構的復用;系統(tǒng)層復用又可分為設計復用、分析復用。

5. 分層的思維方式

分層是將各架構元素通過分層重新構建的過程,各層之間要保持獨立設計和松耦合。

分層的思維方式可以使軟件架構具有如下優(yōu)點:

開發(fā)人員可以只關注某一層。

可以很容易地用新的實現(xiàn)來替換原有層的實現(xiàn)。

可以降低層與層之間的依賴。

有利于標準化。

有利于各層邏輯的復用。

6. 模式的思維方式

架構模式是一套成熟的、通用的、可重用的解決方案,在進行架構設計時,架構設計師要能夠根據(jù)業(yè)務需求來挑選最適合的架構模式。

架構模式一般有分層模式、客戶端-服務器模式、主從設備模式、管道-過濾器模式、代理模式、P2P模式、事件總線模式、MVC模式、黑板模式和解釋器模式等。

7. 抽象的思維方式

抽象包括兩個層面的內(nèi)容:一個層面是將各種類似場景的實現(xiàn)歸納成一種規(guī)則或方法出來供以后的設計用;另一個層面是將非類似場景中的共性內(nèi)容總結出來,進一步抽象為類似的東西。

8. 結構化的思維方式

結構化是一種注重結構完整性的思維方式,它強調(diào)在分析問題的過程中,要考慮整體性,不要馬上陷入細節(jié)。結構化思維的核心在于對問題進行正確界定的基礎上(以終為始),對問題的構成要素進行合理分類,并對其中的重點環(huán)節(jié)進行分析(要事第一)。

結構化應遵循以下原則:

以終為始。

知道設計的目標,根據(jù)目標倒推需要完成的工作和任務。

不要先入為主,避免陷入細節(jié)。

各架構元素相互獨立。

各架構元素無遺漏。

迭代的思維方式

沒有最好,只有更好。架構設計也要隨著業(yè)務需求的變化不斷迭代和演化。

這正是:

架構設計不簡單,思維方式數(shù)半天

學習前人獲經(jīng)驗,優(yōu)秀架構不再難
責編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 軟件
    +關注

    關注

    69

    文章

    5332

    瀏覽量

    91577
  • 架構
    +關注

    關注

    1

    文章

    532

    瀏覽量

    26589
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    軟件架構設計教程

    軟件架構設計教程
    發(fā)表于 09-26 15:27

    【汽車電氣架構設軟件

    因工作需要,求整車電氣架構設軟件——PREEvision(盜版),價格可議,WetChat/***,非誠勿擾
    發(fā)表于 04-18 14:20

    ARM總共有幾種架構?ARM各架構之間的區(qū)別在哪?

    ARM總共有幾種架構?ARM各架構之間的區(qū)別在哪?基于各ARM架構設計的內(nèi)核型號有哪些?分別有哪些應用領域?
    發(fā)表于 07-01 09:10

    STM32軟件架構設計的意義

    STM32軟件架構1、架構設計的意義(1)應用代碼邏輯清晰,且避免代碼冗余;(2)代碼通用性,方便軟件高速、有效的移植;(3)各功能獨立,低耦合高內(nèi)聚;2、總體
    發(fā)表于 08-04 07:23

    機甲大師機器人控制(三):軟件架構設計 精選資料推薦

    本文是機甲大師機器人控制的系列博客之一。在功能分析的基礎上,本文設計軟件架構。文章目錄1 開發(fā)階段2 軟件架構設計2.1 頂層子系統(tǒng)2.1.1 子系統(tǒng)模型2.1.2 輸入接口2.2
    發(fā)表于 08-18 07:01

    嵌入式軟件架構設計常見的誤解

    1.常見的誤解1.1小型系統(tǒng)不需要架構設架構應當滿足當前需求并適當?shù)目紤]重用和變更1.2 敏捷開發(fā)不需要框架 極限編程, 敏捷開發(fā)的出現(xiàn)使一些人誤以為軟件開發(fā)無需再做架構了。 這是
    發(fā)表于 10-27 09:22

    為何要進行嵌入式軟件架構設計?如何設計?

    為何要進行嵌入式軟件架構設計?如何進行嵌入式軟件架構設計?
    發(fā)表于 11-01 06:31

    機甲大師機器人的軟件架構設計如何實現(xiàn)?

    機甲大師機器人的軟件架構設計如何實現(xiàn)?
    發(fā)表于 11-22 07:55

    嵌入式軟件架構設計資料分享

    作為程序員,我覺得如果要走的更遠必須要成為工程師,畢竟年齡和資歷都擺在那里了。所以就讓我這個老程序員淺談一下嵌入式軟件架構設計。我參考的也是一篇博文。原圖如下![在這里插入圖片描述](?x-oss-process=image/watermark,type_ZmFuZ3po
    發(fā)表于 12-24 07:09

    使用Simulink實現(xiàn)軟件架構設

      本文參考ISO26262的要求,同時考慮AUTOSAR代碼生成的兼容性,給出使用Simulink實現(xiàn)軟件架構設計的一些建議。
    發(fā)表于 09-19 14:40 ?38次下載
    使用Simulink實現(xiàn)<b class='flag-5'>軟件</b><b class='flag-5'>架構設</b>計

    如何升級架構設思維

    孫玄,江湖人稱“玄姐”,前58集團技術委員會主席,前轉轉二手交易平臺首席架構師。今天想跟你聊點兒企業(yè)里那些年薪百萬的架構師,他們的架構設思維是如何升級的。 話不多說,咱們直接來聊點兒
    的頭像 發(fā)表于 01-11 10:39 ?2645次閱讀

    SWE.2的軟件架構設

    過程ID:SWE.2 過程名稱:軟件架構設計 過程目的:軟件架構設計過程目的是建立一個架構設計,識別哪些
    的頭像 發(fā)表于 01-11 10:36 ?3531次閱讀

    STM32軟件架構設

    STM32軟件架構1、架構設計的意義(1)應用代碼邏輯清晰,且避免代碼冗余;(2)代碼通用性,方便軟件高速、有效的移植;(3)各功能獨立,低耦合高內(nèi)聚;2、總體
    發(fā)表于 11-06 09:05 ?36次下載
    STM32<b class='flag-5'>軟件</b><b class='flag-5'>架構設</b>計

    架構與微架構設

    下面將從芯片的架構設計、微架構設計、使用設計文檔、設計分區(qū)、時鐘域和時鐘組、架構調(diào)整與性能改進、處理器微架構設計策略等角度進行說明,并以視頻H.264編碼器設計為例。
    的頭像 發(fā)表于 05-08 10:42 ?2101次閱讀
    <b class='flag-5'>架構</b>與微<b class='flag-5'>架構設</b>計

    SWE.2軟件架構設

    過程ID : SWE.2 過程名稱 : 軟件架構設計 過程目的 : 軟件架構設計過程目的是建立一個架構設計,識別哪些
    的頭像 發(fā)表于 08-24 09:43 ?1789次閱讀