高級(jí)系統(tǒng)架構(gòu)師系統(tǒng)架構(gòu)設(shè)計(jì)論文問(wèn)答題每日一練(2019.01.23)

來(lái)源:考試資料網(wǎng)
1.問(wèn)答題

論文:論軟件體系結(jié)構(gòu)風(fēng)格及其應(yīng)用
軟件體系結(jié)構(gòu)設(shè)計(jì)的一個(gè)核心問(wèn)題是如何有效地使用重復(fù)的體系結(jié)構(gòu)模式,即達(dá)到軟件體系結(jié)構(gòu)級(jí)的軟件重用。軟件體系結(jié)構(gòu)風(fēng)格(Software Architecture Style)是描述軟件系統(tǒng)組織方式的常用模式,在實(shí)踐中已經(jīng)被多次應(yīng)用。按照Shaw和Garlan的說(shuō)法,"一種體系結(jié)構(gòu)風(fēng)格定義了構(gòu)件類型和連接件類型的詞匯表,以及它們?nèi)绾谓M合的約束條件"。體系結(jié)構(gòu)風(fēng)格通常分為數(shù)據(jù)流(Data Flow)風(fēng)格、調(diào)用/返回(Call/Return)風(fēng)格、獨(dú)立構(gòu)件(Independent Components)風(fēng)格、虛擬機(jī)(Virtual Machines)風(fēng)格和倉(cāng)庫(kù)(Repositories)風(fēng)格五大類。在實(shí)際應(yīng)用中,隨著軟件系統(tǒng)規(guī)模的擴(kuò)大和復(fù)雜,一個(gè)系統(tǒng)往往會(huì)同時(shí)使用多類體系結(jié)構(gòu)風(fēng)格,這些風(fēng)格可以交叉組合、彼此重疊。
請(qǐng)圍繞"軟件體系結(jié)構(gòu)風(fēng)格及其應(yīng)用"論題,依次從以下3個(gè)方面進(jìn)行論述:
①概要敘述你參與管理和開發(fā)的軟件項(xiàng)目及你在其中所擔(dān)任的主要工作。
②請(qǐng)說(shuō)明以上軟件體系結(jié)構(gòu)風(fēng)格分類中每一類有哪些經(jīng)典的軟件體系結(jié)構(gòu)設(shè)計(jì)風(fēng)格,并就其中至少三類論述其具體的軟件體系結(jié)構(gòu)風(fēng)格的構(gòu)件、連接件類型和組合約束要求等結(jié)構(gòu)特征及其應(yīng)用特點(diǎn)。
③具體闡述你參與管理和開發(fā)的項(xiàng)目中在體系結(jié)構(gòu)設(shè)計(jì)時(shí)選擇使用軟件體系結(jié)構(gòu)風(fēng)格的情況,包括選擇的依據(jù)、多個(gè)風(fēng)格組合使用的情況等,以及最終實(shí)際效果。

2.問(wèn)答題

