1. 程式人生 > >第1章 軟體體系結構概述

第1章 軟體體系結構概述

第1章               軟體體系結構概述

1.  根據自己的經驗,談談對軟體危機的看法。

答:軟體危機主要表現在:

•   軟體成本日益增長

•   開發進度難以控制

•   軟體質量差

•   軟體維護困難

軟體危機的原因

•   使用者需求不明確

•   缺乏正確的理論指導

•   軟體規模越來越大

•   軟體複雜度越來越高

如何克服軟體危機

•   人們面臨的不光是技術問題,更重要的是管理問題。管理不善必然導致失敗

•   要提高軟體開發效率,提高軟體產品質量,必須採用工程化的開發方法與工業化的生產技術。

•   在技術上,應該採用基於重用的軟體生產技術;在管理上,應該採用多維的工程管理模式。

2.  什麼是軟體重用,軟體重用的層次可以分為哪幾個級別?

答:軟體重用是指在兩次或多次不同的軟體開發過程中重複使用相同或相近軟體元素的過程。
     
級別有:程式碼的複用、設計結果的複用、分析結果的複用、測試資訊的複用等。

3. 什麼是可重用構件?相對於普通的軟體產品,對可重用構件有何特殊要求?

答:可重用構件是指可以在多個軟體系統的開發過程中被重複使用的軟體產品。
可重用構件的特殊要求:

(1) 可重用構件應該具有功能上的獨立性與完整性;

(2) 可重用構件應該具有較高的通用性;

(3) 可重用構件應該具有較高的靈活;

(4) 可重用構件應該具有嚴格的質量保證;

(5) 可重用構件應該具有較高的標準化程。

4.  基於構件的軟體開發的優勢是什麼?基於構件的軟體開發面臨哪些挑戰和困難?

答:優勢是:

(1)提高了軟體的質量。可複用的構件相對於在單一應用中使用的模組來說,一般都更為成熟並具有較高的質量保證。

(2)對於提高軟體開發的效率也有著顯著的作用。軟體複用已經滲透到了軟體開發的各個階段,在開發的各個階段都有可以被重複使用的軟體產品。

(3)成本大為節省。它避免了不必要的重複勞動和人力財力的浪費。同時也必須意識到基於構件的軟體開發也是有一定成本和代價的。

挑戰和困難:

(1)在同一系統採用多個開發商提供的構件,它們之間的相容性可能是開發過程中所要面對的一個嚴峻的問題;

(2)採用隨處可以購買到的構件可能會使開發出來的軟體產品喪失技術上的獨創性和市場上的競爭力;

(3)第三方的構件開發商可能歇業,這會使購買的構件失去維護服務。這些都是在購買第三方構件進行軟體開發時無法迴避的問題,因此需要對這些風險進行充分的估計。

5.  簡述3種應用最為廣泛的構件技術規範COM、CORBA和EJB的各自特點。

答:CORBA的特點:

(1)  實現客戶與服務物件的完全分開,客戶不需要了解服務物件的實現過程以及具體位置。

(2)  應用程式間的統一介面。

(3)  採用面向物件的軟體實現方法開發應用系統,實現物件內部細節的完整封裝,保留物件方法的對外介面定義。

(4)  分層的設計原則和實現方式。

COM的特點:

(1)  語言無關性 。

(2)  可重用性 。

EJB的特點:

(1)  可移植性。

(2)  平臺獨立性。

(3)  簡化了分散式物件的開發、部署和訪問 。

6.    就專案管理方面,軟體重用專案與非重用專案有哪些不同之處。

答:使用軟體重用技術可減少重複工作,提高軟體生產率, 縮短開發週期。同時,由於軟構建大多經過嚴格的質量認證,因此有助於改善軟體質量, 大量使用構建, 軟體的靈活性和標準化程度可得到提高。

7.  實際參與/組織一個軟體重用專案的開發,然後總結你是如何組織該專案的開發的。

答:

8.  軟體體系結構的研究範疇有哪些?舉例加以說明?

答:

