資源描述:
《軟件工程作業(yè)及參考答案》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、軟件工程作業(yè)1?什么是軟件工程?產(chǎn)生軟件工程的原因有哪些?答:軟件的定義:軟件工程是借助工程化的方法進(jìn)行軟件開發(fā)(先對軟件進(jìn)行設(shè)計再開發(fā))。軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。產(chǎn)生軟件工程的原因:(1)當(dāng)時無法在預(yù)算內(nèi)開發(fā)出高質(zhì)量軟件;(2)軟件開發(fā)者無法制定具體目標(biāo),無法實(shí)現(xiàn)預(yù)測所需的資源,無法實(shí)現(xiàn)客戶的期望;(3)軟件工程的重點(diǎn)既在軟件,也在工程;(4)軟件開發(fā)具有復(fù)雜性和多變性的特征;(5)軟件產(chǎn)品必須隨著終端用戶需求和目標(biāo)環(huán)境的變化而變化。2.常見的軟件體系結(jié)構(gòu)有哪些?分析它們的優(yōu)缺點(diǎn)?答:2.1管道/過濾器風(fēng)格
2、在管道/過濾器風(fēng)格中,每個構(gòu)件都有一組輸人和輸出,構(gòu)件讀輸人的數(shù)據(jù)流,經(jīng)過內(nèi)部處理,然后產(chǎn)生輸出數(shù)據(jù)流。這里的構(gòu)件被稱為過濾器。連接件被稱為管道。此風(fēng)格特別重要的過濾器必須是獨(dú)立的實(shí)體,它不能與其它的過濾器共享數(shù)據(jù),而且一個過濾器不知道它上游和下游的標(biāo)識。這種風(fēng)格的優(yōu)點(diǎn):(1)使得軟構(gòu)件具有良好的隱蔽性和高內(nèi)聚、低藕合的特點(diǎn);(2)有助于設(shè)計者將整個系統(tǒng)的輸人/輸出行為看成是多個過濾器的行為的簡單合成;(3)支持軟件重用;(4)易于系統(tǒng)維護(hù)和增強(qiáng)系統(tǒng)性能;(5)允許對一些如吞吐量、死鎖等屬性的分析;(6)支持并行執(zhí)行。這種風(fēng)格的缺點(diǎn):(1)通常導(dǎo)致進(jìn)程成為批處
3、理的結(jié)構(gòu);(2)不適合處理交互的應(yīng)用;(3)數(shù)據(jù)傳輸上沒有通用的標(biāo)準(zhǔn),每個過濾器都增加了解析和合成數(shù)據(jù)的工作,導(dǎo)致了系統(tǒng)性能下降,增加了編寫過濾器的復(fù)雜性,使數(shù)據(jù)傳輸量增加。這種風(fēng)格經(jīng)常應(yīng)用在UnixShell中編寫的應(yīng)用系統(tǒng)中。2.2倉庫風(fēng)格在倉庫風(fēng)格中,有兩種不同的構(gòu)件:中央數(shù)據(jù)結(jié)構(gòu)說明當(dāng)前狀態(tài),獨(dú)立構(gòu)件在中央數(shù)據(jù)存貯上執(zhí)行,倉庫與外構(gòu)件間的相互作用在系統(tǒng)屮會有大的變化。按控制策略的選取分類,可以產(chǎn)生兩個主要的子類。若輸人流中某類時間觸發(fā)進(jìn)程執(zhí)行的選擇,則倉庫是傳統(tǒng)型數(shù)據(jù)庫;另一方面,若中央數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)進(jìn)程執(zhí)行的選擇,則倉庫是黑板系統(tǒng)。這種風(fēng)格的
4、優(yōu)點(diǎn):(1)善于管理數(shù)據(jù)信息,適合大量數(shù)據(jù)的應(yīng)用場合;(2)適用于復(fù)雜的邏輯系統(tǒng);(3)黑板系統(tǒng)模型能更容易地處理任務(wù)間的協(xié)作,系統(tǒng)更加靈活。數(shù)據(jù)庫系統(tǒng)一直得到廣泛應(yīng)用,如企業(yè)中使用的管理信息系統(tǒng)、ERP軟件等;黑板系統(tǒng)主要應(yīng)用在需要復(fù)雜翻譯解釋的系統(tǒng)中,如信號處理領(lǐng)域中的語音和模式識別。2.3層次系統(tǒng)風(fēng)格層次系統(tǒng)組織成一個層次結(jié)構(gòu),每一層為上層服務(wù),并作為下層客戶。在一些層次系統(tǒng)中,內(nèi)部的層只對相鄰的層可見。這種風(fēng)格支持基于可增加抽象層的設(shè)計。允許將一個復(fù)雜問題分解成一個增量步驟序列的實(shí)現(xiàn)。由于每一層最多只影響兩層,同吋只要給相鄰層提供相同的接口,允許每層用
5、不同的方法實(shí)現(xiàn),同樣為軟件重用提供了強(qiáng)大的支持。這種風(fēng)格的優(yōu)點(diǎn):(1)支持基于抽象程度遞增的系統(tǒng)設(shè)計,使設(shè)計者可以把一個復(fù)雜系統(tǒng)按遞增的步驟進(jìn)行分解;(2)支持功能增強(qiáng),因?yàn)槊恳粚又炼嗪拖噜彽纳舷聦咏换ィ虼斯δ艿母淖冏疃嘤绊懴噜彽纳舷聦?;?)支持重用??梢远x一組標(biāo)準(zhǔn)的接口,允許各種不同的實(shí)現(xiàn)方法。這種風(fēng)格的缺點(diǎn):(1)并不是每個系統(tǒng)都可以很容易地劃分為分層的模式;(2)很難找到一個合適的、正確的層次抽象方法。這種風(fēng)格的典型應(yīng)用有分層的通訊協(xié)議,如TCP/IP協(xié)議等。2.4客戶服務(wù)器(C/S)風(fēng)格客戶/服務(wù)器風(fēng)格,是基于資源不對等,且為實(shí)現(xiàn)共享而提出來的,
6、是20世紀(jì)90年代成熟起來的技術(shù),客戶機(jī)1服務(wù)器結(jié)構(gòu)將應(yīng)用一分為二,服務(wù)器(后臺)負(fù)責(zé)數(shù)據(jù)管理,客戶機(jī)(前臺)完成與用戶的交互任務(wù)。C/S體系結(jié)構(gòu)具有強(qiáng)大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡單,易于人們理解和接受?,F(xiàn)在使用較廣泛的是三層C/S結(jié)構(gòu)。三層C/S結(jié)構(gòu)具有以下優(yōu)點(diǎn):(1)允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對獨(dú)立性,從而使整個系統(tǒng)的邏輯結(jié)構(gòu)更為清晰,能提高系統(tǒng)和軟件的可維護(hù)性和可擴(kuò)展性。(2)允許更靈活有效地選用相應(yīng)的平臺和硬件系統(tǒng)。(3)三層C/S結(jié)構(gòu)中,應(yīng)用的各層可以并行開發(fā),各層也可以選擇各自最適合的開發(fā)語言。(4)為嚴(yán)格的安全管理
7、奠定了堅實(shí)的基礎(chǔ)。這種風(fēng)格可以應(yīng)用在遠(yuǎn)程文件系統(tǒng)中。2.5數(shù)據(jù)抽象和而向?qū)ο蠼M織風(fēng)格這種風(fēng)格的特點(diǎn):仃)數(shù)據(jù)抽象是指對每一類對象進(jìn)行概括,抽出這類對象的公共性質(zhì)并用計算機(jī)語言加以描述的過程,把具有相同屬性和相同操作的一些對象抽象為一個類,這些對象都是這個類的實(shí)例。(2)封裝是面向?qū)ο箫L(fēng)格的又一個特點(diǎn),它是一?種信息隱減技術(shù),通過封裝,可以將一部分屬性和操作隱藏起來,不讓使用者訪問,另一部分作為類的外部接口,使用者可以訪問。(3)繼承是新建的類從已有的類那里得到已有的特征,繼承有效地實(shí)現(xiàn)了軟件的重用,增強(qiáng)了系統(tǒng)的可擴(kuò)充性。這種風(fēng)格的缺點(diǎn):(1)為了使一個對象和另
8、一個對象通過過程調(diào)用等進(jìn)行交互,必須知