論基于場(chǎng)景的軟件體系結(jié)構(gòu)評(píng)估方法
大型復(fù)雜軟件系統(tǒng)開發(fā)所關(guān)注的問(wèn)題之一是質(zhì)量,在軟件系統(tǒng)的早期設(shè)計(jì)階段,選擇合適的體系結(jié)構(gòu)對(duì)系統(tǒng)許多關(guān)鍵質(zhì)量屬性(如可用性、可修改性、性能、安全性、易用性等)起著決定性的影響。不恰當(dāng)?shù)能浖w系結(jié)構(gòu)將給項(xiàng)目開發(fā)帶來(lái)災(zāi)難。因此,盡早分析和評(píng)估一個(gè)系統(tǒng)的體系結(jié)構(gòu)非常重要。軟件體系結(jié)構(gòu)分析和評(píng)估的目的是為了識(shí)別體系結(jié)構(gòu)中潛在的風(fēng)險(xiǎn),驗(yàn)證系統(tǒng)的質(zhì)量需求在設(shè)計(jì)中是否得到體現(xiàn),預(yù)測(cè)系統(tǒng)的質(zhì)量并幫助開發(fā)人員進(jìn)行設(shè)計(jì)決策。
軟件體系結(jié)構(gòu)的評(píng)估通常是指評(píng)估參與者在評(píng)估過(guò)程中利用特定評(píng)估方法對(duì)系統(tǒng)質(zhì)量屬性進(jìn)行分析與評(píng)估?;谡{(diào)查問(wèn)卷或檢查表的評(píng)估和基于場(chǎng)景(Scenarios)的評(píng)估是目前主要的兩類評(píng)估方式。利用場(chǎng)景評(píng)估技術(shù)進(jìn)行軟件體系結(jié)構(gòu)評(píng)估的主流方法包括SAAM(Scenario-based Architecture Analysis Method)、ATAM(Architecture Tradeoff Analysis Method)和CBAM(Cost Benefit Analysis Method)。SAAM方法最初用于比較不同的體系結(jié)構(gòu),后來(lái)用于指導(dǎo)對(duì)體系結(jié)構(gòu)的檢查,使其主要關(guān)注潛在的問(wèn)題,如需求沖突,或僅從某一參與者觀點(diǎn)出發(fā)的不全面的系統(tǒng)設(shè)計(jì)。ATAM方法在揭示出結(jié)構(gòu)滿足特定質(zhì)量目標(biāo)的同時(shí),也能反映出質(zhì)量目標(biāo)之間的聯(lián)系,從而權(quán)衡多個(gè)質(zhì)量目標(biāo)。CBAM方法可以看做是ATAM方法的補(bǔ)充,在其評(píng)估結(jié)果上對(duì)軟件體系結(jié)構(gòu)的經(jīng)濟(jì)性進(jìn)行評(píng)估。
請(qǐng)圍繞"基于場(chǎng)景的軟件體系結(jié)構(gòu)評(píng)估方法"論題,依次從以下3個(gè)方面進(jìn)行論述:
①概要敘述你參與管理和開發(fā)的軟件項(xiàng)目以及你在其中所擔(dān)任的主要工作,包括角色、工作內(nèi)容等。
②請(qǐng)從評(píng)估目的、評(píng)估參與者、評(píng)估活動(dòng)或過(guò)程、評(píng)估結(jié)果等幾個(gè)方面對(duì)SAAM或ATAM評(píng)估方法進(jìn)行分析。
③結(jié)合你參與的實(shí)際工作和項(xiàng)目的實(shí)際情況,具體闡述你在進(jìn)行體系結(jié)構(gòu)設(shè)計(jì)和評(píng)估時(shí),采用了什么評(píng)估方法,如何具體實(shí)施,最終實(shí)際效果如何。

3.問(wèn)答題

論大規(guī)模分布式系統(tǒng)緩存設(shè)計(jì)策略
大規(guī)模分布式系統(tǒng)通常需要利用緩存技術(shù)減輕服務(wù)器負(fù)載、降低網(wǎng)絡(luò)擁塞、增強(qiáng)系統(tǒng)可擴(kuò)展性。緩存技術(shù)的基本思想是將客戶最近經(jīng)常訪問(wèn)的內(nèi)容在緩存服務(wù)器中存放一個(gè)副本,當(dāng)該內(nèi)容下次被訪問(wèn)時(shí),不必建立新的數(shù)據(jù)請(qǐng)求,而是直接由緩存提供。良好的緩存設(shè)計(jì),是一個(gè)大規(guī)模分布式系統(tǒng)能夠正常、高效運(yùn)行的必要前提。在進(jìn)行大規(guī)模分布式系統(tǒng)開發(fā)時(shí),必須從一開始就針對(duì)應(yīng)用需求和場(chǎng)景對(duì)系統(tǒng)的緩存機(jī)制進(jìn)行全面考慮,設(shè)計(jì)一個(gè)可伸縮的系統(tǒng)緩存架構(gòu)。
請(qǐng)圍繞"大規(guī)模分布式系統(tǒng)緩存設(shè)計(jì)策略"論題,依次從以下3個(gè)方面進(jìn)行論述:
①概要敘述你參與實(shí)施的大規(guī)模分布式系統(tǒng)開發(fā)項(xiàng)目及你所擔(dān)任的主要工作。
②從不同的用途和應(yīng)用場(chǎng)景考慮,請(qǐng)?jiān)敿?xì)闡述至少兩種常見的緩存工作模式,并說(shuō)明每種工作模式的適應(yīng)場(chǎng)景。
③闡述你在設(shè)計(jì)大規(guī)模分布式系統(tǒng)的緩存機(jī)制時(shí)遇到了哪些問(wèn)題,如何解決。

4.問(wèn)答題

論軟件的靜態(tài)演化和動(dòng)態(tài)演化及其應(yīng)用
軟件演化(Software Evolution)是指軟件在其生命周期內(nèi)的更新行為和過(guò)程。演化是一系列貫穿軟件生命周期始終的活動(dòng),系統(tǒng)需求改變、功能實(shí)現(xiàn)增強(qiáng)、新功能加入、軟件架構(gòu)改變、軟件缺陷修復(fù)、運(yùn)行環(huán)境改變均要求軟件系統(tǒng)能夠快速適應(yīng)變化,具有較強(qiáng)的演化能力。軟件靜態(tài)演化(Static Evolution)和動(dòng)態(tài)演化(Dynamic Evolution)是目前軟件演化的兩種重要類型。
請(qǐng)圍繞"軟件的靜態(tài)演化和動(dòng)態(tài)演化及其應(yīng)用"論題,依次從以下3個(gè)方面進(jìn)行論述:
①概要敘述你參與管理和開發(fā)的軟件項(xiàng)目及你在其中所擔(dān)任的主要工作
②請(qǐng)分別對(duì)軟件靜態(tài)演化和動(dòng)態(tài)演化的特點(diǎn)進(jìn)行論述,說(shuō)明兩種軟件演化類型各自的優(yōu)缺點(diǎn)及其應(yīng)用場(chǎng)合,并舉例說(shuō)明各自的常見演化技術(shù)手段
③具體闡述你參與管理和開發(fā)的項(xiàng)目中所進(jìn)行的軟件演化活動(dòng)的特點(diǎn)、演化的類型,以及所采取的對(duì)應(yīng)演化技術(shù)手段,說(shuō)明具體實(shí)施過(guò)程及實(shí)際應(yīng)用的效果。