9.  根據軟體體系結構的定義,你認為軟體體系結構的模型應該由哪些部分組成?

 答:構件(component)可以是一組程式碼,如程式的模組;也可以是一個獨立的程式(如資料庫的SQL伺服器);

    連線件(connector)是關係的抽象,用以表示構件之間的相互作用。如過程呼叫、管道、遠端過程呼叫等;

    限制(constrain):用於對構件和連線件的語義說明。

10.   在軟體體系結構的研究和應用中,你認為還有哪些不足之處?

  答:(1)缺乏同意的軟體體系結構的概念,導致體系結構的研究範疇模糊。

    (2)ADL繁多,缺乏同意的ADL的支援。

    (3)軟體體系結構研究缺乏統一的理論模型支援。

    (4)在體系結構描述方便,儘管出現了多種標準規範或建議標準,但仍很難操作。

    (5)有關軟體體系結構性質的研究尚不充分,不能明確給出一個良體系結構的屬性或判定標準,沒有給出良體系結構的設計指導原則,因而對於軟體開發實踐缺乏有力的促進作用。

    (6)缺乏有效的支援環境軟體體系結構理論研究與環境支援不同步,缺乏有效的體系結構分析、設計、方針和驗證工具支援,導致體系結構應用上的困難。

    (7)缺乏有效的體系結構複用方案。

    (8)體系結構發現方法研究相對欠缺

相關推薦

1 軟體體系結構概述

第1章               軟體體系結構概述 1.  根據自己的經驗,談談對軟體危機的看法。 答:軟體危機主要表現在: •   軟體成本日益增長 •   開發進度難以控制 •   軟體質量差 •   軟體維護困難 軟體危機的原因: •   使用者需求不明確 •   

《MySQL技術內幕:InnoDB儲存引擎》——1 MySQL體系結構和儲存引擎

啟動 ./mysqld_safe & 檢視程序 ps -ef|grep mysqld 資料庫例項啟動時,讀取配置檔案的順序,後面的檔案配置會覆蓋前面的檔案配置 mysql --help | grep my.cnf mysql> show variables li

《深入Java虛擬機器 第二版》之1 Java體系結構介紹

1、Java技術的核心就是“Java虛擬機器”。 2、Java體系結構四個獨立的技術: ·Java程式設計語言; ·Java class檔案格式; ·Java應用程式設計介面(API); ·Java虛擬機器; 3、編寫並執行一個Java程式,對四種技術的體驗:

1 數據結構緒論

popu dcl pretty 數組 pri ext 程序設計 pre 邏輯結構 程序設計 = 數據結構 + 算法 數據結構的一些相關概念: 數據結構的定義:數據結構是相互之間存在一種或多種特定關系的數據元素的集合。 數據結構的分類:

JVM體系結構與工作方式

硬件 java內存管理 彈出 操作符 clas 基本 記錄器 pan 操作 JVM能跨計算機體系結構來執行Java字節碼,主要是由於JVM屏蔽了與各個計算機平臺的軟件和硬件之間的差異。 7.1 JVM體系結構   7.1.1 何謂JVM     模擬一個計算機來達到一個計算

1 面向對象概述

java1.1 面向對象思想1.1.1 面向過程思想與面向對象思想A:什麽是面向過程面向過程,其實就是面向著具體的每一個步驟和過程,把每一個步驟和過程完成,然後由這些功能方法相互調用,完成需求。例如:吃煎餅果子利用面向過程的思想:1.學習攤煎餅的技術2.買材料雞蛋,油,蔥等等3.開始攤4.吃5.收拾B:什麽是

《操作系統》1:操作系統概述

搶占式 通道 集中 工作 接口 穩定性 就是 界面 進行 第1章:操作系統概述 1.1 操作系統概述 操作系統的基本特征:並發、共享、虛擬、異步。最基本特征:並發和共享。操作系統可粗分為:硬件、操作系統、應用程序、用戶。操作系統是指控制和管理整個計算機系統的硬件和軟件資源

深入理解計算機系統----處理器體系結構

https://www.jianshu.com/p/15210eb3870d?open_source=weibo_search 原文地址 目錄 學習事物是怎樣工作的有其內在價值:處理器是如何工作的對於我們普通人來說一直是個祕密,我們將從零開始構建一個流水線處理器,為了實現這一處理器的軟

