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