軟件開發(fā)架構(gòu)有哪些(軟件架構(gòu)開發(fā)流程)
今天給各位分享軟件開發(fā)架構(gòu)有哪些的知識,其中也會對軟件架構(gòu)開發(fā)流程進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!
本文目錄一覽:
在軟件項目開發(fā)過程中,都有哪些常見的軟件架構(gòu)?
軟件產(chǎn)品的架構(gòu),通常都是隨著業(yè)務(wù)的發(fā)展而不斷演變的;我從事軟件開發(fā)行業(yè)也有十余年了,遇到過的軟件(企業(yè)級應(yīng)用,我是從事Java開發(fā))架構(gòu)主要有這么幾種:
單體架構(gòu)架構(gòu)
總的概括來說,單體架構(gòu)就是應(yīng)用所有的功能,只有一個代碼包,開發(fā)和部署都在一起,這是一種比較傳統(tǒng)的架構(gòu)風格;當然,單體架構(gòu)也有著諸多的缺點:
SOA架構(gòu)
因為單體應(yīng)用架構(gòu)的種種缺點,已經(jīng)不能再滿足業(yè)務(wù)需求的時候,于是就出現(xiàn)了SOA架構(gòu)。
SOA架構(gòu)的主要思想是把應(yīng)用程序的模塊化組件,通過接口聯(lián)系起來(接口可以獨立于語言、框架、硬件、操作系統(tǒng));在SOA架構(gòu)中,有兩個主流實現(xiàn)方式:
微服務(wù)架構(gòu)
微服務(wù)的產(chǎn)生,也是由于SOA架構(gòu)的一些缺點,這里再次印證了這句話,【應(yīng)用架構(gòu)的演進的過程通常是被業(yè)務(wù)逼出來的】。
我將持續(xù)分享Java開發(fā)、架構(gòu)設(shè)計、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注。
什么是軟件架構(gòu)模式?
軟件架構(gòu)模式有以下幾點:(1)管道/過濾器模式:其典型應(yīng)用包括批處理系統(tǒng)。(2)面向?qū)ο竽J?其典型應(yīng)用是基于組件的軟件開發(fā)CBD。(3)事件驅(qū)動模式:其典型應(yīng)用包括各種圖形界面應(yīng)用。(4)分層模式:其典型應(yīng)用是分層通信協(xié)議,如ISO/OSI的七層網(wǎng)絡(luò)模型。(5)客戶/服務(wù)器模式(Client/Server,C/S):為了解決C/S模式中客戶端的問題,發(fā)展形成了瀏覽器/服務(wù)器(B/S)模式:為了解決C/S模式中服務(wù)器端的問題,發(fā)展形成了三層(多層)C/S模式,即多層應(yīng)用架構(gòu)。軟件架構(gòu)模式有以下幾點:(1)管道/過濾器模式:其典型應(yīng)用包括批處理系統(tǒng)。(2)面向?qū)ο竽J?其典型應(yīng)用是基于組件的軟件開發(fā)CBD。(3)事件驅(qū)動模式:其典型應(yīng)用包括各種圖形界面應(yīng)用。(4)分層模式:其典型應(yīng)用是分層通信協(xié)議,如ISO/OSI的七層網(wǎng)絡(luò)模型。(5)客戶/服務(wù)器模式(Client/Server,C/S):為了解決C/S模式中客戶端的問題,發(fā)展形成了瀏覽器/服務(wù)器(B/S)模式:為了解決C/S模式中服務(wù)器端的問題,發(fā)展形成了三層(多層)C/S模式,即多層應(yīng)用架構(gòu)。
嵌入式軟件開發(fā)常用的三種架構(gòu)你知道嗎?
摘要 :對于單片機程序來說,大家都不陌生,但是真正使用架構(gòu),考慮架構(gòu)的恐怕并不多,隨著程序開發(fā)的不斷增多,架構(gòu)是非常必要的。
應(yīng)用程序的架構(gòu)大致有三種:
1、 簡單的前后臺順序執(zhí)行程序 ,這類寫法是大多數(shù)人使用的方法,不需用思考程序的具體架構(gòu),直接通過執(zhí)行順序編寫應(yīng)用程序即可。
2、 時間片輪詢法 ,此方法是介于順序執(zhí)行與操作系統(tǒng)之間的一種方法。
3、 操作系統(tǒng) ,此法應(yīng)該是應(yīng)用程序編寫的最高境界。
1、前后臺順序執(zhí)行法
這是初學者們常用的程序框架設(shè)計方案,不用考慮太多東西,代碼簡單,或者對系統(tǒng)的整體實時性和并發(fā)性要求不高;初始化后通過 while(1){} 或 for(;;) {}`循環(huán)不斷調(diào)用自己編寫完成的函數(shù),也基本不考慮每個函數(shù)執(zhí)行所需要的時間,大部分情況下函數(shù)中或多或少都存在毫秒級別的延時等待。
以下是在校期間做的寢室防盜系統(tǒng)的部分代碼(當時也存在部分BUG,沒有解決。現(xiàn)在再看,其實很多問題,而且比較嚴重,比如中斷服務(wù)函數(shù)內(nèi)竟然有3000ms延時,這太可怕了,還有串口發(fā)送等等;由于實時性要求不算太高,因此主函數(shù)中的毫秒級別延時對系統(tǒng)運行沒有多大影響,當然除BUG外;若是后期需要維護,那就是一個大工程,還不如推翻重寫 ):
介于 前后臺順序執(zhí)行法 和 操作系統(tǒng) 之間的一種程序架構(gòu)設(shè)計方案。該設(shè)計方案需能幫助嵌入式軟件開發(fā)者更上一層樓,在嵌入式軟件開發(fā)過程中,若遇到以下幾點,那么該設(shè)計方案可以說是最優(yōu)選擇,適用于程序較復(fù)雜的嵌入式系統(tǒng);
該設(shè)計方案需要使用一個定時器,一般情況下定時1ms即可(定時時間可隨意定,但中斷過于頻繁效率就低,中斷太長,實時性差),因此需要考慮到每個任務(wù)函數(shù)的執(zhí)行時間,建議不能超過1ms(能通過程序優(yōu)化縮短執(zhí)行時間則最好優(yōu)化,如果不能優(yōu)化的,則必須保證該任務(wù)的執(zhí)行周期必須遠大于任務(wù)所執(zhí)行的耗時時間),同時要求主循環(huán)或任務(wù)函數(shù)中不能存在毫秒級別的延時。
以下介紹兩種不同的實現(xiàn)方案,分別針對無函數(shù)指針概念的朋友和想進一步學習的朋友。
1、無函數(shù)指針的設(shè)計方式
2、含函數(shù)指針的設(shè)計方式
嵌入式操作系統(tǒng)EOS( Embedded OperatingSystem )是一種用途廣泛的系統(tǒng)軟件,過去它主要應(yīng)用于工業(yè)控制和國防系統(tǒng)領(lǐng)域,而對于單片機來說,比較常用的有UCOS、FreeRTOS、 RT-Thread Nano和RTX 等多種搶占式操作系統(tǒng)(其他如Linux等操作系統(tǒng)不適用于單片機)
操作系統(tǒng)和“ 時間片論法 ”,在任務(wù)執(zhí)行方面來說,操作系統(tǒng)對每個任務(wù)的耗時沒有過多的要求,需要通過設(shè)置每個任務(wù)的優(yōu)先級,在高優(yōu)先級的任務(wù)就緒時,會搶占低優(yōu)先級的任務(wù);操作系統(tǒng)相對復(fù)雜,因此這里沒有詳細介紹了。
關(guān)于如何選擇合適的操作系統(tǒng)( uCOS 、 FreeRTOS 、 RTThread 、 RTX 等RTOS的對比之特點:
借網(wǎng)上一張對比圖:
從上述的對比中可以看出,時間片輪詢法的優(yōu)勢還是比較大的,它既有前后臺順序執(zhí)行法的優(yōu)點,也有操作系統(tǒng)的優(yōu)點。結(jié)構(gòu)清晰,簡單,非常容易理解,所以這種是比較常用的單片機設(shè)計框架。
關(guān)于軟件開發(fā)架構(gòu)有哪些和軟件架構(gòu)開發(fā)流程的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。