第一章自 測 練 習
一、選擇題
(1)硬件與軟件的最大區別是( )。
A. 軟件產品是邏輯產品,硬件產品是物質產品_______B. 軟件產品是以手工生產方式生產,硬件產品是以大工業生產方式生產
C. 軟件產品不存在老化問題,硬件產品存在老化問題 D. 軟件產品容易復制,硬件產品很難復制
(2)軟件是指( )。
A. 按事先設計的功能和性能要求執行的指令系列 B. 使程序能夠正確操縱信息的數據結構
C. 與程序開發、維護和使用有關的圖文資料 D. 計算機系統中的程序和文檔
(3)“軟件工程的概念是為解決軟件危機而提出的”這句話的意思是( )。
A. 說明軟件工程的概念,即:工程的原則和思想、方法可能解決當時軟件開發和維護存在的問題
B. 說明軟件工程這門學科的形成是軟件發展的需要
C. 強調軟件工程成功地解決了軟件危機的問題
D. 說明軟件危機存在的主要問題是軟件開發,而不像傳統工程項目那樣
(4)軟件工程的目標是( )。
A. 生產滿足用戶需要的產品_____________________ B. 以合適的成本生產滿足用戶需要的產品
C. 以合適的成本生產滿足用戶需要的、可用性好的產品 D. 生產正確的、可用性好的產品
(5)軟件工程的開發過程是指( )。
A. 軟件生存周期內的所有活動 B. 軟件生存周期內的一系列有序活動集
C. 軟件工程的一組活動_______ D. 軟件生存周期內的所有任務
(6)軟件工程的活動是指( )。
A. 軟件生存周期內的一組任務 B. 軟件生存周期內的一組有序任務集
C. 軟件項目的任務_______ D. 軟件開發的工作
(7)瀑布模型的主要特點是( )。
A. 將開發過程嚴格地劃分為一系列有序的活動 B. 將過程分解為階段
C. 提供了有效的管理模式______________ D. 缺乏靈活性
(8)軟件開發方法是( )。
A. 指導軟件開發的一系列規則和約定 B. 軟件開發的步驟
C. 軟件開發的技術______________ D. 軟件開發的思想
(9)結構化方法需要進行( )轉換。
A. 數據流程圖向實體關系(ER)圖的 B. 向軟件模塊的
C. 數據流程圖向功能模型的_______ D. 概要設計向詳細設計的
(10)面向對象方法的出發點是( )。
A. 把自然界的事物按對象這一基本元素來處理 B. 盡可能按照人類認識客觀世界的方法和思維方式來解決問題
C. 使用面向對象的語言來進行軟件開發_______ D. 數據應該和操作它的程序封裝在一起
二、填空題
(1)_______ 與_______ 一起構成完整的計算機系統。
(2)軟件工程是一門 學科,像其他工程學科一樣需要結合工程學科的理論和思想。
(3)瀑布模型和增量模型的主要不同是_____________________ 。
(4)結構化的方法包括______________,______________。
(5)軟件危機之所以會發生主要是由于___________________________________ 。
(6)軟件生存周期概念的引入,對于_____________________ 有著重大意義。
(7)軟件生存周期各階段的劃分隨軟件的_____________________ 不同而不同。
(8)軟件工具是的_____________________ 軟件。
(9)Jackson 方法是從_______ 入手的分析設計方法,而面向對象的方法是從 入手的分析設計方法。
(10)為了有一個共同討論的框架,軟件工程規定了自己的過程、活動和任務。軟件工程的活動是_______ 。
三、簡答題
(1)軟件產品的特點是什么?
答:軟件產品是一種邏輯產品,是無形的、腦力勞動的結晶。只能以程序、數據和文檔的形式出現。其存儲介質是磁盤、磁帶或光盤。通過計算機的執行才能體現出來。與硬件產品的制造不同,軟件產品的成本主要花在研制上,而產品的制造(即復制)是不需要花費很多成本的。軟件產品不會磨損,但仍然需要維護,而且維護的成本很高??傊?,軟件產品開發完全靠腦力勞動,所以產品研制成本很高,軟件產品難于像硬件那樣工業化生產。
(2)軟件工程的目標、性質、內容是什么?
答:軟件工程的目標是在預先給定的成本約束下生產可用的、滿足用戶需求的產品。軟件工程的性質可以從兩個方面來認識,即軟件、工程兩個方面。一方面它是一門研究實現軟件工程目標的綜合計算機學科,另一方面它又是面向問題解決的計算機工程。軟件工程研究的內容包括軟件開發、軟件管理的理論和技術。
(3)軟件生產過程有哪些活動?什么是軟件生存周期?
答:軟件生產過程包括的活動有:需求分析、概要設計、詳細設計、編碼、測試、發布、維護。軟件生存周期是指軟件產品從研制、發布、維護到被新的產品代替這一整個產品生存過程。
(4)什么是軟件生存周期模型?為什么要研究軟件生存周期模型?
答:軟件生存周期模型是描述軟件開發過程中各種活動如何執行的模型。研究它可以為軟件開發過程的所有活動提供統一的行動準則,為開發人員提供參與活動的幫助和指導。它揭示了如何演繹軟件產品開發過程的思想,是實現軟件生存周期技術、方法的基礎。
(5)有哪些軟件生存周期模型?各有何特點?
答:軟件生存周期模型主要有瀑布模型、增量模型、螺旋模型。瀑布模型:瀑布模型是將軟件生命周期的各個活動展開成線性的有一定順序的若干階段的模型。其特點是把軟件開發過程嚴格區分為階段,要求按照這個階段劃分,順序地開展軟件開發各個活動。它為軟件開發的管理提供了有效的管理模式,是結構化系統分析設計方法的基礎。但是,它只是理想的軟件開發模式,因為軟件開發過程不可能是線性的,不可能不迭代。增量模型:與瀑布模型不同,增量開發模型是一部分一部分地逐步去完成系統開發目標。它是一種演化模型。開發完一部分就立刻讓用戶去使用它、評價它。然后再完善它并且完成下一部分的目標。使用戶能盡早使用實際的系統,不但能獲取用戶的反饋同時也能使系統盡早投入運行。它允許迭代,下一步的開發包括了對前一步開發的修改,克服了瀑布模型線性的缺點。螺旋模型:與增量模型相似,螺旋模型把系統目標分解,規定每一次螺旋周期的目標。在每一次螺旋周期的開發中采用簡化的瀑布模型,并且加入風險分析和原型化的方法。然后用一次一次螺旋上升實現最終目標。它把增量模型和瀑布模型的優點結合起來,來應對系統需求、技術、環境不斷變化的事實,同時也能夠管理好軟件開發。但是這種循環迭代風險也大,所以風險識別、防范是關鍵。
(6)主要的軟件開發方法有哪些?主要有何不同?
答:主要開發方法有結構化方法、面向對象的開發方法。結構化方法有結構化分析、設計、程序設計組成,是一種以數據為中心的開發方法。它的基本原則是分解與抽象。在問題域進行分解與抽象,以數據流程圖為主要工具,建立數據處理模型,然后把它轉換到求解域的系統結構模型。結構化方法比較成熟,是基于瀑布模型的方法,至今還廣泛應用。面向對象的方法以對象為中心。按照人們認識自然界的規律把客觀世界的實體劃分為對象,對象是分析和解決問題的核心。而問題域的對象和求解域的對象有著一致的對應關系,不需轉換。其基本原則依然是分解、抽象。只不過對象是比模塊更高一級的抽象,它不但封裝了模塊,更重要的是封裝了數據,模塊是操作這些數據的程序。開發方法正是由于像客觀世界的實體一樣面向對象,所以不但定義了對象,還定義了對象的繼承關系,使得軟件的復用在面向對象的設計中成了自然而然的事情。因而面向對象的方法已經成為軟件工程主要的開發方法。
一、選擇題 (1)A (2)D (3)B (4)C (5)B (6)B (7)A (8)A (9)C (10)B
二、填空題(1)硬件;軟件(2)工程(3)整體與局部開發(4)結構化的系統設計;結構化的程序設計(5)軟件的特點造成,軟件的特點造成它的個體勞動的性質,因而難于管理(6)軟件生產的管理(7)規模、種類、開發方式、開發環境(8)支持軟件人員開發和維護軟件活動而使用的軟件(9)數據結構;對象(10)完成工程目標所需的步驟
第二章 自 測 練 習
一、選擇題
(1)軟件可行性研究的目的是( )。
A. 證明軟件開發項目可行
B. 證明軟件開發項目不可行
C. 闡述軟件開發項目值得或不值得做
D. 為了確定軟件開發項目要不要做
(2)技術可行性研究要解決的問題是( )。
A. 從技術方面說明項目是否可行
B. 從技術上定義項目要解決的問題
C. 給出項目開發可行的技術路線
D. 給出精簡的項目需求設計報告
(3)可行性研究的步驟首先是( )。
A. 確定項目目標,即對要解決的問題進行定義
B. 研究項目需求
C. 對項目目標進行可行性分析
D. 給出可行的解決方案
(4)可行性研究報告必須給出( )。
A. 可行性分析和結論
B. 經濟、技術、社會可行性分析
C. 項目目標說明和是否可以開發
D. 可選擇的解決方案
(5)成本效益分析是( )的主要內容。
A. 經濟可行性分析
B. 項目可行性分析
C. 有形效益分析
D. 無形效益分析
(6)累計經濟效益是指( )。
A. 累計的成本
B. 累計的投資
C. 累計的收入
D. 累計的純收入
(7)投資回收期是指( )。
A. 項目投資開始到停止投資的時間區間
B. 項目開始到產生經濟效益的時間區間
C. 項目的累計經濟效益等于投資額所需的時間
D. 項目開始到完成所需的時間
(8)項目開發計劃通常不包括( )。
A. 項目的實施計劃
B. 項目的資源計劃
C. 項目的測試計劃
D. 項目的驗收計劃
(9)年利率為 i,現存入 p元,不計復利,n 年后本金利息為( )。
A. p(1 +i)n
B. p(1 +in)
C. p(1 +in)
D. p(1 +i)n
(10)項目可行性分析一般要在( )進行項目的需求分析設計。
A. 較高的層次
B. 項目的資源方面
C. 項目的成本效益上
D. 項目的推廣前景上
二、填空題
(1)可行性分析實際上是進行一項_______ 的需求分析、_______ 過程。
(2)可以從三個方面進行可行性分 析,即:_______ 可 行 性、_______ 可 行 性和_______可行性。
(3)效益分析包括_______ 效益分析和_______ 效益分析。
(4)技術可行性分析就是______________ 分析。
(5)投資回收期就是使_______ 等于最初的_______ 所需的時間。
(6)純收入是軟件生存周期內_______ 與_______ 之差。
(7)經過可行性分析之后,如項目是值得開發的,則一般要制定一個_______ 。
(8)經濟可行性分析常采用_______ 分析。
(9)項目可行性研究報告主要內容是要給出該項目_______ 的意見。
(10)貨幣的時間價值用_______ 來計算。
三、簡答題
(1)可行性研究的任務是什么?
答:可行性研究的任務就是從技術、經濟、社會三個方面研究項目的可行性,并給出可行性研究的報告。
(2)可行性研究的主要目的是什么?
答:可行性研究的目的是用較小的代價、在盡可能短的時間內回答項目能不能、值不值得開發。
(3)可行性研究報告的主要內容是什么?
答:可行性報告的主要內容是說明該項目的功能、性能、基本要求;達到的目標;約束條件;可行性研究的方法和決定可行性的因素。對現有系統的分析,從技術、經濟、社會三個方面對項目進行的分析和可供選擇的方案。最后給出結論,說明項目能否開發、值不值得開發,或具備了什么條件才能開發。
(4)如何計算投資回收期和純收入?
答:投資回收期就是累計的經濟效益等于初始投資費用所需的時間。n 年累計的經濟效益:Bn=∑ni=1Fi/(1 + Pi•i)式中:Fi為第 i年的經濟效益;Pi為第 i年的年利率。純收入就是在項目的生存期時間里的累計經濟效益與投資額之差,即 Bn-I式中 I是初始投資額,Bn是 n 年的累計經濟效益。
自測練習答案
一、選擇題
(1)D (2)A (3)A (4)A (5)A (6)D (7)C (8)C (9)B (10)A
二、填空題
(1)精簡;設計(2)技術;經濟;社會(3)有形;無形(4)技術風險(5)累計的經濟效益;投資(6)累計的經濟效益(折合成現在值);投資(7)項目開發計劃(8)成本效益
(9)能否開發、是否值得開發(10)利率