2022年系統(tǒng)架構(gòu)設(shè)設(shè)計(jì)師歷年論文知識(shí)點(diǎn)總結(jié)_第1頁(yè)
2022年系統(tǒng)架構(gòu)設(shè)設(shè)計(jì)師歷年論文知識(shí)點(diǎn)總結(jié)_第2頁(yè)
2022年系統(tǒng)架構(gòu)設(shè)設(shè)計(jì)師歷年論文知識(shí)點(diǎn)總結(jié)_第3頁(yè)
2022年系統(tǒng)架構(gòu)設(shè)設(shè)計(jì)師歷年論文知識(shí)點(diǎn)總結(jié)_第4頁(yè)
2022年系統(tǒng)架構(gòu)設(shè)設(shè)計(jì)師歷年論文知識(shí)點(diǎn)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

系統(tǒng)架構(gòu)設(shè)設(shè)計(jì)師論文知識(shí)點(diǎn)總結(jié)2021年一、A0P技術(shù)開(kāi)發(fā)的具體步驟所謂方面就是將那些與業(yè)務(wù)無(wú)關(guān)的,卻為業(yè)務(wù)模塊所共同調(diào)用的邏輯或責(zé)任都封裝起來(lái),以減少系統(tǒng)的重復(fù)代碼,降低模塊間的耦合度,并有利于未來(lái)的可操作性和可維護(hù)性。A0P代表的是一個(gè)橫向的關(guān)系,如果說(shuō)對(duì)象是一個(gè)空心的圓柱體,其中封裝的是對(duì)象的屬性和行為;那么面向方面的編程就是一把利刃,將這些空心圓柱體剖開(kāi),以獲得其內(nèi)部的消息。而剖開(kāi)的切面就是所謂的方面了。然后它又以巧奪天工的妙手將這些剖開(kāi)的切面復(fù)原,不留痕跡。使用"橫切”技術(shù),A0P把軟件系統(tǒng)分為兩個(gè)部分:核心關(guān)注點(diǎn)和橫切關(guān)注點(diǎn)。業(yè)務(wù)處理的主要流程是核心關(guān)注點(diǎn),與之關(guān)系不大的部分是橫切關(guān)注點(diǎn)。橫切關(guān)注點(diǎn)的一個(gè)特點(diǎn)是,他們經(jīng)常發(fā)生在核心關(guān)注點(diǎn)的多處,而各處都基本相似,比如權(quán)限認(rèn)證、日志、事務(wù)處理。A0P的作用在于分離系統(tǒng)中的各種關(guān)注點(diǎn),將核心關(guān)注點(diǎn)和橫切關(guān)注點(diǎn)分離開(kāi)來(lái)。A0P應(yīng)用程序包括以下三個(gè)主要的開(kāi)發(fā)步驟:1、 區(qū)分橫切關(guān)注點(diǎn)將系統(tǒng)需求進(jìn)行功能性分解,區(qū)分出普通關(guān)注點(diǎn)以及橫切關(guān)注點(diǎn),確定哪些功能是組件語(yǔ)言必須實(shí)現(xiàn)的,哪些功能可以以aspect的形式動(dòng)態(tài)加入到系統(tǒng)組件中。2、 構(gòu)造出系統(tǒng)的切面單獨(dú)完成每一個(gè)關(guān)注點(diǎn)的編碼和實(shí)現(xiàn),構(gòu)造系統(tǒng)組件和系統(tǒng)aspecto這里的系統(tǒng)組件,是實(shí)現(xiàn)該系統(tǒng)的基本模塊,對(duì)OOP語(yǔ)言,這些組件可以是類(lèi),對(duì)于過(guò)程化程序設(shè)計(jì)語(yǔ)言,這些組件可是各種函數(shù)和API。系統(tǒng)aspect是指用AOP語(yǔ)言實(shí)現(xiàn)的將橫切關(guān)注點(diǎn)封裝成的獨(dú)立的模塊單元。3、 組件代碼與切面代碼結(jié)合形成系統(tǒng)用聯(lián)接器指定的重組規(guī)則,將組件代碼和aspect代碼進(jìn)行組合,形成最終系統(tǒng)。為達(dá)到此目的,應(yīng)用程序需要利用或創(chuàng)造一種專(zhuān)門(mén)指定規(guī)則的語(yǔ)言,用它來(lái)組合不同應(yīng)用程序片斷。這種用來(lái)指定聯(lián)結(jié)規(guī)則的語(yǔ)言可以是一種已有編程語(yǔ)言的擴(kuò)展,也可以是一種完全不同的全新語(yǔ)言。二、 詳細(xì)論述安全架構(gòu)設(shè)計(jì)中鑒別框架和訪問(wèn)控制框架設(shè)計(jì)的內(nèi)容,并論述鑒別和訪問(wèn)控制所面臨的主要威脅,并說(shuō)明其危害。鑒別(Authentication)的基本目的就是防止其他實(shí)體占用和獨(dú)立操作被鑒別實(shí)體的身份。鑒別提供了實(shí)體聲稱(chēng)其身份的保證。鑒別的兩種重要的關(guān)系背景:一是實(shí)體由申請(qǐng)者來(lái)代表,申請(qǐng)者與驗(yàn)證者之間存在著特定的通信關(guān)系(如實(shí)體鑒別);二是實(shí)體為驗(yàn)證者提供數(shù)據(jù)項(xiàng)來(lái)源。鑒別的方式主要有以下的幾種:已知的,如一個(gè)秘密的口令擁有的,如IC卡,令牌等不改變的特征,如生物特征相信可靠的第三方建立的鑒別(遞推)環(huán)境(如主機(jī)地址等)。訪問(wèn)控制(AccessControl)決定開(kāi)放系統(tǒng)環(huán)境中允許使用哪些資源,在什么地方適合阻止未授權(quán)的訪問(wèn)的過(guò)程。在訪問(wèn)控制實(shí)例中,訪問(wèn)可以是對(duì)一個(gè)系統(tǒng)(即對(duì)一個(gè)系統(tǒng)通信部分的一個(gè)實(shí)體)或?qū)σ粋€(gè)系統(tǒng)內(nèi)部進(jìn)行的。三、 給出至少4種企業(yè)集成平臺(tái)應(yīng)具有的基本功能,并對(duì)這4種功能內(nèi)涵進(jìn)行筒述。集成平臺(tái)是支持企業(yè)集成的支撐環(huán)境,包括硬件軟件,軟件工具和系統(tǒng),通過(guò)集成各種企業(yè)應(yīng)用軟件的多樣性,企業(yè)信息系統(tǒng)的功能和環(huán)境都非常復(fù)雜,因此為了能夠較好地滿足企業(yè)的應(yīng)用需求,作為企業(yè)應(yīng)用集成支持環(huán)境的集成平臺(tái),應(yīng)該具有以下的基本功能。1) 通信服務(wù)它提供分布環(huán)境下透明的同步異步通信服務(wù)功能,使用戶和應(yīng)用程序無(wú)需關(guān)心具體的操作系統(tǒng)和應(yīng)用程序所處的網(wǎng)絡(luò)物理位置,而以透明的函數(shù)調(diào)用或?qū)ο蠓?wù)方式完成它們所需的通信服務(wù)要求。2) 信息集成服務(wù)它為應(yīng)用提供透明的信息訪問(wèn)服務(wù),通過(guò)實(shí)現(xiàn)異種數(shù)據(jù)庫(kù)系統(tǒng)之間的數(shù)據(jù)的交換,互操作,分布數(shù)據(jù)管理和共享信息模型定義(或共享信息數(shù)據(jù)庫(kù)的建立),使集成平臺(tái)上運(yùn)行的應(yīng)用,服務(wù)或用戶端能夠以一致的語(yǔ)義和接口實(shí)現(xiàn)對(duì)數(shù)據(jù)(數(shù)據(jù)庫(kù),數(shù)據(jù)文件,應(yīng)用交互信息)的訪問(wèn)與控制。3) 應(yīng)用集成服務(wù)它通過(guò)高層應(yīng)用編程接口來(lái)實(shí)現(xiàn)對(duì)相應(yīng)應(yīng)用程序的訪問(wèn),這些高層應(yīng)用編程接口包含在不同的應(yīng)用程序。這些接口以函數(shù)或?qū)ο蠓?wù)的方式向平臺(tái)的組件模型提供信息,使用戶在無(wú)需對(duì)原有系統(tǒng)進(jìn)行修改的情況下,只要在原有系統(tǒng)上加上訪問(wèn)的接口就可以將現(xiàn)有的,用不同的技術(shù)實(shí)現(xiàn)的系統(tǒng)互聯(lián)起來(lái),通過(guò)為應(yīng)用系統(tǒng)提供數(shù)據(jù)交換和訪問(wèn)操作,使各種不同的系統(tǒng)能夠相互協(xié)作。4) 二次開(kāi)發(fā)工具二次開(kāi)發(fā)工具是集成平臺(tái)提供的一組幫助用戶開(kāi)發(fā)特定應(yīng)用程序(如實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換的適配器或應(yīng)用封裝服務(wù)等)的支持工具,其目的是簡(jiǎn)化用戶在企業(yè)集成平臺(tái)實(shí)施過(guò)程中(特定應(yīng)用程序接口)的開(kāi)發(fā)工作。5) 平臺(tái)運(yùn)行管理工具它是企業(yè)集成平臺(tái)的運(yùn)行管理和控制模塊,負(fù)責(zé)企業(yè)集成平臺(tái)系統(tǒng)的靜態(tài)和動(dòng)態(tài)配置,集成平臺(tái)應(yīng)用運(yùn)行管理和維護(hù),事件管理和出錯(cuò)管理等,通過(guò)命名服務(wù),目錄服務(wù),平臺(tái)的動(dòng)態(tài)和靜態(tài)配置,以及其中的關(guān)鍵數(shù)據(jù)的定期備份等功能來(lái)維護(hù)整個(gè)服務(wù)平臺(tái)的系統(tǒng)配置及穩(wěn)定運(yùn)行。四、筒要描述微服務(wù)優(yōu)點(diǎn)。1) 技術(shù)異構(gòu)性在微服務(wù)架構(gòu)中,每個(gè)服務(wù)都是一個(gè)相對(duì)獨(dú)立的個(gè)體,每個(gè)服務(wù)都可以選擇合適于自身的技術(shù)來(lái)實(shí)現(xiàn)。如要開(kāi)發(fā)一個(gè)社交平臺(tái),此時(shí)我們可能使用文檔型數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)帖子的內(nèi)容,使用圖數(shù)據(jù)來(lái)存儲(chǔ)朋友圈的這些關(guān)系,可以將每一塊的性能都充分發(fā)揮出來(lái)。同時(shí)在應(yīng)用新技術(shù)時(shí),微服務(wù)架構(gòu)也提供了更好的平臺(tái)。因?yàn)閷?duì)于單塊的系統(tǒng)而言,采用一個(gè)新的語(yǔ)言,數(shù)據(jù)庫(kù)或者框架都會(huì)對(duì)整個(gè)系統(tǒng)產(chǎn)生非常巨大的影響,這樣就導(dǎo)致我們?cè)趪L試新技術(shù)的時(shí)候望而卻步。但是微服務(wù)不同,我們完全可以只在一個(gè)微服務(wù)中采用新技術(shù),然后等成熟之后再推廣到其他的服務(wù)當(dāng)中。2) 彈性系統(tǒng)中的一部分如果出現(xiàn)了故障會(huì)引起多大問(wèn)題。在單塊系統(tǒng)中一個(gè)部分出現(xiàn)問(wèn)題,可能導(dǎo)致整個(gè)系統(tǒng)的問(wèn)題。而微服務(wù)架構(gòu)中,每個(gè)服務(wù)可以內(nèi)置可用性的解決方案與功能降級(jí)方案,所以比單塊系統(tǒng)強(qiáng)大。3) 擴(kuò)展在單塊的系統(tǒng)中我們?nèi)绻獙?duì)系統(tǒng)進(jìn)行擴(kuò)展的話,必須是整體的進(jìn)行擴(kuò)展,而使用微服務(wù)的架構(gòu)中,可以針對(duì)單個(gè)服務(wù)進(jìn)行擴(kuò)展。4) 筒化部署對(duì)于大型單塊的系統(tǒng),哪怕是修改了一行代碼,都要對(duì)其進(jìn)行重新的整體的部署。這種部署影響很大,風(fēng)險(xiǎn)高因此不敢輕易重新部署。而在微服務(wù)中,每個(gè)服務(wù)都是獨(dú)立部署的,而且還可以實(shí)現(xiàn)自動(dòng)化的部署,這樣就可以更快的對(duì)特定部分的代碼進(jìn)行部署。5) 與組織結(jié)構(gòu)相匹配對(duì)于傳統(tǒng)的單塊系統(tǒng)來(lái)說(shuō),系統(tǒng)越大代碼庫(kù)越大,則越難管理,而且還會(huì)出現(xiàn)一系列管理方面的問(wèn)題。體會(huì)團(tuán)隊(duì)是分布式(虛擬團(tuán)隊(duì))的時(shí)候,那么管理的復(fù)雜度將會(huì)更高。而微服務(wù)的出現(xiàn)就很好的解決了這個(gè)問(wèn)題。微服務(wù)架構(gòu)可以將架構(gòu)與組織結(jié)構(gòu)相匹配,避免的了出現(xiàn)過(guò)大的代碼庫(kù),從而獲得理想團(tuán)隊(duì)大小和生產(chǎn)力。服務(wù)的所有權(quán)也可以在團(tuán)隊(duì)之間遷移,從而避免異地團(tuán)隊(duì)的出現(xiàn)。6) 可組合性在微服務(wù)架構(gòu)中,系統(tǒng)會(huì)開(kāi)放很多的接口供外部使用。當(dāng)情況發(fā)生改變時(shí),可以使用不同的方式構(gòu)建應(yīng)用,而整體化應(yīng)用程序只能提供一個(gè)非常粗粒度的接口供外部使用。7) 對(duì)可替代性的優(yōu)化在單塊系統(tǒng)中如果刪除系統(tǒng)中的上百行代碼,也許不知道會(huì)發(fā)生什么,引起什么樣的問(wèn)題,因?yàn)閱螇K系統(tǒng)中關(guān)聯(lián)性很強(qiáng)。但在微服務(wù)架構(gòu)中,我們可以在需要時(shí)輕易的重寫(xiě)服務(wù),或者刪除不再使用的服務(wù)。2020年一、Hash分片、一致性Hash分片和按照數(shù)據(jù)范圍分片是三種常用的數(shù)據(jù)分片方式。常用的關(guān)系型數(shù)據(jù)庫(kù)都存在性能瓶頸,即在數(shù)據(jù)達(dá)到一定的量級(jí)之后,數(shù)據(jù)庫(kù)的性能會(huì)顯著下降,數(shù)據(jù)庫(kù)的讀寫(xiě)操作都會(huì)隨之受到影響。所以就需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化處理。比如緩存技術(shù),讀寫(xiě)分離技術(shù)和數(shù)據(jù)分片技術(shù)都可以起到提高性能,緩解單個(gè)物理節(jié)點(diǎn)的壓力。緩存工作中比較常用的如Redis用來(lái)緩解數(shù)據(jù)庫(kù)的壓力。將熱點(diǎn)數(shù)據(jù)預(yù)熱到緩沖中,避免大量的訪問(wèn)壓力直接給到數(shù)據(jù)庫(kù)上面,給數(shù)據(jù)庫(kù)減輕負(fù)擔(dān)。讀寫(xiě)分離配置實(shí)現(xiàn)主從數(shù)據(jù)庫(kù),將請(qǐng)求分為讀/寫(xiě)兩種類(lèi)型,讀請(qǐng)求走從庫(kù)(slave),寫(xiě)類(lèi)型請(qǐng)求走主庫(kù)(master)0比如MySQL自身提供的主從數(shù)據(jù)同步方案。主從庫(kù)之存在較低(可接受范圍)的數(shù)據(jù)同步延遲。數(shù)據(jù)分片如果單表/單庫(kù)存在數(shù)據(jù)保存的性能問(wèn)題,可使用分片將保存的數(shù)據(jù)分散到多個(gè)庫(kù)表中,其中分為水平分片和垂直分片。水平分片統(tǒng)一類(lèi)型的數(shù)據(jù),分別放到不同的庫(kù)/表中。每個(gè)分片包含了整體的數(shù)據(jù)集合的一部分。雖然可減輕單節(jié)點(diǎn)的訪問(wèn)壓力,又迎來(lái)了分布式事務(wù)的問(wèn)題。垂直分片存在一個(gè)寬表(即包含過(guò)多字段的表),其中某幾個(gè)字段屬于熱點(diǎn)數(shù)據(jù),客戶端請(qǐng)求某一條記錄,大部分情況下都是要獲取這條記錄中的某幾個(gè)熱點(diǎn)字段。這個(gè)時(shí)候,將這張表拆分為主表和從表兩張表,熱點(diǎn)數(shù)據(jù)單獨(dú)成表(從表),這樣數(shù)據(jù)訪問(wèn)/更新會(huì)避免在寬表上的大量操作。提前合計(jì)好對(duì)應(yīng)的主從表。按照不同的業(yè)務(wù)模塊拆分?jǐn)?shù)據(jù)庫(kù),這樣可以適當(dāng)?shù)臏p少單個(gè)服務(wù)器的壓力。三種數(shù)據(jù)分片方式:hash方式,一致性哈希(consistenthash),按照數(shù)據(jù)范圍(rangebased)哈希分片概念:按照數(shù)據(jù)的某一特征來(lái)計(jì)算哈希值,并將哈希值與系統(tǒng)中的節(jié)點(diǎn)建立映射關(guān)系。優(yōu)點(diǎn):簡(jiǎn)單易于實(shí)現(xiàn)缺點(diǎn):很難解決數(shù)據(jù)不均衡問(wèn)題,再增加一個(gè)機(jī)器,每個(gè)機(jī)器對(duì)應(yīng)的一個(gè)hash值的區(qū)域就發(fā)生改變。補(bǔ)充:假設(shè)這里面是按員工的薪水進(jìn)行計(jì)算hash值,實(shí)際人群中,可能處于平均薪水10k左右的人比較多,高薪水的人比較少這導(dǎo)致某些機(jī)器上的數(shù)據(jù)很大,導(dǎo)致大量的數(shù)據(jù)集中到一個(gè)物理節(jié)點(diǎn)上。一致性哈希概念:一致性hash相當(dāng)與一個(gè)環(huán)。所有的數(shù)據(jù)都在這個(gè)環(huán)上,每個(gè)機(jī)器相當(dāng)于環(huán)的一截,相比于上述的hash方式,一致性hash方式需要維護(hù)的元數(shù)據(jù)額外包含了節(jié)點(diǎn)在環(huán)上的位置。優(yōu)點(diǎn):簡(jiǎn)單易于實(shí)現(xiàn),在增刪數(shù)據(jù)的時(shí)候只會(huì)影響到hash環(huán)上相鄰的節(jié)點(diǎn),不會(huì)發(fā)生大規(guī)模的數(shù)據(jù)遷移。缺點(diǎn):增加節(jié)點(diǎn)的時(shí)候,只能分?jǐn)傄粋€(gè)已存在節(jié)點(diǎn)的壓力補(bǔ)充:在實(shí)際工程中,一般會(huì)引入虛擬節(jié)點(diǎn)(virtualnode)的概念。即不是將物理節(jié)點(diǎn)映射在hash換上,而是將虛擬節(jié)點(diǎn)映射到hash環(huán)上。虛擬節(jié)點(diǎn)的數(shù)目遠(yuǎn)大于物理節(jié)點(diǎn),因此一個(gè)物理節(jié)點(diǎn)需要負(fù)責(zé)多個(gè)虛擬節(jié)點(diǎn)的真實(shí)存儲(chǔ)。操作數(shù)據(jù)的時(shí)候,先通過(guò)hash環(huán)找到對(duì)應(yīng)的虛擬節(jié)點(diǎn),再通過(guò)虛擬節(jié)點(diǎn)與物理節(jié)點(diǎn)的映射關(guān)系找到對(duì)應(yīng)的物理節(jié)點(diǎn)。按照數(shù)據(jù)范圍概念:就是按照關(guān)鍵值劃分成不同的區(qū)間,每個(gè)物理節(jié)點(diǎn)負(fù)責(zé)一個(gè)或者多個(gè)區(qū)間。其實(shí)這種方式跟一致性hash有點(diǎn)像,可以理解為物理節(jié)點(diǎn)在hash環(huán)上的位置是動(dòng)態(tài)變化的。優(yōu)點(diǎn):當(dāng)達(dá)到這個(gè)閾值之后就會(huì)分裂成兩個(gè)塊。這樣做的目的在于當(dāng)有節(jié)點(diǎn)加入的時(shí)候,可以快速達(dá)到均衡的目的缺點(diǎn):在數(shù)據(jù)可修改的情況下,如果塊進(jìn)行分裂,那么元數(shù)據(jù)中的區(qū)間信息也需要同步修改。補(bǔ)充:rangebased這種數(shù)據(jù)分片方式應(yīng)用非常廣泛,比如MongoDB,PostgreSQL,HDFS比校如果一個(gè)節(jié)點(diǎn)負(fù)責(zé)的數(shù)據(jù)只有一個(gè)區(qū)間,rangebased與沒(méi)有虛擬節(jié)點(diǎn)概念的一致性hash很類(lèi)似;如果一個(gè)節(jié)點(diǎn)負(fù)責(zé)多個(gè)區(qū)間,rangebased與有虛擬節(jié)點(diǎn)概念的一致性hash很類(lèi)似。分片方式映射難度元數(shù)據(jù)節(jié)點(diǎn)增刪數(shù)據(jù)動(dòng)態(tài)均衡哈希方式簡(jiǎn)單、非常簡(jiǎn)單幾乎不用修改需要遷移的數(shù)據(jù)比較多不支持一致性哈希簡(jiǎn)單比較簡(jiǎn)單,取決于節(jié)點(diǎn)規(guī)模幾乎不用修改增刪節(jié)點(diǎn)的時(shí)候只影響hash環(huán)上相鄰節(jié)點(diǎn),但不能使所有節(jié)點(diǎn)都參與數(shù)據(jù)遷移過(guò)程不支持一致性哈希(虛中等稍微復(fù)雜很少修改需要遷移的數(shù)弱支持(修改虛擬節(jié)點(diǎn))一些主要取決于虛擬節(jié)點(diǎn)規(guī)模據(jù)比較少,且所有節(jié)點(diǎn)都能貢獻(xiàn)部分?jǐn)?shù)據(jù)擬節(jié)點(diǎn)與物理節(jié)點(diǎn)映射關(guān)系)范圍分片較為復(fù)雜取決于每個(gè)塊的大小一般來(lái)說(shuō)規(guī)模較大,且修改頻率較高需要遷移的數(shù)據(jù)比較少,且所有節(jié)點(diǎn)都能貢獻(xiàn)部分?jǐn)?shù)據(jù)支持比較容易數(shù)據(jù)分片需要按照一定的規(guī)則,不同的分布式應(yīng)用有不同的規(guī)則,但都遵循同樣的原則:按照最主要、最頻繁使用的訪問(wèn)方式來(lái)分片。具體如何劃分原始數(shù)據(jù)集當(dāng)原問(wèn)題的規(guī)模變大的時(shí)候,能否通過(guò)增加節(jié)點(diǎn)來(lái)動(dòng)態(tài)適應(yīng)當(dāng)某個(gè)節(jié)點(diǎn)故障的時(shí)候,能否將該節(jié)點(diǎn)上的任務(wù)均衡的分?jǐn)偟狡渌?jié)點(diǎn)對(duì)于可修改的數(shù)據(jù)(比如數(shù)據(jù)庫(kù)數(shù)據(jù)),如果某節(jié)點(diǎn)數(shù)據(jù)量變大,能否以及如何將部分?jǐn)?shù)據(jù)遷移到其他負(fù)載較小的節(jié)點(diǎn),及達(dá)到動(dòng)態(tài)均衡的效果元數(shù)據(jù)的管理(即數(shù)據(jù)與物理節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系)規(guī)模元數(shù)據(jù)更新的頻率以及復(fù)雜度二、 服務(wù)化、強(qiáng)刼性、可觀測(cè)性和自動(dòng)化是云原生架構(gòu)重復(fù)的四類(lèi)設(shè)計(jì)原則,請(qǐng)簡(jiǎn)要對(duì)這四類(lèi)設(shè)計(jì)原則的內(nèi)涵進(jìn)行闡述。云原生架構(gòu)以微服務(wù)和容器技術(shù)為代表,有服務(wù)化、強(qiáng)韌性、可觀測(cè)性和自動(dòng)化四類(lèi)設(shè)計(jì)原則。通過(guò)服務(wù)化的設(shè)計(jì)原則,應(yīng)用被分解為多個(gè)服務(wù),可分別選擇不同的技術(shù),單個(gè)服務(wù)模塊很容易開(kāi)發(fā)、理解和維護(hù),無(wú)需協(xié)調(diào)其他服務(wù)對(duì)本服務(wù)的影響;通過(guò)強(qiáng)韌性的設(shè)計(jì)原則,微服務(wù)可以分布式云化部署,負(fù)載均衡管理請(qǐng)求的分發(fā),避免單機(jī)失敗對(duì)整體服務(wù)的影響,以及彈性調(diào)整資源容量;通過(guò)可觀測(cè)性的設(shè)計(jì)原則,能夠?qū)ο到y(tǒng)進(jìn)行健康檢查、指標(biāo)監(jiān)控、日志管理和鏈路追蹤,提高系統(tǒng)運(yùn)維、管理和排錯(cuò)能力;通過(guò)自動(dòng)化的設(shè)計(jì)原則,可實(shí)現(xiàn)系統(tǒng)的自動(dòng)化部署、自動(dòng)化擴(kuò)展伸縮、自動(dòng)化運(yùn)維、持續(xù)交付和集成,有效減少人工操作的工作量。三、 詳細(xì)論述常見(jiàn)的缺陷種類(lèi)及級(jí)別,論述缺陷管理和基本流程軟件缺陷的定義軟件缺陷的存在會(huì)導(dǎo)致軟件產(chǎn)品在某種程度上不能滿足用戶的需要。IEEE729-1983對(duì)缺陷的標(biāo)準(zhǔn)定義:從產(chǎn)品內(nèi)部看,缺陷是軟件產(chǎn)品開(kāi)發(fā)或維護(hù)過(guò)程中存在的錯(cuò)誤、毛病等各種問(wèn)題;從產(chǎn)品外部看,缺陷是系統(tǒng)所需要實(shí)現(xiàn)的某種功能的失效或違背。導(dǎo)致軟件缺陷產(chǎn)生的原因也是多種多樣的,軟件工程過(guò)程中的人、過(guò)程、工具都有可能導(dǎo)致產(chǎn)生軟件缺陷,過(guò)程中的每一個(gè)環(huán)節(jié)都有可能產(chǎn)生缺陷軟件缺陷的分類(lèi)功能沒(méi)有實(shí)現(xiàn)或與需求規(guī)格說(shuō)明不一致;界面、消息、提示、幫助不夠準(zhǔn)確或誤導(dǎo)用戶;屏幕顯示、打印結(jié)果不正確;軟件無(wú)故退出或沒(méi)有反應(yīng);邊界條件未做處理,輸入錯(cuò)誤數(shù)據(jù)沒(méi)有提示和說(shuō)明;運(yùn)行速度慢或占用資源過(guò)多;與常用的交互軟件不兼容;缺陷管理的目的是:對(duì)各個(gè)階段測(cè)試發(fā)現(xiàn)的缺陷進(jìn)行跟蹤管理,以保證各級(jí)缺陷的修復(fù)率達(dá)到標(biāo)準(zhǔn),主要實(shí)現(xiàn)以下目標(biāo):(1) 保證信息的一致性;(2) 保證缺陷得到有效的跟蹤,縮短溝通時(shí)間,解決問(wèn)題更高效;(3) 收集缺陷數(shù)據(jù)并進(jìn)行數(shù)據(jù)分析,作為缺陷度量的依據(jù)。參與缺陷管理的角色測(cè)試工程師:發(fā)現(xiàn)和回歸BUG測(cè)試經(jīng)理:判斷BUG的有效性開(kāi)發(fā)經(jīng)理:分配BUG開(kāi)發(fā)工程師:修改BUG缺陷來(lái)源Requirement:由于需求的問(wèn)題引起的缺陷(需求不完全或邏輯錯(cuò)誤)Architecture:由于檢架的問(wèn)題引起的缺陷(登錄session失效)Design:由于設(shè)計(jì)的問(wèn)題引起的缺陷(圖片大小,頁(yè)面元素顯示問(wèn)題等Code:由于編碼的問(wèn)題引起的缺陷Test:由于劉試的問(wèn)題引起的缺陷(軟件測(cè)試的設(shè)計(jì)與實(shí)施發(fā)生錯(cuò)誤。特別是系統(tǒng)級(jí)的功能測(cè)試)Integration:由于集衣的問(wèn)題引起的缺陷缺陷嚴(yán)重性和優(yōu)先級(jí)缺陷嚴(yán)重性和優(yōu)先級(jí)缺陷的嚴(yán)重性說(shuō)明0級(jí)(致命)最嚴(yán)重等級(jí),缺陷導(dǎo)致系統(tǒng)任何一個(gè)主要功能完全喪失、用戶數(shù)據(jù)受到破壞、系統(tǒng)崩潰、懸掛、死機(jī)等1級(jí)(嚴(yán)重)系統(tǒng)的主要功能部分喪失、數(shù)據(jù)不能完全保存,系統(tǒng)的次要功能完全喪失,系統(tǒng)所提供的功能或服務(wù)收到明顯影響2級(jí)(一般)系統(tǒng)的次要功能沒(méi)有完全實(shí)現(xiàn),但不影響用戶的正常使用。例如,提示信息不太準(zhǔn)確;或用戶界面差、操做時(shí)間稍長(zhǎng)等問(wèn)題3級(jí)(微小)操作者不方便或遇到麻煩,但不影響功能的操做和執(zhí)行,如字體不美觀、按鈕大小不很合適、字體排列不對(duì)齊等一些小問(wèn)題缺陷的優(yōu)先級(jí)說(shuō)明立即解決(pl級(jí))缺陷導(dǎo)致系統(tǒng)幾乎不能完全運(yùn)行、使用,或嚴(yán)重妨礙測(cè)試的執(zhí)行,需立即修正、盡快修正高優(yōu)先級(jí)(p2級(jí))缺陷嚴(yán)重,影響測(cè)試,需要優(yōu)先考慮修正,如不超過(guò)24小時(shí)修正正常排隊(duì)(p3級(jí))缺陷需要修正,但可以正常排隊(duì)等待修正低優(yōu)先級(jí)(p4級(jí))缺陷可以在開(kāi)發(fā)人員有時(shí)間的時(shí)候被修正,如果沒(méi)時(shí)間可以不修正缺陷管理基本流程:(1)提交:測(cè)試人員發(fā)現(xiàn)缺陷后,將缺陷提交給測(cè)試組長(zhǎng)。(2) 分配:測(cè)試負(fù)責(zé)人收到測(cè)試人員提交的缺陷后,交給開(kāi)發(fā)人員。(3) 確認(rèn):開(kāi)發(fā)者收到轉(zhuǎn)移的缺陷后,會(huì)與團(tuán)隊(duì)甚至測(cè)試人員討論確定該缺陷是否為缺陷。(4) 拒絕/延期:如果經(jīng)協(xié)商,該缺陷不是真正的缺陷,則拒絕處理并關(guān)閉該缺陷;如果經(jīng)過(guò)協(xié)商確定是真正的缺陷,可以根據(jù)缺陷的嚴(yán)重程度或優(yōu)先級(jí)等選擇立即處理或推遲處理。處理:顯影劑修正缺陷。重新測(cè)試:開(kāi)發(fā)者修正缺陷后,測(cè)試者重新測(cè)試,檢查缺陷是否確實(shí)被修改了。如果沒(méi)有正確修改,請(qǐng)重新提交缺陷。關(guān)閉:測(cè)試人員重新測(cè)試后,如果缺陷已被正確糾正,則關(guān)閉缺陷,完成整個(gè)缺陷處理。四、詳細(xì)說(shuō)明三類(lèi)企業(yè)集成架構(gòu)設(shè)計(jì)技術(shù)分別要解決的問(wèn)題及其含義,并闡述每種技術(shù)具體包含了哪些集成架構(gòu)。企業(yè)信息化集成主要由界面集成、應(yīng)用集成、數(shù)據(jù)集成等方式。界面集成,通過(guò)UI將不同業(yè)務(wù)模塊或系統(tǒng)的界面進(jìn)行集成整合,使用戶查看或使用系統(tǒng)時(shí),不需要打開(kāi)N多個(gè)系統(tǒng)進(jìn)行操作。應(yīng)用集成,一般指功能或API集成,它可以使不同廠家開(kāi)發(fā)的系統(tǒng)通過(guò)接口整合后,實(shí)現(xiàn)互聯(lián)互通的目的,使得原本不相容的兩個(gè)或多個(gè)系統(tǒng),可以互相協(xié)同工作。數(shù)據(jù)集成是以數(shù)據(jù)共享的方式對(duì)不同系統(tǒng)中模塊中的數(shù)據(jù)進(jìn)行整合,使之整合成一個(gè)完整的數(shù)據(jù)信息,供不同系統(tǒng)時(shí)實(shí)現(xiàn)數(shù)據(jù)共享。2019年一、詳細(xì)闡述有哪些不同的軟件設(shè)計(jì)方法,并說(shuō)明每種方法的適用場(chǎng)景。軟件設(shè)計(jì)方法包括有:模型驅(qū)動(dòng)設(shè)計(jì),面向?qū)ο笤O(shè)計(jì),結(jié)構(gòu)化設(shè)計(jì),快速應(yīng)用開(kāi)發(fā),原型設(shè)計(jì),信息工程法。模型驅(qū)動(dòng)設(shè)計(jì)模型驅(qū)動(dòng)設(shè)計(jì)是一種系統(tǒng)設(shè)計(jì)方法,強(qiáng)調(diào)通過(guò)繪制圖形化系統(tǒng)模型描述系統(tǒng)的挖術(shù)稱(chēng)莫現(xiàn)。通常從模型驅(qū)動(dòng)分析中開(kāi)發(fā)的邏輯模型導(dǎo)出系統(tǒng)設(shè)計(jì)模型,最終系統(tǒng)設(shè)計(jì)模型將作為構(gòu)造和實(shí)現(xiàn)新系統(tǒng)的藍(lán)圖。結(jié)構(gòu)化設(shè)計(jì)它是一種面向過(guò)程的系統(tǒng)設(shè)計(jì)技術(shù),它將系統(tǒng)過(guò)程分解成一個(gè)容易實(shí)現(xiàn)和維護(hù)的計(jì)算機(jī)程序模塊。把一個(gè)程序設(shè)計(jì)成一個(gè)自頂向下的模塊層次,一個(gè)模塊就是一組指令:一個(gè)程序片段,程序塊,子程序或者子過(guò)程,這些模塊自頂向下按照各種設(shè)計(jì)規(guī)則和設(shè)計(jì)指南進(jìn)行開(kāi)發(fā),模塊需要滿足高內(nèi)聚松散耦合的特征。信息工程法信息工程是一種用來(lái)計(jì)劃,分析和設(shè)計(jì)信息系統(tǒng)的模型驅(qū)動(dòng)的,以數(shù)據(jù)為中心的但對(duì)過(guò)程敏感的技術(shù)。信息工程模型是一些說(shuō)明和同步系統(tǒng)的數(shù)據(jù)和過(guò)程的圖形。信息工程的主要工具就是數(shù)據(jù)模型圖(物理實(shí)體關(guān)系圖)。4) 原型設(shè)計(jì)原型法是一種反復(fù)迭代過(guò)程,它需要設(shè)計(jì)人員和用戶之間保持緊密的工作關(guān)系,通過(guò)構(gòu)造一個(gè)預(yù)期系統(tǒng)的小規(guī)模的,不完整的但可以工作的示例來(lái)與用戶交互設(shè)計(jì)的結(jié)果。原型設(shè)計(jì)方法鼓勵(lì)并要求最終用戶主動(dòng)參與,這增加了最終用戶對(duì)項(xiàng)目的信心和支持。更好地適應(yīng)用戶總是想改變想法的自然情況。原型是主動(dòng)的模型,最終用戶可以看到并與之交互。5) 面向?qū)ο笤O(shè)計(jì)是一種新的設(shè)計(jì)策略,用于精煉早期面向?qū)ο蠓治鲭A段確定的對(duì)象需求定義,并定義新的與設(shè)計(jì)相關(guān)的對(duì)象。面向?qū)ο笤O(shè)計(jì)是面向?qū)ο蠓治龅难由?,有利于消除?shù)據(jù)和過(guò)程的分離。(寫(xiě)作參考:在我們慣常的項(xiàng)目開(kāi)發(fā)中,經(jīng)常會(huì)使用各種設(shè)計(jì)工具來(lái)做系統(tǒng)分析,制作各種設(shè)計(jì)圖并以之為基礎(chǔ)和客戶進(jìn)行討論,經(jīng)過(guò)確認(rèn)達(dá)成一致后作為系統(tǒng)分析的產(chǎn)物。然而一旦進(jìn)入到開(kāi)發(fā)階段,開(kāi)發(fā)人員根本不會(huì)按照之前的設(shè)計(jì)來(lái)實(shí)現(xiàn),很多時(shí)候代碼只是實(shí)現(xiàn)了功能,大部分實(shí)現(xiàn)都經(jīng)過(guò)重新設(shè)計(jì),而分析模型則直接被扔在了一邊。導(dǎo)致這樣做的一個(gè)根本原因,是我們?nèi)狈σ惶捉7妒?。它可以采用統(tǒng)一的方式,并可以非常方便的將模型轉(zhuǎn)化為代碼設(shè)計(jì)并可以保持模型與設(shè)計(jì)之間的映射關(guān)系。面向?qū)ο笤O(shè)計(jì)(Object-OrientedDesign)是目前為止公認(rèn)的可以實(shí)現(xiàn)該要求的建模范式。后續(xù)文章則將在關(guān)注在如何使用面向?qū)ο笤O(shè)計(jì)來(lái)實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)的相關(guān)問(wèn)題上。抽象出關(guān)鍵的領(lǐng)域知識(shí)(名詞定義)并支持有效的實(shí)現(xiàn)(設(shè)計(jì)范式),是模型驅(qū)動(dòng)設(shè)計(jì)的核心二要素。開(kāi)發(fā)人員要意識(shí)到代碼和模型是整個(gè)系統(tǒng)的一體兩面,改變代碼即意味著改變模型。如果忽略了這一點(diǎn),到最后模型則將失去指導(dǎo)作用,并逐漸變得不可用。同時(shí),建模人員也應(yīng)花時(shí)間去了解代碼。雙方通過(guò)使用統(tǒng)一領(lǐng)域語(yǔ)言保持模型和實(shí)現(xiàn)的一致性。)6) 快速應(yīng)用開(kāi)發(fā)是一種系統(tǒng)設(shè)計(jì)方法,是各種結(jié)構(gòu)化技術(shù)(特別是數(shù)據(jù)驅(qū)動(dòng)的信息工程)與原型化技術(shù)和聯(lián)合應(yīng)用開(kāi)發(fā)技術(shù)的結(jié)合,用以加速系統(tǒng)的開(kāi)發(fā)??焖賾?yīng)用開(kāi)發(fā)要求反復(fù)的使用結(jié)構(gòu)化技術(shù)和原型技術(shù)來(lái)定義用戶的需求并設(shè)計(jì)最終系統(tǒng)。二、詳細(xì)闡述有哪些不同的軟件系統(tǒng)架構(gòu)評(píng)估方法,并從評(píng)估目標(biāo)、質(zhì)量屬性和評(píng)估活動(dòng)等方面論述其區(qū)別。常見(jiàn)的系統(tǒng)體系架構(gòu)分析方法有SAAM和ATAMoSAAM(Scenarios-basedArchitectureAnalysisMethod)是一種非功能質(zhì)量屬性的體系架構(gòu)分析方法。最初用于比較不同的體系架構(gòu),分析架構(gòu)的可修改性,后來(lái)也用于其他的質(zhì)量屬性,如可移植性、可擴(kuò)充性等。1) 特定目標(biāo)對(duì)描述應(yīng)用程序?qū)傩缘奈臋n,驗(yàn)證基本體系結(jié)構(gòu)假設(shè)和原則。SAAM不僅能夠評(píng)估體系結(jié)構(gòu)對(duì)于特定系統(tǒng)需求的適用能力,也能被用來(lái)比較不同的體系結(jié)構(gòu)。2) 評(píng)估活動(dòng)SAAM的過(guò)程包括了五個(gè)步驟:即場(chǎng)景開(kāi)發(fā),體系結(jié)構(gòu)描述,單個(gè)場(chǎng)景評(píng)估,場(chǎng)景交互,總體評(píng)估。ATAM(ArchitectureTradeoffAnalysisMethod)是在SAAM的基礎(chǔ)上發(fā)展起來(lái)的,主要針對(duì)性能、實(shí)用性、安全性和可修改性,在系統(tǒng)開(kāi)發(fā)之前,對(duì)這些質(zhì)量屬性進(jìn)行評(píng)價(jià)和折中。(1) 特定目標(biāo):在考慮多個(gè)相互影響的質(zhì)量屬性的情況下,從原則上提供一種理解軟件體系結(jié)構(gòu)的能力的方法,使用該方法確定在多個(gè)質(zhì)量屬性之間折中的必要性。(2) 評(píng)估活動(dòng):分為四個(gè)主要的活動(dòng)領(lǐng)域,分別是場(chǎng)景和需求收集、體系結(jié)構(gòu)視圖和場(chǎng)景實(shí)現(xiàn)、屬性模型構(gòu)造和分析、折中。三、詳細(xì)闡述數(shù)據(jù)湖技術(shù),并從主要數(shù)據(jù)來(lái)源、數(shù)據(jù)模式((Schema))轉(zhuǎn)換時(shí)機(jī)、數(shù)據(jù)存儲(chǔ)成本、數(shù)據(jù)質(zhì)量、面對(duì)用戶和主要支撐應(yīng)用類(lèi)型等5個(gè)方面詳細(xì)論述數(shù)據(jù)湖技術(shù)與數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的差異。數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)優(yōu)化的數(shù)據(jù)庫(kù),用于分析來(lái)自事務(wù)系統(tǒng)和業(yè)務(wù)線應(yīng)用程序的關(guān)系數(shù)據(jù)。數(shù)據(jù)倉(cāng)庫(kù)技術(shù)需要事先定義數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)模式(Schema)以優(yōu)化快速SQL查詢,其中結(jié)果通常用于操作報(bào)告和分析。數(shù)據(jù)經(jīng)過(guò)了清理、豐富和轉(zhuǎn)換,因此可以充當(dāng)用戶可信任的“單一信息源”。與數(shù)據(jù)倉(cāng)庫(kù)不同,數(shù)據(jù)湖能夠同時(shí)存儲(chǔ)來(lái)自業(yè)務(wù)線應(yīng)用程序的關(guān)系數(shù)據(jù),以及來(lái)自移動(dòng)應(yīng)用程序、物聯(lián)網(wǎng)設(shè)備和社交媒體的非關(guān)系數(shù)據(jù)。在進(jìn)行數(shù)據(jù)捕獲時(shí),無(wú)須定義數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)模式(Schema)。數(shù)據(jù)湖支持用戶對(duì)數(shù)據(jù)使用不同類(lèi)型的分析(如SQL查詢、大數(shù)據(jù)分析、全文搜索、實(shí)時(shí)分析和機(jī)器學(xué)習(xí)等),為企業(yè)智能決策提供支撐。下面從主要數(shù)據(jù)來(lái)源、數(shù)據(jù)模式轉(zhuǎn)換時(shí)機(jī)、數(shù)據(jù)存儲(chǔ)成本、數(shù)據(jù)質(zhì)量、面對(duì)用戶和主要支撐應(yīng)用類(lèi)型等六個(gè)方面對(duì)數(shù)據(jù)湖技術(shù)和數(shù)據(jù)倉(cāng)庫(kù)技術(shù)進(jìn)行比較:特征主要數(shù)據(jù)來(lái)源數(shù)據(jù)模式轉(zhuǎn)換時(shí)機(jī)數(shù)據(jù)存儲(chǔ)成本數(shù)據(jù)質(zhì)量面對(duì)用戶主要支撐應(yīng)用類(lèi)型數(shù)來(lái)自物聯(lián)網(wǎng)設(shè)備,數(shù)據(jù)進(jìn)入數(shù)通?;谠嫉?,未業(yè)務(wù)分析機(jī)器學(xué)習(xí),據(jù)互聯(lián)網(wǎng),移動(dòng)應(yīng)用據(jù)湖時(shí)不進(jìn)非關(guān)系型經(jīng)處理的師應(yīng)用分析湖程序,社交媒體和企業(yè)應(yīng)用程序的結(jié)構(gòu)化,半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)行相應(yīng)的模式轉(zhuǎn)換,在進(jìn)行實(shí)際數(shù)據(jù)分析時(shí)才進(jìn)行模式轉(zhuǎn)換數(shù)據(jù)庫(kù),數(shù)據(jù)存儲(chǔ)成本相對(duì)較低數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)來(lái)自事務(wù)系統(tǒng),運(yùn)營(yíng)數(shù)據(jù)庫(kù)和業(yè)務(wù)線應(yīng)用程序的結(jié)構(gòu)化數(shù)據(jù)在進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前(需要提前設(shè)計(jì)數(shù)據(jù)倉(cāng)庫(kù)的Schema)通?;陉P(guān)系型數(shù)據(jù)庫(kù),數(shù)據(jù)存儲(chǔ)成本較高可作為重要事實(shí)依據(jù)的高質(zhì)量數(shù)據(jù)應(yīng)用開(kāi)發(fā)人員和數(shù)據(jù)科學(xué)家業(yè)務(wù)分析師數(shù)據(jù)發(fā)現(xiàn)和分析批處理報(bào)告,商業(yè)智能四、詳細(xì)闡述常見(jiàn)的三種負(fù)載均衡算法,說(shuō)明算法的基本原理。現(xiàn)有的負(fù)載均衡算法主要分為靜態(tài)和動(dòng)態(tài)兩類(lèi)。靜態(tài)負(fù)載均衡算法以固定的概率分配任務(wù),不考慮服務(wù)器的狀態(tài)信息,如輪轉(zhuǎn)算法和隨機(jī)法等;動(dòng)態(tài)負(fù)載算法以服務(wù)器的實(shí)時(shí)負(fù)載狀態(tài)信息來(lái)決定任務(wù)的分配,如最小連接法等。輪詢法輪詢法就是將用戶的請(qǐng)求輪流分配給服務(wù)器,就像是挨個(gè)數(shù)數(shù),輪流分配。這種算法比較簡(jiǎn)單,具有絕對(duì)均衡的優(yōu)點(diǎn),但是也正是因?yàn)榻^對(duì)均衡,它必須付出很大的代價(jià),例如它無(wú)法保證分配任務(wù)的合理性,也無(wú)法根據(jù)服務(wù)器的承受能力來(lái)分配任務(wù)。隨機(jī)法就是隨機(jī)選擇一臺(tái)服務(wù)器來(lái)分配任務(wù)。它保證了請(qǐng)求的分散性達(dá)到了均衡的目的。同時(shí)它是沒(méi)有狀態(tài)的,不需要維持上次的選擇狀態(tài)和均衡因子。但是隨著任務(wù)量的增大,它的效果趨向輪詢后也會(huì)有輪詢法的部分缺點(diǎn)。最小連接法最小連接法將任務(wù)分配給此時(shí)具有最小連接數(shù)的節(jié)點(diǎn),因此它是動(dòng)態(tài)負(fù)載均衡算法。一個(gè)節(jié)點(diǎn)收到-個(gè)任務(wù)之后連接數(shù)就會(huì)加1,當(dāng)節(jié)點(diǎn)發(fā)生故障時(shí)就將結(jié)點(diǎn)的權(quán)值設(shè)置為0,也就是不再給結(jié)點(diǎn)分配任務(wù)。該算法適用于各個(gè)節(jié)點(diǎn)的運(yùn)算處理性能相似的情形。任務(wù)分發(fā)單元會(huì)將任務(wù)平滑分配給服務(wù)器。但當(dāng)服務(wù)器性能差距較大的時(shí)候,就無(wú)法達(dá)到預(yù)期的效果。因此此時(shí)連接數(shù)并不能準(zhǔn)確表明處理能力,連接數(shù)小而自身性能很差的服務(wù)器可能不及連接數(shù)大而自身性能極好的服務(wù)器。所以在這個(gè)時(shí)候就會(huì)導(dǎo)致任務(wù)無(wú)法準(zhǔn)確地分配到剩余處理能力強(qiáng)的機(jī)器上。2018年一、詳細(xì)論述軟件開(kāi)發(fā)過(guò)程產(chǎn)品RUP所包含的4個(gè)階段以及RUP的基本特征。RUP中的軟件過(guò)程在時(shí)間上被分解為四個(gè)順序的階段,分別是初始階段,細(xì)化階段,構(gòu)件階段,交付階段。每個(gè)階段結(jié)束時(shí)都要安排一次技術(shù)評(píng)審,以確定這個(gè)階段的目標(biāo)是否已經(jīng)滿足。如果評(píng)審結(jié)果令人滿意,就可以允許項(xiàng)目進(jìn)入下一個(gè)階段。四個(gè)階段的核心任務(wù)分別為初始階段明確地說(shuō)明項(xiàng)目規(guī)模。這涉及了解環(huán)境及最重要的需求和約束,以便于可以得出最終產(chǎn)品的驗(yàn)收標(biāo)準(zhǔn)。計(jì)劃和準(zhǔn)備商業(yè)理由。評(píng)估風(fēng)險(xiǎn)管理,人員配備,項(xiàng)目計(jì)劃和成本/進(jìn)度/收益率折衷的備選方案。綜合考慮備選構(gòu)架,評(píng)估設(shè)計(jì)和自制外購(gòu)復(fù)用方面的折中,從而估算出成本,進(jìn)度和資源。此處的目標(biāo)在于通過(guò)對(duì)一些概念的證實(shí)來(lái)證明可行性。該證明可采用可模擬需求的模型形式或用于探索被認(rèn)為高風(fēng)險(xiǎn)區(qū)域的初始原型。初始階段的原型設(shè)計(jì)工作應(yīng)該限制在確信解決方案可行就可以了。該解決方案在細(xì)化和構(gòu)建階段實(shí)現(xiàn)。準(zhǔn)備項(xiàng)目的環(huán)境,評(píng)估項(xiàng)目和組織,選擇工具,決定流程中要改進(jìn)的部分細(xì)化階段快速確定構(gòu)架,確認(rèn)構(gòu)架并為構(gòu)架建立基線。根據(jù)此階段獲得的新信息改進(jìn)前景,對(duì)推動(dòng)架構(gòu)和計(jì)劃決策的最關(guān)鍵用例建立可靠的了解。為構(gòu)建階段創(chuàng)建詳細(xì)的迭代計(jì)劃并為其建立基線。改進(jìn)開(kāi)發(fā)案例,定位開(kāi)發(fā)環(huán)境,包括流程和支持構(gòu)件團(tuán)隊(duì)所需的工具和自動(dòng)化支持。改進(jìn)構(gòu)架并選擇構(gòu)件。評(píng)估潛在構(gòu)件,充分了解自制外購(gòu)復(fù)用決策,以便有把握地確定構(gòu)建階段的成本和進(jìn)度。集成了所選構(gòu)架構(gòu)件,并按主要場(chǎng)景進(jìn)行了評(píng)估。通過(guò)這些活動(dòng)得到的經(jīng)驗(yàn)有可能導(dǎo)致重新設(shè)計(jì)構(gòu)架,考慮替代設(shè)計(jì)或重新考慮需求。構(gòu)建階段資源管理,控制和流程優(yōu)化。完成構(gòu)件開(kāi)發(fā)并根據(jù)已經(jīng)定義的評(píng)估標(biāo)準(zhǔn)進(jìn)行測(cè)試。根據(jù)前景的驗(yàn)收標(biāo)準(zhǔn)對(duì)產(chǎn)品發(fā)布版進(jìn)行評(píng)估。提交階段執(zhí)行部署計(jì)劃對(duì)最終用戶支持材料定稿在開(kāi)發(fā)現(xiàn)場(chǎng)測(cè)試可交付產(chǎn)品制作產(chǎn)品發(fā)布版。獲得用戶的反饋基于反饋調(diào)整產(chǎn)品使最終用戶可以使用產(chǎn)品RUP最核心的3個(gè)特征是:用例驅(qū)動(dòng)、以架構(gòu)為中心的、迭代和增量。制品(Artifact) what的問(wèn)題:制品是活動(dòng)生成、創(chuàng)建或修改的一段信息。也可譯為產(chǎn)品、工件等,和制品的意思差不多。工作流(Workflow) when的問(wèn)題:工作流描述了一個(gè)有意義的連續(xù)的活動(dòng)序列,每個(gè)工作流產(chǎn)生一些有價(jià)值的產(chǎn)品,并顯示了角色之間的關(guān)系。二、軟件體系結(jié)構(gòu)的演化是便用系統(tǒng)演化步驟去修改系統(tǒng),以滿足新的需求。筒要論述系統(tǒng)演化的6個(gè)步驟。求設(shè)文立文字即直相實(shí)標(biāo)裘演)轂矣分包審(曲英的分包進(jìn)行許審) ?射用產(chǎn)審(用求設(shè)文立文字即直相實(shí)標(biāo)裘演)轂矣分包審(曲英的分包進(jìn)行許審) ?射用產(chǎn)審(用>3產(chǎn)料婷子給你授損訛11了)0「 J1 架構(gòu)@比圖t9?FS!構(gòu)的軟件開(kāi)發(fā)復(fù)5!- 歸求5?………1………1 H出舉屹臉牛?gm1:1?10「 J1 架構(gòu)@比圖t9?FS!構(gòu)的軟件開(kāi)發(fā)復(fù)5!- 歸求5?………1………1 H出舉屹臉牛?gm1:1?1:標(biāo)識(shí)J? ON;把類(lèi)啥4梅件1;1j構(gòu)11-_IV車(chē)評(píng)0I 設(shè)計(jì)畑圖6U0架構(gòu)需求過(guò)程ffi6-llSE構(gòu)設(shè)計(jì)過(guò)程分析設(shè)計(jì)實(shí)現(xiàn)組¥?1試圖&12ON腐球受化運(yùn))|@?恂件的相M作用H球受化嗆女岸恂件ift計(jì)軟件1?板約束需康■化后的聚梅圖&13架構(gòu)演化過(guò)世圖6-8ABSDH法與生命爛期軟件體系結(jié)構(gòu)演化實(shí)際上指的是ABSD方法(基于架構(gòu)的軟件設(shè)計(jì)方法)中的最后一個(gè)階段。體系結(jié)構(gòu)演化是使用系統(tǒng)演化步驟去修改應(yīng)用,以滿足新的需求。主要包括以下六個(gè)步驟。番求變動(dòng)歸類(lèi)首先必須對(duì)用戶需求的變化進(jìn)行歸類(lèi),使變化的需求與已有構(gòu)件對(duì)應(yīng)。對(duì)找不到的構(gòu)件的變動(dòng),也要做好標(biāo)記,在后續(xù)工作中,將創(chuàng)建新的構(gòu)件,以對(duì)應(yīng)這部分變化的需求。制定體系結(jié)構(gòu)演化計(jì)劃在改變?cè)薪Y(jié)構(gòu)之前,開(kāi)發(fā)組織必須制訂一個(gè)周密的體系結(jié)構(gòu)演化計(jì)劃,作為后續(xù)演化開(kāi)發(fā)工作的指南。修改增加或刪除構(gòu)件(構(gòu)件變動(dòng))在演化計(jì)劃的基礎(chǔ)上,開(kāi)發(fā)人員可根據(jù)在第1步得到的需求變動(dòng)的歸類(lèi)情況,決定是否修改或刪除存在的構(gòu)件、增加新構(gòu)件。最后,對(duì)修改和增加的構(gòu)件進(jìn)行功能性測(cè)試。更新構(gòu)件的相互作用隨著構(gòu)件的增加、刪除和修改,構(gòu)件之間的控制流必須得到更新構(gòu)件組裝與測(cè)試通過(guò)組裝支持工具把這些構(gòu)件的實(shí)現(xiàn)體組裝起來(lái),完成整個(gè)軟件系統(tǒng)的連接與合成,形成新的體系結(jié)構(gòu)。然后對(duì)組裝后的系統(tǒng)整體功能和性能進(jìn)行測(cè)試。技術(shù)評(píng)審對(duì)以上步驟進(jìn)行確認(rèn),進(jìn)行技術(shù)評(píng)審。評(píng)審組裝后的體系結(jié)構(gòu)式否反映需求變動(dòng),符合用戶需求。如果不符合,則需要在第2到第6步之間進(jìn)行迭代。三、說(shuō)明面向服務(wù)架構(gòu)的主要技術(shù)和標(biāo)準(zhǔn),詳細(xì)闡述每種技術(shù)和標(biāo)準(zhǔn)的具體內(nèi)容。面向服務(wù)架構(gòu)的主要技術(shù)有Web服務(wù)、ESBo涉及到的標(biāo)準(zhǔn)有:UDDI協(xié)議UDDI(統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議)計(jì)劃是一個(gè)廣泛的、開(kāi)放的行業(yè)計(jì)劃,它使得商業(yè)實(shí)體能夠(1)彼此發(fā)現(xiàn),(2)定義他們?cè)鯓釉贗nternet±互相作用,并在一個(gè)全球的注冊(cè)體系架構(gòu)中共享信息。UDDI是這樣一種基礎(chǔ)的系統(tǒng)構(gòu)筑模塊,它使商業(yè)實(shí)體能夠快速、方便地使用他們自身的企業(yè)應(yīng)用軟件來(lái)發(fā)現(xiàn)合適的商業(yè)對(duì)等實(shí)體,并與其實(shí)施電子化的商業(yè)貿(mào)易。UDDI同時(shí)也是Web服務(wù)集成的一個(gè)體系框架。它包含了服務(wù)描述與發(fā)現(xiàn)的標(biāo)準(zhǔn)規(guī)范。UDDI規(guī)范利用了W3C和Internet工程任務(wù)組織(IETF)的很多標(biāo)準(zhǔn)作為其實(shí)現(xiàn)基礎(chǔ),比如擴(kuò)展標(biāo)注語(yǔ)言(XML)、HTTP和域名服務(wù)(DNS)等協(xié)議。另外,在跨平臺(tái)的設(shè)計(jì)特性中,UDDI主要采用了已經(jīng)被提議給W3C的SOAPCSimpleObjectAccessProtocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)規(guī)范的早期版本。WSDL規(guī)范WSDL是WebServicesDescriptionLanguage(Web服務(wù)描述語(yǔ)言)的縮寫(xiě),是一個(gè)用來(lái)描述Web服務(wù)和說(shuō)明如何與Web服務(wù)通信的XML語(yǔ)言。它是Web服務(wù)的接口定義語(yǔ)言,由Ariba、Intel、IBM、MS等共同提出,通過(guò)WSDL,可描述Web服務(wù)的三個(gè)基本屬性:1、 服務(wù)做些什么一一服務(wù)所提供的操作(方法);2、 如何訪問(wèn)服務(wù)一一和服務(wù)交互的數(shù)據(jù)格式以及必要協(xié)議;3、 服務(wù)位于何處——協(xié)議相關(guān)的地址,如URL。WSDL文檔以端口集合的形式來(lái)描述Web服務(wù),WSDL服務(wù)描述包含對(duì)一組操作和消息的一個(gè)抽象定義,綁定到這些操作和消息的一個(gè)具體協(xié)議,和這個(gè)綁定的一個(gè)網(wǎng)絡(luò)端點(diǎn)規(guī)范。SOAP協(xié)議SOAP(SimpleObjectAccessProtocol)簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議是在分散或分布式的環(huán)境中交換信息的簡(jiǎn)單的協(xié)議,是一個(gè)基于XML的協(xié)議。它包括四個(gè)部分:SOAP封裝(Envelop),封裝定義了一個(gè)描述消息中的內(nèi)容是什么,是誰(shuí)發(fā)送的,誰(shuí)應(yīng)當(dāng)接受并處理它,以及如何處理它們的框架;SOAP編碼規(guī)則(Encodi陰Rules),用于表示應(yīng)用程序需要使用的數(shù)據(jù)類(lèi)型的實(shí)例;SOAPRPC表示(RPCRepresentation),表示遠(yuǎn)程過(guò)程調(diào)用和應(yīng)答的協(xié)定;SOAP綁定(Binding),使用底層協(xié)議交換信息。四、詳細(xì)論述常見(jiàn)的NoSQL數(shù)據(jù)庫(kù)技術(shù)及其所包含的主要內(nèi)容,并說(shuō)明NoSQL數(shù)據(jù)庫(kù)的主要適用場(chǎng)景。NoSQL的主要優(yōu)勢(shì)避免不必要的復(fù)雜性高呑吐量高水平擴(kuò)展能力和低端硬件集群避免了昂貴的關(guān)系對(duì)象映射N(xiāo)0SQL的缺點(diǎn)數(shù)據(jù)模型和查詢語(yǔ)言沒(méi)有經(jīng)過(guò)數(shù)學(xué)驗(yàn)證不支持ACID特征功能簡(jiǎn)單沒(méi)有統(tǒng)一的查詢模型NoSQL的分類(lèi)鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)這一類(lèi)數(shù)據(jù)庫(kù)主要會(huì)使用到一個(gè)哈希表,這個(gè)表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù)。Key/value模型對(duì)于IT系統(tǒng)來(lái)說(shuō)的優(yōu)勢(shì)在于簡(jiǎn)單、易部署。但是如果DBA只對(duì)部分值進(jìn)行查詢或更新的時(shí)候,Key/value就顯得效率低下了。例如:TokyoCabinet/Tyrant,Redis,Voldemort.OracleBDB.適應(yīng)場(chǎng)景:會(huì)話、配置文件、參數(shù)、購(gòu)物車(chē)等等。這些信息一般都和ID(鍵)掛鉤,這種情景下鍵值數(shù)據(jù)庫(kù)是個(gè)很好的選擇。不適應(yīng)場(chǎng)景:1)取代通過(guò)鍵查詢,而是通過(guò)值來(lái)查詢。Key-Value數(shù)據(jù)庫(kù)中根本沒(méi)有通過(guò)值查詢的途徑。2)需要儲(chǔ)存數(shù)據(jù)之間的關(guān)系。在Key-Value數(shù)據(jù)庫(kù)中不能通過(guò)兩個(gè)或以上的鍵來(lái)關(guān)聯(lián)數(shù)據(jù)。3)事務(wù)的支持。在Key-Value數(shù)據(jù)庫(kù)中故障產(chǎn)生時(shí)不可以進(jìn)"亍回滾。列存儲(chǔ)數(shù)據(jù)庫(kù)這部分?jǐn)?shù)據(jù)庫(kù)通常是用來(lái)應(yīng)對(duì)分布式存儲(chǔ)的海量數(shù)據(jù)。鍵仍然存在,但是它們的特點(diǎn)是指向了多個(gè)列。這些列是由列家族來(lái)安排的。HBase:FIBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于FayChang所撰寫(xiě)的Google論文"Bigtable:—個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(F訂eSystem)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類(lèi)似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。列存儲(chǔ)數(shù)據(jù)庫(kù)將數(shù)據(jù)儲(chǔ)存在列族(columnfamily)中,一個(gè)列族存儲(chǔ)經(jīng)常被一起查詢的相關(guān)數(shù)據(jù)。舉個(gè)例子,如果我們有一個(gè)Person類(lèi),我們通常會(huì)一起查詢他們的姓名和年齡而不是薪資。這種情況下,姓名和年齡就會(huì)被放入一個(gè)列族中,而薪資則在另一個(gè)列族中。產(chǎn)品:CassandraHBase適用的場(chǎng)景1) 日志。因?yàn)槲覀兛梢詫?shù)據(jù)儲(chǔ)存在不同的列中,每個(gè)應(yīng)用程序可以將信息寫(xiě)入自己的列族中。2) 潯客平臺(tái)。我們儲(chǔ)存每個(gè)信息到不同的列族中。舉個(gè)例子,標(biāo)簽可以儲(chǔ)存在一個(gè),類(lèi)別可以在一個(gè),而文章則在另一個(gè)。不適用場(chǎng)景1) 如果我們需要ACID事務(wù)。Vassandra就不支持事務(wù)。2) 原型設(shè)計(jì)。如果我們分析Cassandra的數(shù)據(jù)結(jié)構(gòu),我們就會(huì)發(fā)現(xiàn)結(jié)構(gòu)是基于我們期望的數(shù)據(jù)查詢方式而定。在模型設(shè)計(jì)之初,我們根本不可能去預(yù)測(cè)它的查詢方式,而一旦查詢方式改變,我們就必須重新設(shè)計(jì)列族。文檔型數(shù)據(jù)庫(kù)面向文檔數(shù)據(jù)庫(kù)會(huì)將數(shù)據(jù)以文檔的形式儲(chǔ)存。每個(gè)文檔都是自包含的數(shù)據(jù)單元,是一系列數(shù)據(jù)項(xiàng)的集合。每個(gè)數(shù)據(jù)項(xiàng)都有一個(gè)名稱(chēng)與對(duì)應(yīng)的值,值既可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,如字符串、數(shù)字和日期等;也可以是復(fù)雜的類(lèi)型,如有序列表和關(guān)聯(lián)對(duì)象。數(shù)據(jù)存儲(chǔ)的最小單位是文檔,同一個(gè)表中存儲(chǔ)的文檔屬性可以是不同的,數(shù)據(jù)可以使用XML、JSON或者JSONB等多種形式存儲(chǔ)。文檔型數(shù)據(jù)庫(kù)的靈感是來(lái)自于LotusNotes辦公軟件的,而且它同第一種鍵值存儲(chǔ)相類(lèi)似。該類(lèi)型的數(shù)據(jù)模型是版本化的文檔,半結(jié)構(gòu)化的文檔以特定的格式存儲(chǔ),比如JSON。文檔型數(shù)據(jù)庫(kù)可以看作是鍵值數(shù)據(jù)庫(kù)的升級(jí)版,允許之間嵌套鍵值。而且文檔型數(shù)據(jù)庫(kù)比鍵值數(shù)據(jù)庫(kù)的查詢效率更高。如:CouchDB,MongoDB.國(guó)內(nèi)也有文檔型數(shù)據(jù)庫(kù)SequoiaDB,已經(jīng)開(kāi)源。MongoDB:MongoDB是目前在IT行業(yè)非常流行的一種非關(guān)系型數(shù)據(jù)庫(kù)(NoSql),其靈活的數(shù)據(jù)存儲(chǔ)方式備受當(dāng)前IT從業(yè)人員的青睞。MongoDB很好的實(shí)現(xiàn)了面向?qū)ο蟮乃枷耄?0思想),在MongoDB中每一條記錄都是一個(gè)Document對(duì)象。MongoDB最大的優(yōu)勢(shì)在于所有的數(shù)據(jù)持久操作都無(wú)需開(kāi)發(fā)人員手動(dòng)編寫(xiě)SQL語(yǔ)句,直接調(diào)用方法就可以輕松的實(shí)現(xiàn)CRUD操作。SequoiaDB:SequoiaDB是一款分布式非關(guān)系型文檔數(shù)據(jù)庫(kù),可以被用來(lái)存取海量非關(guān)系型的數(shù)據(jù),其底層主要基于分布式,高可用,高性能與動(dòng)態(tài)數(shù)據(jù)類(lèi)型設(shè)計(jì)SequoiaDB可以獨(dú)立作為一款高性能可擴(kuò)展的NoSQL數(shù)據(jù)庫(kù)使用,也可與當(dāng)前主流分布式計(jì)算框架Hadoop緊密集成。產(chǎn)品:MongoDB、CouchDB、RavenDB適用的場(chǎng)景1) 日志:>企業(yè)環(huán)境下,每個(gè)應(yīng)用程序都有不同的日志信息。Document-Oriented數(shù)據(jù)庫(kù)并沒(méi)有固定的模式,所以我們可以使用它儲(chǔ)存不同的信息。2) 分析。鑒于它的弱模式結(jié)構(gòu),不改變模式下就可以儲(chǔ)存不同的度量方法及添加新的度量。不適用場(chǎng)景在不同的文檔上添加事務(wù)。Document-Oriented數(shù)據(jù)庫(kù)并不支持文檔間的事務(wù),如果對(duì)這方面有需求則不應(yīng)該選用這個(gè)解決方案。圖形(Graph)數(shù)據(jù)庫(kù)圖形結(jié)構(gòu)的數(shù)據(jù)庫(kù)同其他行列以及剛性結(jié)構(gòu)的SQL數(shù)據(jù)庫(kù)不同,它是使用靈活的圖形模型,并且能夠擴(kuò)展到多個(gè)服務(wù)器上。NoSQL數(shù)據(jù)庫(kù)沒(méi)有標(biāo)準(zhǔn)的查詢語(yǔ)言(SQL),因此進(jìn)行數(shù)據(jù)庫(kù)查詢需要制定數(shù)據(jù)模型。許多NoSQL數(shù)據(jù)庫(kù)都有REST式的數(shù)據(jù)接口或者查詢API。如:Neo4J,InfoGrid,InfiniteGraph.圖數(shù)據(jù)庫(kù)允許我們將數(shù)據(jù)以圖的方式儲(chǔ)存。實(shí)體會(huì)被作為頂點(diǎn),而實(shí)體之間的關(guān)系則會(huì)被作為邊。比如我們有三個(gè)實(shí)體,SteveJobs、Apple和Next,則會(huì)有兩個(gè)"Foundedby"的邊將Apple和Next連接到SteveJobso產(chǎn)品:Meo4J、InfiniteGraph,OrientDB適用的場(chǎng)景1) 在一些關(guān)系性強(qiáng)的數(shù)據(jù)中2) 推薦引擎。如果我們將數(shù)據(jù)以圖的形式表現(xiàn),那么將會(huì)非常有益于推薦的制定不適用場(chǎng)景不適合的數(shù)據(jù)模型。圖數(shù)據(jù)庫(kù)的適用范圍很小,因?yàn)楹苌儆胁僮魃婕暗秸麄€(gè)圖。2017年一、說(shuō)明軟件系統(tǒng)開(kāi)發(fā)中常用的建模方法有哪幾類(lèi)?闡述每種方法的特點(diǎn)及其適用范圍。軟件設(shè)計(jì)方法包括有:模型驅(qū)動(dòng)設(shè)計(jì),面向?qū)ο笤O(shè)計(jì),結(jié)構(gòu)化設(shè)計(jì),快速應(yīng)用開(kāi)發(fā),原型設(shè)計(jì),信息工程法。1) 模型驅(qū)動(dòng)設(shè)計(jì)模型驅(qū)動(dòng)設(shè)計(jì)是一種系統(tǒng)設(shè)計(jì)方法,強(qiáng)調(diào)通過(guò)繪制圖形化系統(tǒng)模型描述系統(tǒng)的攬術(shù)稱(chēng)共現(xiàn)。通常從模型驅(qū)動(dòng)分析中開(kāi)發(fā)的邏輯模型導(dǎo)出系統(tǒng)設(shè)計(jì)模型,最終系統(tǒng)設(shè)計(jì)模型將作為構(gòu)造和實(shí)現(xiàn)新系統(tǒng)的藍(lán)圖。2) 結(jié)構(gòu)化設(shè)計(jì)它是一種面向過(guò)程的系統(tǒng)設(shè)計(jì)技術(shù),它將系統(tǒng)過(guò)程分解成一個(gè)容易實(shí)現(xiàn)和維護(hù)的計(jì)算機(jī)程序模塊。把一個(gè)程序設(shè)計(jì)成一個(gè)自頂向下的模塊層次,一個(gè)模塊就是一組指令:一個(gè)程序片段,程序塊,子程序或者子過(guò)程,這些模塊自頂向下按照各種設(shè)計(jì)規(guī)則和設(shè)計(jì)指南進(jìn)行開(kāi)發(fā),模塊需要滿足高內(nèi)聚松散耦合的特征。3) 宿息工程法信息工程是一種用來(lái)計(jì)劃,分析和設(shè)計(jì)信息系統(tǒng)的模型驅(qū)動(dòng)的,以數(shù)據(jù)為中心的但對(duì)過(guò)程敏感的技術(shù)。信息工程模型是一些說(shuō)明和同步系統(tǒng)的數(shù)據(jù)和過(guò)程的圖形。信息工程的主要工具就是數(shù)據(jù)模型圖(物理實(shí)體關(guān)系圖)。4) 原型設(shè)計(jì)原型法是一種反復(fù)迭代過(guò)程,它需要設(shè)計(jì)人員和用戶之間保持緊密的工作關(guān)系,通過(guò)構(gòu)造一個(gè)預(yù)期系統(tǒng)的小規(guī)模的,不完整的但可以工作的示例來(lái)與用戶交互設(shè)計(jì)的結(jié)果。原型設(shè)計(jì)方法鼓勵(lì)并要求最終用戶主動(dòng)參與,這增加了最終用戶對(duì)項(xiàng)目的信心和支持。更好地適應(yīng)用戶總是想改變想法的自然情況。原型是主動(dòng)的模型,最終用戶可以看到并與之交互。5) 面向?qū)ο笤O(shè)計(jì)是一種新的設(shè)計(jì)策略,用于精煉早期面向?qū)ο蠓治鲭A段確定的對(duì)象需求定義,并定義新的與設(shè)計(jì)相關(guān)的對(duì)象。面向?qū)ο笤O(shè)計(jì)是面向?qū)ο蠓治龅难由?,有利于消除?shù)據(jù)和過(guò)程的分離。(寫(xiě)作參考:在我們慣常的項(xiàng)目開(kāi)發(fā)中,經(jīng)常會(huì)使用各種設(shè)計(jì)工具來(lái)做系統(tǒng)分析,制作各種設(shè)計(jì)圖并以之為基礎(chǔ)和客戶進(jìn)行討論,經(jīng)過(guò)確認(rèn)達(dá)成一致后作為系統(tǒng)分析的產(chǎn)物。然而一旦進(jìn)入到開(kāi)發(fā)階段,開(kāi)發(fā)人員根本不會(huì)按照之前的設(shè)計(jì)來(lái)實(shí)現(xiàn),很多時(shí)候代碼只是實(shí)現(xiàn)了功能,大部分實(shí)現(xiàn)都經(jīng)過(guò)重新設(shè)計(jì),而分析模型則直接被扔在了一邊。導(dǎo)致這樣做的一個(gè)根本原因,是我們?nèi)狈σ惶捉7妒?。它可以采用統(tǒng)一的方式,并可以非常方便的將模型轉(zhuǎn)化為代碼設(shè)計(jì)并可以保持模型與設(shè)計(jì)之間的映射關(guān)系。面向?qū)ο笤O(shè)計(jì)(Object-OrientedDesign)是目前為止公認(rèn)的可以實(shí)現(xiàn)該要求的建模范式。后續(xù)文章則將在關(guān)注在如何使用面向?qū)ο笤O(shè)計(jì)來(lái)實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)的相關(guān)問(wèn)題上。抽象出關(guān)鍵的領(lǐng)域知識(shí)(名詞定義)并支持有效的實(shí)現(xiàn)(設(shè)計(jì)范式),是模型驅(qū)動(dòng)設(shè)計(jì)的核心二要素。開(kāi)發(fā)人員要意識(shí)到代碼和模型是整個(gè)系統(tǒng)的一體兩面,改變代碼即意味著改變模型。如果忽略了這一點(diǎn),到最后模型則將失去指導(dǎo)作用,并逐漸變得不可用。同時(shí),建模人員也應(yīng)花時(shí)間去了解代碼。雙方通過(guò)使用統(tǒng)一領(lǐng)域語(yǔ)言保持模型和實(shí)現(xiàn)的一致性。)6) 快速應(yīng)用開(kāi)發(fā)是一種系統(tǒng)設(shè)計(jì)方法,是各種結(jié)構(gòu)化技術(shù)(特別是數(shù)據(jù)驅(qū)動(dòng)的信息工程)與原型化技術(shù)和聯(lián)合應(yīng)用開(kāi)發(fā)技術(shù)的結(jié)合,用以加速系統(tǒng)的開(kāi)發(fā)。快速應(yīng)用開(kāi)發(fā)要求反復(fù)的使用結(jié)構(gòu)化技術(shù)和原型技術(shù)來(lái)定義用戶的需求并設(shè)計(jì)最終系統(tǒng)。二、軟件系統(tǒng)開(kāi)發(fā)中常用的軟件架構(gòu)風(fēng)格有哪些?詳細(xì)闡述每種風(fēng)格的具體含義。軟件架構(gòu)風(fēng)格分為五大類(lèi),數(shù)據(jù)流風(fēng)格、調(diào)用/返回風(fēng)格、獨(dú)立構(gòu)件風(fēng)格、虛擬機(jī)風(fēng)格和倉(cāng)庫(kù)風(fēng)格。其中:1) 數(shù)據(jù)流風(fēng)格包括了批處理序列架構(gòu)風(fēng)格和管道過(guò)濾器架構(gòu)風(fēng)格2) 調(diào)用返回風(fēng)格包括主程序和子程序架構(gòu)風(fēng)格,數(shù)據(jù)抽象和面向?qū)ο蠹軜?gòu)風(fēng)格和層次結(jié)構(gòu)架構(gòu)風(fēng)格。3) 獨(dú)立構(gòu)件風(fēng)格包括進(jìn)程通信架構(gòu)風(fēng)格和事件驅(qū)動(dòng)架構(gòu)風(fēng)格4) 虛擬機(jī)風(fēng)格包括了解釋器風(fēng)格和基于規(guī)則的系統(tǒng)5) 倉(cāng)庫(kù)風(fēng)格包括了數(shù)據(jù)庫(kù)風(fēng)格和超文本架構(gòu)風(fēng)格,黑板架構(gòu)風(fēng)格。其他還有特定領(lǐng)域軟件架構(gòu),狀態(tài)轉(zhuǎn)移等以及分布式處理等。其中分布式架構(gòu)風(fēng)格中有客戶機(jī)/服務(wù)器風(fēng)格,瀏覽器/服務(wù)器風(fēng)格,CORBA,DCOM,EJB。每一種具體的軟件結(jié)構(gòu)風(fēng)格的模型如下:批處理序列架構(gòu)風(fēng)格組件為一系列固定順序的計(jì)算單元,組件間只通過(guò)數(shù)據(jù)傳遞交互。每個(gè)處理步驟是一個(gè)獨(dú)立的程序,每一步必須在前一步結(jié)束后才能開(kāi)始,數(shù)據(jù)必須是完整的,以整體的方式傳遞。管道過(guò)濾器架構(gòu)風(fēng)格每個(gè)構(gòu)件都有一組輸入和輸出。構(gòu)件讀輸入的數(shù)據(jù)流,經(jīng)過(guò)內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這個(gè)過(guò)程通常通過(guò)計(jì)算和增加信息豐富數(shù)據(jù),通過(guò)濃縮和刪除精煉數(shù)據(jù),通過(guò)改變記錄方式轉(zhuǎn)化數(shù)據(jù),遞增地轉(zhuǎn)化數(shù)據(jù)等。在輸入被完全消費(fèi)之前,輸出便產(chǎn)生了。這里的構(gòu)件被稱(chēng)為過(guò)濾器,連接件就是數(shù)據(jù)流傳輸?shù)墓艿?,將一個(gè)過(guò)濾器的輸出傳到另一個(gè)過(guò)濾器的輸入。主程序/子程序架構(gòu)風(fēng)格單線程控制,把問(wèn)題劃分為若干處理步驟,構(gòu)件即為主程序和子程序。子程序通常可合成為模塊。過(guò)程調(diào)用作為交互機(jī)制,即充當(dāng)連接件。調(diào)用關(guān)系具有層次性,其語(yǔ)義邏輯表現(xiàn)為子程序的正確性取決于它調(diào)用的子程序的正確性面向?qū)ο蠹軜?gòu)風(fēng)格數(shù)據(jù)抽象和面向?qū)ο蠹軜?gòu)風(fēng)格。這種風(fēng)格的構(gòu)件是對(duì)象。對(duì)象是抽象數(shù)據(jù)類(lèi)型的實(shí)例。在抽象數(shù)據(jù)類(lèi)型中,數(shù)據(jù)的表示和它們的相應(yīng)操作被封裝起來(lái)。對(duì)象的行為體現(xiàn)在其接受和請(qǐng)求的動(dòng)作。連接件即是對(duì)象間交互的方式,對(duì)象是通過(guò)函數(shù)和過(guò)程的調(diào)用來(lái)交互的。對(duì)象具有封裝性,一個(gè)對(duì)象的改變不會(huì)影響其他對(duì)象。對(duì)象擁有狀態(tài)和操作,也有責(zé)任維護(hù)狀態(tài)。這種結(jié)構(gòu)風(fēng)格中包含有封裝、交互、多態(tài)、集成、重用等特征。層次結(jié)構(gòu)架構(gòu)風(fēng)格層次系統(tǒng)組織成一個(gè)層次結(jié)構(gòu)。構(gòu)件在一些層實(shí)現(xiàn)了虛擬機(jī)。連接件通過(guò)決定層間如何交互的協(xié)議來(lái)定義,拓?fù)浼s束包括對(duì)相鄰層間交互的約束。這個(gè)風(fēng)格的特點(diǎn)是每層為上一層提供服務(wù),使用下一層的服務(wù),只能見(jiàn)到與自己鄰接的層。大的問(wèn)題分解為若干個(gè)漸進(jìn)的小問(wèn)題,逐步解決,隱藏了很多復(fù)雜度。修改一層,最多影響兩層,而通常只能影響上層。上層必須知道下層的身份,不能調(diào)整層次之間的順序。進(jìn)程通宿架構(gòu)風(fēng)格構(gòu)件是獨(dú)立的過(guò)程,連接件是消息傳遞。這種風(fēng)格的特點(diǎn)是構(gòu)件通常是命名過(guò)程,消息傳遞的方式可以是點(diǎn)對(duì)點(diǎn)、異步和同步方式、以及遠(yuǎn)過(guò)程調(diào)用等。寧件驅(qū)動(dòng)的架構(gòu)風(fēng)格構(gòu)件不直接調(diào)用一個(gè)過(guò)程,而是觸發(fā)或廣播一個(gè)或多個(gè)事件。系統(tǒng)中的其他構(gòu)件中的過(guò)程在一個(gè)或多個(gè)事件中注冊(cè),當(dāng)一個(gè)事件被觸發(fā),系統(tǒng)自動(dòng)調(diào)用在這個(gè)事件中注冊(cè)的所有過(guò)程。一個(gè)事件的觸發(fā)就導(dǎo)致了另一個(gè)模塊中的過(guò)程的調(diào)用。這種風(fēng)格中的構(gòu)件是非命名的過(guò)程,它們之間交互的連接件往往是以過(guò)程之間的隱式調(diào)用(Implicitlnvocation)來(lái)實(shí)現(xiàn)的?;谑录碾[式調(diào)用風(fēng)格的主要優(yōu)點(diǎn)是為軟件重用提供了強(qiáng)大的支持,為構(gòu)件的維護(hù)和演化帶來(lái)了方便,其缺點(diǎn)是構(gòu)件放棄了對(duì)系統(tǒng)計(jì)算的控制。解釋器架構(gòu)風(fēng)格一個(gè)解釋器通常包括完成解釋工作的解釋引擎,一個(gè)包含將被解釋的代碼的存儲(chǔ)區(qū),一個(gè)記錄解釋引繁當(dāng)前工作狀態(tài)的數(shù)據(jù)結(jié)構(gòu),以及一個(gè)記錄源代碼被解釋執(zhí)行的進(jìn)度的數(shù)據(jù)結(jié)構(gòu)。具有解釋器風(fēng)格的軟件中含有一個(gè)虛擬機(jī),可以仿真硬件的執(zhí)行過(guò)程和一些關(guān)鍵應(yīng)用。其缺點(diǎn)是執(zhí)行效率較低?;谝?guī)則的系統(tǒng)基于規(guī)則的系統(tǒng)包括規(guī)則集、規(guī)則解釋器、規(guī)則/數(shù)據(jù)選擇器以及工作內(nèi)存數(shù)據(jù)庫(kù)架構(gòu)風(fēng)格數(shù)據(jù)庫(kù)架構(gòu)是庫(kù)風(fēng)格最常見(jiàn)的形式。構(gòu)件主要有兩大類(lèi),一個(gè)是中央共享數(shù)據(jù)源,保存當(dāng)前系統(tǒng)的數(shù)據(jù)狀態(tài),另一個(gè)是多個(gè)獨(dú)立處理元素,處理元素對(duì)數(shù)據(jù)元素進(jìn)行操作。黑板架構(gòu)風(fēng)格黑板架構(gòu)包括知識(shí)源、黑板、控制三部分。知識(shí)源包括若千獨(dú)立計(jì)算的不同單元,提供解決問(wèn)題的知識(shí),知識(shí)源響應(yīng)黑板上的變化,也只修改黑板。黑板是一個(gè)全局?jǐn)?shù)據(jù)庫(kù),包含解域的全部狀態(tài),是知識(shí)源互相作用的唯一媒介。知識(shí)源響應(yīng)是通過(guò)黑板狀態(tài)的變化來(lái)控制。黑板通常應(yīng)用在對(duì)于解決問(wèn)題沒(méi)有確定性算法的系統(tǒng)中,例如信號(hào)處理、問(wèn)題規(guī)劃、編譯器優(yōu)化等軟件系統(tǒng)的設(shè)計(jì)中客戶/服務(wù)器風(fēng)格C/S體系結(jié)構(gòu)有三個(gè)主要組成部分:數(shù)據(jù)庫(kù)服務(wù)器、客戶應(yīng)用程序和網(wǎng)絡(luò)。二層C/S結(jié)構(gòu)是單一服務(wù)器且以局域網(wǎng)為中心的,所以難以擴(kuò)展至大型企業(yè)廣域網(wǎng)或Internet軟、硬件的組合及集成能力有限,客戶機(jī)的負(fù)荷太重,難以管理大量的客戶機(jī),系統(tǒng)的性能容易變壞,數(shù)據(jù)安全性不好。三層C/S體系結(jié)構(gòu)是講應(yīng)用功能分成表示層、功能層和數(shù)據(jù)層三個(gè)部分,削弱二層C/S結(jié)構(gòu)的局限性。瀏覽器/服務(wù)器風(fēng)格瀏覽器/服務(wù)器風(fēng)格就是三層C/S結(jié)構(gòu)的一種實(shí)現(xiàn)方式,具體結(jié)構(gòu)為瀏覽器/Web服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器。C2風(fēng)格C2體系結(jié)構(gòu)風(fēng)格可以概括為,通過(guò)連接件綁定在一起按照一組規(guī)則運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)。C2架構(gòu)風(fēng)格是一種常見(jiàn)的層次體系架構(gòu)風(fēng)格。該架構(gòu)風(fēng)格概括而言,是由連接件綁定的按一定規(guī)則運(yùn)行的并行構(gòu)件網(wǎng)絡(luò),在該架構(gòu)風(fēng)格中,各構(gòu)件之間不能直接連接,只能通過(guò)連接件的異步通信機(jī)制進(jìn)行交互,使得構(gòu)件的替換或更新不影響架構(gòu),這種方式體現(xiàn)了高內(nèi)聚,松耦合的設(shè)計(jì)思想。C2風(fēng)格中的系統(tǒng)組織規(guī)則如下:系統(tǒng)中的構(gòu)件和連接件都有一個(gè)頂部和一個(gè)底部;構(gòu)件的頂部應(yīng)連接到某連接件的底部,構(gòu)件的底部則應(yīng)連接到某連接件的頂部;構(gòu)件與構(gòu)件之間的直接連接是不允許的;一個(gè)連接件可以和任意數(shù)目的其他構(gòu)件和連接件連接;當(dāng)兩個(gè)連接件進(jìn)行直接連接時(shí),必須由其中一個(gè)的底部到另一個(gè)的頂部。C2架構(gòu)的缺點(diǎn):效率低,若業(yè)務(wù)處理涉及多個(gè)構(gòu)件層次,在系統(tǒng)執(zhí)行過(guò)程中將存在性能損耗。層次不清:難以劃分出合適的,正確的層次結(jié)構(gòu),有時(shí)由于需求,需要跨層交互,增加復(fù)雜性。三、與傳統(tǒng)的企業(yè)應(yīng)用系統(tǒng)相比校,基于無(wú)服務(wù)器架構(gòu)的應(yīng)用系統(tǒng)具有哪些特點(diǎn),請(qǐng)列舉至少3個(gè)特點(diǎn),并進(jìn)行解釋。從功能角度看,基于無(wú)服務(wù)器架構(gòu)的應(yīng)用系統(tǒng)只需要關(guān)注業(yè)務(wù)邏輯實(shí)現(xiàn)代碼,無(wú)須關(guān)心承載這些代碼的應(yīng)用服務(wù)器如何部署。代碼的部署和運(yùn)維由第三方基礎(chǔ)設(shè)施管理平臺(tái)完成。從開(kāi)發(fā)角度看,基于無(wú)服務(wù)器架構(gòu)的應(yīng)用系統(tǒng)不需要考慮特定框架或開(kāi)發(fā)庫(kù),從編程語(yǔ)言和環(huán)境的角度看更像是一個(gè)普通應(yīng)用?;A(chǔ)設(shè)施管理平臺(tái)負(fù)責(zé)解釋和運(yùn)行各種語(yǔ)言編寫(xiě)的代碼,提供各種異構(gòu)的運(yùn)行環(huán)境。從部署的角度看,基于無(wú)服務(wù)器架構(gòu)的應(yīng)用系統(tǒng)無(wú)須考慮如何部署業(yè)務(wù)代碼,僅需要上傳業(yè)務(wù)代碼至基礎(chǔ)設(shè)施管理平臺(tái),由管理平臺(tái)自動(dòng)進(jìn)行服務(wù)器選擇與代碼部署。從運(yùn)行和擴(kuò)展的角度看,基于無(wú)服務(wù)器架構(gòu)的應(yīng)用系統(tǒng)業(yè)務(wù)邏輯運(yùn)行在無(wú)狀態(tài)的容器中,能夠?qū)崿F(xiàn)彈性、自動(dòng)的水平擴(kuò)展。系統(tǒng)開(kāi)發(fā)者僅需要提供基本的并發(fā)業(yè)務(wù)處理功能,當(dāng)系統(tǒng)面臨大量應(yīng)用請(qǐng)求時(shí),會(huì)由基礎(chǔ)設(shè)施管理平臺(tái)識(shí)別并通過(guò)自動(dòng)提供所需要的無(wú)狀態(tài)、容器化計(jì)算環(huán)境,并在運(yùn)行完成后自動(dòng)釋放。從應(yīng)用模式角度看,基于無(wú)服務(wù)器架構(gòu)的應(yīng)用系統(tǒng)通常采用基于消息機(jī)制的事件觸發(fā)策略,并通過(guò)隱式調(diào)用模式完成事件響應(yīng)。首先值得說(shuō)明的是無(wú)服務(wù)器架構(gòu)并不是不再需要服務(wù)器,只是開(kāi)發(fā)人員不再需要擔(dān)心基礎(chǔ)設(shè)施,因?yàn)橐磺卸加稍铺峁┥特?fù)責(zé)。使用這種方法,開(kāi)發(fā)人員只需部署適當(dāng)?shù)拇a,其他一切由云提供商自動(dòng)管理。在傳統(tǒng)的Web應(yīng)用程序架構(gòu)中,你必須管理基礎(chǔ)架構(gòu),并確保其滿足可擴(kuò)展性和安全性需求。例如,客戶端在一邊,服務(wù)器在另一邊。客戶端發(fā)送一個(gè)請(qǐng)求,服務(wù)器回復(fù)響應(yīng)。但是如果無(wú)法滿足應(yīng)用程序需求,則很快就要擴(kuò)展服務(wù)器端了。無(wú)服務(wù)器模型提供了完全不同的方法。與傳統(tǒng)架構(gòu)不同,無(wú)服務(wù)器架構(gòu)在無(wú)狀態(tài)計(jì)算容器中運(yùn)行,這些容器是事件觸發(fā)的,短暫的(只能持續(xù)一次調(diào)用),并由第三方完全管理。就像一個(gè)黑盒子,這個(gè)服務(wù)你只需上傳代碼并實(shí)時(shí)自動(dòng)處理。當(dāng)一個(gè)請(qǐng)求進(jìn)來(lái)時(shí),就會(huì)運(yùn)行你的Lambda功能的容器。在成本方面,使用無(wú)服務(wù)器模型,通常僅支付服務(wù)請(qǐng)求和運(yùn)行代碼所需的計(jì)算時(shí)間。計(jì)費(fèi)以100毫秒為單位進(jìn)行計(jì)量,使其具有成本效益,并且易于自動(dòng)從每天幾個(gè)請(qǐng)求到每秒數(shù)千次都可以。無(wú)服務(wù)器架構(gòu)的優(yōu)點(diǎn)包括:降低運(yùn)營(yíng)成本無(wú)服務(wù)器架構(gòu)本質(zhì)上是一個(gè)外包解決方案?;A(chǔ)設(shè)施不會(huì)消失。然而與常規(guī)云服務(wù)相比,事實(shí)上只需要根據(jù)流量規(guī)模和形式支付需要的計(jì)算量,這可能會(huì)大大節(jié)省運(yùn)營(yíng)成本,特別是對(duì)于具有不同變化的早期和動(dòng)態(tài)應(yīng)用負(fù)載要求??蓴U(kuò)展性強(qiáng)可擴(kuò)展性強(qiáng)在云服務(wù)領(lǐng)域并不新鮮,但無(wú)服務(wù)架構(gòu)將其提升到一個(gè)全新的水平。無(wú)服務(wù)架構(gòu)的縮放功能不僅可以降低計(jì)算成本,還可以減少運(yùn)行管理,因?yàn)榭s放是自動(dòng)的。使用無(wú)服務(wù)器,無(wú)需明確添加和刪除實(shí)例到服務(wù)器陣列,并讓供應(yīng)商為你擴(kuò)展應(yīng)用程序。由于云計(jì)算提供商根據(jù)每個(gè)請(qǐng)求執(zhí)行擴(kuò)展,所以甚至不需要考慮在內(nèi)存不足之前可以處理多少并發(fā)請(qǐng)求問(wèn)題。分離問(wèn)題無(wú)服務(wù)器幾乎迫使你實(shí)施關(guān)注模型的分離,通過(guò)該分離將應(yīng)用程序分成不同的部分,以使每個(gè)部分都解決一個(gè)單獨(dú)的問(wèn)題。隔離進(jìn)程在無(wú)服務(wù)器環(huán)境中,每個(gè)Lambda函數(shù)都完全隔離。如果其中一個(gè)功能關(guān)閉,它不影響其他功能,它不會(huì)導(dǎo)致服務(wù)器崩潰。無(wú)服務(wù)器架構(gòu)的缺點(diǎn)包括:缺乏控制權(quán)通過(guò)任何外包策略,你都可以將某些系統(tǒng)的控制權(quán)給第三方供應(yīng)商。由于系統(tǒng)停機(jī),意外的限制,成本的變化,功能的喪失,強(qiáng)制的API升級(jí)等,這種缺乏控制可能會(huì)顯現(xiàn)出來(lái)。此外,如果需要專(zhuān)門(mén)的服務(wù)器進(jìn)行專(zhuān)門(mén)的流程,那么必須自己運(yùn)行這個(gè)專(zhuān)門(mén)的服務(wù)器。一個(gè)無(wú)服務(wù)器架構(gòu),在大多數(shù)情況下,提供商業(yè)化的基礎(chǔ)設(shè)施,將以廣義的方式運(yùn)行你的流程。長(zhǎng)時(shí)間運(yùn)行流程的高成本如果你的進(jìn)程持續(xù)運(yùn)行很長(zhǎng)時(shí)間,則可能會(huì)需要運(yùn)行自己的服務(wù)器。因?yàn)檫@不僅涉及到成本,還涉及到擁有的技能或者想要投入運(yùn)行自己的服務(wù)器的專(zhuān)注;在評(píng)估這些解決方案時(shí),請(qǐng)考慮所有這些方面供應(yīng)商鎖定將基礎(chǔ)架構(gòu)管理完全外包給無(wú)服務(wù)器提供商,無(wú)疑將自己鎖定到該供應(yīng)商每個(gè)供應(yīng)商都有自己的標(biāo)準(zhǔn)和編程框架,不容易改變。在幾乎每一種情況下,無(wú)論從供應(yīng)商使用的無(wú)服務(wù)器功能,將由另一個(gè)供應(yīng)商進(jìn)行不同的實(shí)現(xiàn)。如果要切換供應(yīng)商,幾乎肯定需要更新操作工具(部署,監(jiān)控等),可能還需要更改代碼。四、詳細(xì)論述軟件質(zhì)量保證中常見(jiàn)的活動(dòng)有哪些?闡述每個(gè)活動(dòng)的主要內(nèi)容。軟件質(zhì)量保證活動(dòng)包含有計(jì)劃、監(jiān)督、記錄、分析及報(bào)告的軟件質(zhì)量保證活動(dòng),這些活動(dòng)往往由一個(gè)獨(dú)立的SQA小組執(zhí)行。制訂SQA計(jì)劃SQA計(jì)劃在制定項(xiàng)目計(jì)劃時(shí)制定,它規(guī)定了軟件開(kāi)發(fā)小組和質(zhì)量保證小組需要執(zhí)行的質(zhì)量保證活動(dòng)參與開(kāi)發(fā)該軟件項(xiàng)目的軟件過(guò)程描述軟件開(kāi)發(fā)小組為將要開(kāi)展的工作選擇軟件過(guò)程,SQA小組則要評(píng)審過(guò)程說(shuō)明,以保證該過(guò)程與企業(yè)政策、內(nèi)部的軟件標(biāo)準(zhǔn)、外界所制定的標(biāo)準(zhǔn)以及項(xiàng)目開(kāi)發(fā)計(jì)劃的其他部分相符。評(píng)審評(píng)審各項(xiàng)軟件工程活動(dòng),核實(shí)其是否符合已定義的軟件過(guò)程。SQA小組識(shí)別、記錄和跟蹤所有偏離過(guò)程的偏差,核實(shí)其是否已經(jīng)改正。審計(jì)審計(jì)指定的軟件工作產(chǎn)品,核實(shí)其是否符合已定義的軟件過(guò)程的相應(yīng)部分。SQA小組對(duì)選出的產(chǎn)品進(jìn)行評(píng)審,識(shí)別、記錄和跟蹤出現(xiàn)的偏差,核實(shí)其是否己經(jīng)改正,定期向項(xiàng)目負(fù)責(zé)人報(bào)告結(jié)果。記錄并處理偏差確保軟件工作及工作產(chǎn)品中的偏差已被記錄在案,并根據(jù)預(yù)定規(guī)程進(jìn)行處理。偏差可能出現(xiàn)在項(xiàng)目計(jì)劃、過(guò)程描述、采用的標(biāo)準(zhǔn)或技術(shù)工作產(chǎn)品中報(bào)告記錄所有不符部分,并向上級(jí)管理部門(mén)報(bào)告。跟蹤不符合的部分直到問(wèn)題得到解決。除了進(jìn)行上述活動(dòng)外,SQA小組還需要協(xié)調(diào)變更的控制與管理,并幫助收集和分析軟件度量的信息。2016年一、分析軟件系統(tǒng)架構(gòu)評(píng)估中所普遍關(guān)注的質(zhì)量屬性有哪些?詳細(xì)闡述每種質(zhì)量屬性的具體含義。架構(gòu)所關(guān)注的質(zhì)量屬性主要包括:性能、可用性、可修改性、安全性。性能性能是指系統(tǒng)的響應(yīng)能力,即需要多長(zhǎng)時(shí)間,才能對(duì)某個(gè)事件作出響應(yīng),或者在某段事件內(nèi)系統(tǒng)所能處理的事件個(gè)數(shù)。通常用單位時(shí)間內(nèi)所處理事務(wù)的數(shù)量或系統(tǒng)完成某個(gè)事物處理所需的時(shí)間來(lái)對(duì)性能進(jìn)行定量表示。可靠性是軟件系統(tǒng)在應(yīng)用或者系統(tǒng)錯(cuò)誤面前,在意外或者錯(cuò)誤使用的情況下維持軟件系統(tǒng)的功能特征的基本能力??捎眯钥捎眯允窍到y(tǒng)能夠正常運(yùn)行的時(shí)間比例。經(jīng)常用兩次故障之間的時(shí)間長(zhǎng)度或在出現(xiàn)故障時(shí)系統(tǒng)能夠恢復(fù)正常的速度來(lái)表示。安全性安全性是指系統(tǒng)向合法用戶提供服務(wù)的同時(shí),能夠阻止非授權(quán)用戶使用的企圖或拒絕服務(wù)的能力??尚薷男允侵改軌蚩焖俚匾暂^高的性能價(jià)格比對(duì)系統(tǒng)進(jìn)行變更的能力,包括可維護(hù)性,可擴(kuò)展性,結(jié)構(gòu)重構(gòu),可移植性。功能性是系統(tǒng)所能完成所期望的工作的能力。一項(xiàng)任務(wù)的完成需要系統(tǒng)中,許多或大多數(shù)構(gòu)件的相互協(xié)作??勺冃允侵阁w系結(jié)構(gòu)經(jīng)擴(kuò)充或變更而成為新體系結(jié)構(gòu)的能力。互操作性互操作性是指作為系統(tǒng)組成部分的軟件不是獨(dú)立存在的,經(jīng)常與其他系統(tǒng)或自身環(huán)境相互作用。如程序和用其他編程語(yǔ)言編寫(xiě)的軟件系統(tǒng)的交互作用就是互操作性的問(wèn)題現(xiàn)軟件評(píng)估中的主要評(píng)估方法包括SAAM(Scenarios-basedArchitectureAnalysisMethod)和ATAM(ArchitectureTradeoffAnalysisMethod,體系結(jié)構(gòu)權(quán)衡分析方法)。SAAM評(píng)估方法SAAM的分析和評(píng)估目的、評(píng)估參與者、評(píng)估活動(dòng)或過(guò)程以及評(píng)估結(jié)果說(shuō)明如下。評(píng)估目的SAAM(Scenario-basedArchitectureAnalysisMethod)目的是驗(yàn)證基本的體系結(jié)構(gòu)假設(shè)和原則,評(píng)估體系結(jié)構(gòu)固有的風(fēng)險(xiǎn)。SAAM指導(dǎo)對(duì)體系結(jié)構(gòu)的檢查,使其主要關(guān)注潛在的問(wèn)題點(diǎn),如需求沖突。SAAM不僅能夠評(píng)估體系結(jié)構(gòu)對(duì)于特定系統(tǒng)需求的使用能力,也能被用來(lái)比較不同的體系結(jié)構(gòu)。評(píng)估參與者風(fēng)險(xiǎn)承擔(dān)者、記錄人員、軟件體系結(jié)構(gòu)設(shè)計(jì)師。評(píng)估活動(dòng)或過(guò)程SAAM分析評(píng)估體系結(jié)構(gòu)的過(guò)程包括六個(gè)步驟,即形成場(chǎng)景、描述體系結(jié)構(gòu)、場(chǎng)景的分類(lèi)和優(yōu)先級(jí)確定、間接場(chǎng)景的單個(gè)評(píng)估、場(chǎng)景相互作用的評(píng)估、總體評(píng)估。評(píng)估結(jié)果SAAM評(píng)估的主要有形輸出包括:1) 把代表了未來(lái)可能做的更改的場(chǎng)景與構(gòu)架對(duì)應(yīng)起來(lái),顯現(xiàn)出構(gòu)架中未來(lái)可能會(huì)表現(xiàn)出較高復(fù)雜性的地方,并對(duì)每個(gè)這樣的更改的預(yù)期工作量做出評(píng)估。2) 理解系統(tǒng)的功能,對(duì)多個(gè)構(gòu)架所支持的功能和數(shù)量進(jìn)行比較。如果所評(píng)估的是一個(gè)框架,SAAM評(píng)估將指明框架中未能滿足其修改性需求的地方,有時(shí)還會(huì)指出一種效果更好的設(shè)計(jì)。SAAM評(píng)估也能對(duì)兩個(gè)或者三個(gè)備選構(gòu)架進(jìn)行比較,明確其中那一個(gè)能夠較好地滿足質(zhì)量屬性需求,而且做的更改較少、不會(huì)在未來(lái)導(dǎo)致太多的復(fù)雜的問(wèn)題。ATAM評(píng)估方法ATAM的分析和評(píng)估目的、評(píng)估參與者、評(píng)估活動(dòng)或過(guò)程以及評(píng)估結(jié)果說(shuō)明如下。(1) 評(píng)估目的ATAM(ArchitectureTradeoffAnalysisMethod),即構(gòu)架權(quán)衡分析方法的評(píng)估目的是依據(jù)系統(tǒng)質(zhì)量屬性和商業(yè)需求評(píng)估設(shè)計(jì)決策的結(jié)果。ATAM希望揭示出構(gòu)架滿足特定質(zhì)量目標(biāo)的情況,使我們更清楚地認(rèn)識(shí)到質(zhì)量目標(biāo)之間的聯(lián)系,即如何權(quán)衡多個(gè)質(zhì)量目標(biāo)。(2) 評(píng)估參與者評(píng)估小組。該小組是所評(píng)估構(gòu)架項(xiàng)目外部的小組,通常由3、5人組成。該小組的每個(gè)成員都要扮演大量的特定角色。他們可能是開(kāi)發(fā)組織內(nèi)部的,也可能是外部的。項(xiàng)目決策者,對(duì)開(kāi)發(fā)項(xiàng)目具有發(fā)言權(quán),并有權(quán)要求進(jìn)行某些改變,他們包括項(xiàng)目管理人員,重要的客戶代表,構(gòu)架設(shè)計(jì)師等。構(gòu)架涉眾(stakeholders)。包括關(guān)鍵模塊開(kāi)發(fā)人員、測(cè)試人員、用戶等。(3) 評(píng)估活動(dòng)或過(guò)程整個(gè)ATAM評(píng)估過(guò)程包括九個(gè)步驟,按其編號(hào)順序分別是描述ATAM方法、描述商業(yè)動(dòng)機(jī)、描述體系結(jié)構(gòu)、確定體系結(jié)構(gòu)方法、生成質(zhì)量屬性效用樹(shù)、分析體系結(jié)構(gòu)方法、討論和分級(jí)場(chǎng)景、描述評(píng)估結(jié)果。三、說(shuō)明常用的軟件設(shè)計(jì)模式有哪幾類(lèi)?闡述每種類(lèi)型特點(diǎn)及其所包含的設(shè)計(jì)模式。設(shè)計(jì)模式分為三種類(lèi)型:創(chuàng)建型設(shè)計(jì)模式(4種:工廠模式(工廠模式、抽象工廠模式)、單例模式、原型模式(Prototype).建造者模式(Bulider))主要用戶創(chuàng)建對(duì)象;創(chuàng)建模式創(chuàng)對(duì)象。工廠模式要抽象;單例只有一個(gè)類(lèi);原型挎貝創(chuàng)對(duì)象;建造復(fù)雜的對(duì)象。結(jié)構(gòu)型設(shè)計(jì)模式(8種:代理模式(Proxy)、外觀模式(Facade).裝飾器模式(Decorator)、享元模式(Flyweight)、組合模式(Composite).適配器模式(Adapter)、橋接模式(Bridge)、過(guò)濾器(Criteria))主要關(guān)注類(lèi)和對(duì)象的組合;結(jié)構(gòu)型:結(jié)構(gòu)組合類(lèi)對(duì)象。代理外觀裝飾器;享元組合適配器;橋接不能過(guò)濾器。行為型設(shè)計(jì)模式(11種:模板模式(Template)、策略模式(Strategy)、迭代器模式(Iterator)、中介模式(Mediator)、備忘錄模式(Memento)、解釋器模式(Interpreter),觀察者模式(Observer).訪問(wèn)者模式(Visitor)s狀態(tài)模式(State)、責(zé)任鏈模式(ChainofResponsibility),命令模式(Command))主要關(guān)注對(duì)象間通信的問(wèn)題。父類(lèi)與子類(lèi):策略模式、模板方法模式兩個(gè)類(lèi)之間:觀察者模式、迭代子模式、職責(zé)鏈模式、命令模式類(lèi)的狀態(tài):備忘錄模式、狀態(tài)模式通過(guò)中間類(lèi):訪問(wèn)者模式、中介者模式,解釋器模式行為對(duì)象間通宿。模板策略迭代器,中介備忘解釋器,觀察訪問(wèn)有狀態(tài),責(zé)任命令要常記。三、詳細(xì)論述常見(jiàn)的數(shù)據(jù)訪問(wèn)層設(shè)計(jì)技術(shù)及其所包含的主要內(nèi)容。在線訪問(wèn)該模式是基本的數(shù)據(jù)訪問(wèn)模式,在軟件系統(tǒng)中不存在專(zhuān)門(mén)的數(shù)據(jù)訪問(wèn)層,由業(yè)務(wù)程序直接讀取數(shù)據(jù),與后臺(tái)數(shù)據(jù)源進(jìn)行交互。DataAccessObject(DAO)DAO模式是標(biāo)準(zhǔn)J2EE設(shè)計(jì)模式之一,該模式將底層數(shù)據(jù)訪問(wèn)操作與高層業(yè)務(wù)邏輯分離開(kāi)。具體的DAO類(lèi)包含訪問(wèn)特定數(shù)據(jù)源數(shù)據(jù)的邏輯。DataTransferObject(DT0)DTO是經(jīng)典EJB設(shè)計(jì)模式之一。DTO本身是一組對(duì)象或是數(shù)據(jù)的容器,它需要跨越不同進(jìn)程或者網(wǎng)絡(luò)的邊界來(lái)傳輸數(shù)據(jù)。這類(lèi)對(duì)象通常本身不包括具體的業(yè)務(wù)邏輯,對(duì)象內(nèi)部?jī)H進(jìn)行一些諸如內(nèi)部一致性檢查和基本驗(yàn)證之類(lèi)的方法。離線數(shù)據(jù)模型是以數(shù)據(jù)為中心,數(shù)據(jù)從數(shù)據(jù)源獲取后,將按照某種預(yù)定義的結(jié)構(gòu)(如IBMSDO的Data圖表結(jié)構(gòu)或ADO.NET中的關(guān)系結(jié)構(gòu))存放在系統(tǒng)中,成為應(yīng)用的中心。其特點(diǎn)是:離線,數(shù)據(jù)操作獨(dú)立于后臺(tái)數(shù)據(jù)源;與XML集成,數(shù)據(jù)可以方便地與XML格式文檔相互轉(zhuǎn)換。對(duì)象/關(guān)系映射(Object/RelationMapping)ORM是一種工具、中間件或平臺(tái),它能夠幫助將應(yīng)用程序中的數(shù)據(jù)轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫(kù)中的記錄;或者是將關(guān)系數(shù)據(jù)庫(kù)中的記錄轉(zhuǎn)換成應(yīng)用程序中代碼便于操作的對(duì)象,使得程序員在開(kāi)發(fā)過(guò)程中僅僅面對(duì)一個(gè)對(duì)象的概念,降低了對(duì)程序員數(shù)據(jù)庫(kù)知識(shí)的要求,簡(jiǎn)化了數(shù)據(jù)庫(kù)相關(guān)的開(kāi)發(fā)工作。數(shù)據(jù)訪問(wèn)層的技術(shù)主要在于數(shù)據(jù)映射的問(wèn)題如Hibemate或iBATIS的應(yīng)用。Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系,是一個(gè)全自動(dòng)的ORM框架,hibernate可以自動(dòng)生成SQL語(yǔ)句,自動(dòng)執(zhí)行,使得Ja眩程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。iBATIS—詞來(lái)源于"internet"和"abatis"的組合,是一個(gè)由ClintonBegin在2002年發(fā)起的開(kāi)放源代碼項(xiàng)目。于2010年6月16號(hào)被谷歌托管,改名為MyBatiso是一個(gè)基于SQL映射支持Java和.NET的持久層框架Hibernate的調(diào)優(yōu)方案:制定合理的圾存策略;采用合理的Session管理機(jī)制;使用批量抓取,設(shè)定合理的批處理參數(shù)(batch_size);進(jìn)行合理的0/R映射設(shè)計(jì)。盡量使用延遲加載特性;Mybatis調(diào)優(yōu)方案:MyBatis在Session方面和Hibernate的Session生命周期是一致的,同樣需要合理的Session管理機(jī)制。MyBatis同樣具有二級(jí)緩存機(jī)制。MyBatis可以進(jìn)行詳細(xì)的SQL優(yōu)化設(shè)計(jì)。四、與單塊架構(gòu)相比較,微服務(wù)架構(gòu)有哪些特點(diǎn)?請(qǐng)列舉至少4個(gè)特點(diǎn)并進(jìn)行說(shuō)明。微服務(wù)架構(gòu)具有如下的特點(diǎn)通過(guò)服務(wù)實(shí)現(xiàn)組件化單個(gè)微服務(wù)實(shí)現(xiàn)簡(jiǎn)單,能夠聚焦一個(gè)指定的業(yè)務(wù)功能或業(yè)務(wù)需求。功能明確,易于理解微服務(wù)能夠被一個(gè)開(kāi)發(fā)人員理解,修改和維護(hù),這樣小團(tuán)隊(duì)能夠更關(guān)注自己的工作成果,并降低溝通成本。圍繞業(yè)務(wù)功能構(gòu)建開(kāi)發(fā)團(tuán)隊(duì)采用微服務(wù)架構(gòu),可以圍繞業(yè)務(wù)功能構(gòu)建開(kāi)發(fā)團(tuán)隊(duì),這樣更符合企業(yè)的分工與組織結(jié)構(gòu),便于管理。支持多種開(kāi)發(fā)語(yǔ)言與多種平臺(tái)不同的微服務(wù)能使用不同的語(yǔ)言開(kāi)發(fā),運(yùn)行在不同的操作系統(tǒng)平臺(tái)上,通過(guò)標(biāo)準(zhǔn)的協(xié)議和數(shù)據(jù)格式進(jìn)行交互與協(xié)作。離散化數(shù)據(jù)管理在微服務(wù)架構(gòu)中,無(wú)法創(chuàng)建或維護(hù)統(tǒng)一的數(shù)據(jù)模型或結(jié)構(gòu),全局?jǐn)?shù)據(jù)模型將在不同的系統(tǒng)之間有所區(qū)別,需要進(jìn)行數(shù)據(jù)模型的離散化管理。基礎(chǔ)設(shè)施自動(dòng)化微服務(wù)強(qiáng)調(diào)以靈活的方式集成自動(dòng)部署,通過(guò)持續(xù)集成工具實(shí)現(xiàn)基礎(chǔ)設(shè)施自動(dòng)化。微服務(wù)的特點(diǎn)追加說(shuō)明微服務(wù)的基本思想在于考慮圍繞著業(yè)務(wù)領(lǐng)域組件來(lái)創(chuàng)建應(yīng)用,這些就應(yīng)用可獨(dú)立地進(jìn)行開(kāi)發(fā)、管理和加速。在分散的組件中使用微服務(wù)云架構(gòu)和平臺(tái)使部署、管理和服務(wù)功能交付變得更加簡(jiǎn)單。微服務(wù)是利用組織的服務(wù)投資組合,然后基于業(yè)務(wù)領(lǐng)域功能分解它們,在看到服務(wù)投資組合之前,它還是一個(gè)業(yè)務(wù)領(lǐng)域。微服務(wù)這一概念出現(xiàn)于2012年,是因軟件作者M(jìn)artinFowler而流行,它承認(rèn)這并沒(méi)有精確地定義出這一架構(gòu)形式,雖然圍繞業(yè)務(wù)能力、自動(dòng)化部署、終端智能以及語(yǔ)言和數(shù)據(jù)的分散控制有一些常見(jiàn)的特性。開(kāi)源工作流平臺(tái)“Imixs-Workflow”發(fā)布了一款新的微服務(wù)架構(gòu),作為工作流來(lái)管理解決方案。Imixs的微服務(wù)(Imixs-Microservice)提供了一個(gè)工作流封裝成微服務(wù)架構(gòu)。這一服務(wù)可以獨(dú)立于其背后的技術(shù),綁定到任何業(yè)務(wù)應(yīng)用中去。這允許業(yè)務(wù)應(yīng)用改變業(yè)務(wù)邏輯時(shí),不用更改任何代碼。這業(yè)務(wù)目標(biāo)可以通過(guò)工作流模型控制。Imixs的微服務(wù)是基于Imixs的工作流引擎(Imixs-WorkflowEngine)的復(fù)雜功能構(gòu)建的,它可以以多種不同的方法來(lái)控制業(yè)務(wù)數(shù)據(jù)。Imixs的微服務(wù)可以發(fā)送電子郵件推送消息、日志業(yè)務(wù)交換,還可以確保所有類(lèi)型業(yè)務(wù)數(shù)據(jù)的安全。Imixs的工作流模型可以給業(yè)務(wù)處理模型(Imixs-WorkflowModeller)中的每種狀態(tài)單獨(dú)的設(shè)計(jì)一個(gè)ACL。這許可了高度復(fù)雜的業(yè)務(wù)應(yīng)用程序,并在每個(gè)流程實(shí)例周?chē)v起了安全層。2015年一、 論述并分析應(yīng)用服務(wù)器在軟件設(shè)計(jì)、開(kāi)發(fā)、部署、運(yùn)行和管理階段,應(yīng)該提供哪些核心功能?應(yīng)用服務(wù)器是應(yīng)用設(shè)計(jì)、開(kāi)發(fā)、部署、運(yùn)行、管理、維護(hù)的平臺(tái)。應(yīng)用服務(wù)器既是應(yīng)用開(kāi)發(fā)的平臺(tái),包括表示層、應(yīng)用層和數(shù)據(jù)層的設(shè)計(jì)模式和編程環(huán)境;同時(shí)又是多層結(jié)構(gòu)應(yīng)用的部署、運(yùn)行平臺(tái),對(duì)多層結(jié)構(gòu)應(yīng)用進(jìn)行配置、啟動(dòng)、監(jiān)控、調(diào)整,并在開(kāi)發(fā)的不同階段提供不同的功能設(shè)計(jì)階段應(yīng)用服務(wù)器完成底層通信、服務(wù),并屏蔽掉復(fù)雜的底層技術(shù)細(xì)節(jié),向用戶提供結(jié)構(gòu)簡(jiǎn)單、功能完善的編程接口,讓用戶可以專(zhuān)心于商務(wù)邏輯的設(shè)計(jì)。.開(kāi)發(fā)階段應(yīng)用服務(wù)器提供了完全開(kāi)放的編程語(yǔ)言和應(yīng)用接口,同時(shí)也提供快速開(kāi)發(fā)的工具和手段,幫助用戶提高開(kāi)發(fā)效率。.部署階段應(yīng)用服務(wù)器提供了對(duì)多種網(wǎng)絡(luò)環(huán)境的支持,幫助用戶在復(fù)雜的網(wǎng)絡(luò)環(huán)境中配置系統(tǒng)參數(shù),發(fā)揮系統(tǒng)最大性能。運(yùn)行階段應(yīng)用服務(wù)器基于開(kāi)發(fā)技術(shù)標(biāo)準(zhǔn),提供了系統(tǒng)的運(yùn)行環(huán)境,提供了系統(tǒng)的名字解析、路由選擇、負(fù)載平衡、事務(wù)控制等服務(wù),并提供系統(tǒng)容錯(cuò)、修正、遷移、升級(jí)擴(kuò)展等功能。管理階段應(yīng)用服務(wù)器提供圖形化界面來(lái)管理整個(gè)系統(tǒng)的資源,而且系統(tǒng)在運(yùn)行期間也能動(dòng)態(tài)監(jiān)控和管理。二、 分析軟件系統(tǒng)開(kāi)發(fā)中常用的軟件系統(tǒng)架構(gòu)風(fēng)格有哪些?詳細(xì)闡述每種風(fēng)格的具體含義。(注意本

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論