《瘋狂Java講義(4版)》-----1【Java語言概述與開發環境】

編譯型語言和解釋型語言 編譯型語言:程式在執行之前需要一個專門的編譯過程,把程式編譯成 為機器語言的檔案,執行時不需要重新翻譯,直接使用編譯的結果就行了。程式執行效率高,依賴編譯器(翻譯成的是特定平臺的機器語言,要是跨平臺還是需要拷貝原始碼再重新編譯),跨

1 文件結構

編程 nbsp 就會 常常 1年 歷史 mil 關心 分開 第1章 文件結構 每個C++/C程序通常分為兩個文件。一個文件用於保存程序的聲明(declaration),稱為頭文件。另一個文件用於保存程序的實現(implementation),稱為定義(definition)

《計算機系統要素》學習筆記:計算機體系結構

1.學習要點 (1)系統 系統=計算裝置+程式 前三章只是靜態的構建計算裝置,第四章描述了程式的最底層表達,即機器語言。最後第五章是對前四章的總結,構建了一個完整的動態的計算機系統工作的模型。 (2)計算機工作的要點就在於:程式儲存和程式控制。而程式儲存

軟體體系結構》 第一 軟體體系結構概論

    開始複習《軟體體系結構》,雖然為了考試要背誦的內容比較多,但是從軟體工程到軟體測試,我發現這樣的課程,總可以增強自己的理解能力,更重要的是對於“軟體工程”的認識。天氣炎熱,能靜下心來複習也是一件美好的事情。小毛蟲,加油嘍。一、軟體危機 software crisis 

【學習總結】《大話數據結構》- 1-數據結構緒論

數據 .com 1.2 log end href .cn 總結 1.4 【學習總結】《大話數據結構》- 總 目錄 1.1 開場白 1.2 你數據結構怎麽學的? 1.3 數據結構起源 1.4 基本概念和術語 1.5 邏輯結構和物理結構 1.6 抽象數據類型 1.7 總結回顧

易學筆記-Go語言-4:基本結構和基本資料型別/4.6 字串概述/4.6.1 字串表示

易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/

易學筆記-系統分析師考試-11 軟體需求工程/11.1 軟體需求概述

軟體需求工程 概念:包括建立和維護軟體需求文件所需要的一切活動的過程,分為 需求開發 內容 需求獲取 需求分析 編寫需求規格說明書 需求驗證

系統分析師上午題- 1 計算機組成與體系結構

1.1 試題1(2018年上半年試題14) 答案:C 採用的是SIMD架構 解析: 一、CPU與GPU的區別是什麼? 中央處理器CPU,Central Processing Unit是一塊超大規模的積體電路,是一臺計算機的運算核心(Core)和控制核心( Co

【HTTP權威指南】1  HTTP 概述

1.4 狀態 1.8 網關 資源 ip 地址 gen 歷史 客戶端 1.1 HTTP——因特網的多媒體信使 ...................................................................................

1 Java概述

卡爾 5-0 完成後 文件名 vpd 類定義 平臺 windows .class 第1章 Java概述 1.1 Java語言發展史和平臺概述A:Java語言發展史詹姆斯·高斯林(James Gosling)1977年獲得了加拿大卡爾加裏大學計算機科學學士學位,1983年獲得

1 方法的概述及基本使用

Java1.1 方法定義格式及格式解釋1.1.1 方法的概述假設有一個遊戲程序,程序在運行過程中,要不斷地發射炮彈(植物大戰僵屍)。發射炮彈的動作需要編寫100行的代碼,在每次實現發射炮彈的地方都需要重復地編寫這100行代碼,這樣程序會變得很臃腫,可讀性也非常差。為了解決代碼重復編寫的問題,可以將發射炮彈的代

1 API概述

Java1.1 API概念API(Application Programming Interface) : 應用程序編程接口編寫一個機器人程序去控制機器人踢足球,程序就需要向機器人發出向前跑、向後跑、射門、搶球等各種命令,沒有編過程序的人很難想象這樣的程序如何編寫。但是對於有經驗的開發人員來說,知道機器人廠商