系統開發可行性報告范文
時間:2023-03-21 06:27:26
導語:如何才能寫好一篇系統開發可行性報告,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
形考任務二
一、單項選擇題(每小題2分,共56分)
題目1
1.從使用者角度看,任何一個管理信息系統均有明確的目標,并由若干具體功能組成,為了完成這個目標,各功能相互聯系,構成了一個有機結合的整體,表現出系統的特征,這就是管理信息系統的(
)
選擇一項:
A.
概念結構
B.
功能結構
C.
管理職能結構
D.
網絡計算結構
題目2
2.總體規劃階段的主要工作不包括(
)
選擇一項:
A.
分析和確定系統目標
B.
分析子系統的組成及其基本功能
C.
建立系統的邏輯模型
D.
進行系統的可行性研究
題目3
3.管理信息系統的層次結構中,最高層是(
)
選擇一項:
A.
執行控制子系統
B.
戰略計劃子系統
C.
管理控制子系統
D.
事務處理系統
題目4
4.管理信息系統的金字塔結構也稱為(
)
選擇一項:
A.
職能結構
B.
層次結構
C.
管理職能結構
D.
功能結構
題目5
5.管理信息系統的縱向結構是按(
)劃分的
選擇一項:
A.
管理層次
B.
組織職能
C.
管理層次和組織職能
D.
網絡計算模式
題目6
6.管理信息系統的橫向結構是按(
)劃分的
選擇一項:
A.
層次
B.
職能
C.
層次和職能
D.
網絡計算模式
題目7
7.C/S是一種重要的網絡計算機模式,其含義是(
)
選擇一項:
A.
客戶/服務器模式
B.
文件/服務器模式
C.
分時/共享模式
D.
瀏覽器/服務器模式
題目8
8.B/S是一種重要的網絡計算機模式,其含義是(
)
選擇一項:
A.
客戶/服務器模式
B.
文件/服務器模式
C.
分時/共享模式
D.
瀏覽器/服務器模式
題目9
9.軟件危機通常是指在計算機軟件開發和維護中所產生的一系列嚴重問題,這些問題中相對次要的因素是(
)
選擇一項:
A.
軟件功能
B.
文檔質量
C.
開發效率
D.
軟件性能
題目10
10.結構化分析與設計是信息系統開發時常用的方法,按其生命周期特征,它應屬于(
)
選擇一項:
A.
螺旋模型
B.
噴泉模型
C.
混合模型
D.
瀑布模型
題目11
11.原型化方法一般可分為三類,即(
)
選擇一項:
A.
探索型、開發型、直接型
B.
探索型、實驗型、演化型
C.
靈活型、結構型、復雜型
D.
目標型、實驗型、探索型
題目12
12.面向對象開發方法是基于(
)
選擇一項:
A.
原型模型
B.
噴泉模型
C.
混合模型
D.
瀑布模型
題目13
13.下列準確概括結構化分析方法核心思想的是(
)
選擇一項:
A.
由分解到抽象
B.
自頂向下,由細到粗,逐步抽象
C.
自下而上,由抽象到具體
D.
自頂向下,由粗到細,逐步求精
題目14
14.總體規劃是管理信息系統建設的第一步,其主要任務是明確(
)
選擇一項:
A.
系統“是什么”
B.
系統的數據流程
C.
系統的業務流程的細節
D.
系統的開發工具等
題目15
15.在管理信息系統的系統分析階段,其主要任務是明確(
)
選擇一項:
A.
系統“干什么”
B.
系統的模塊劃分
C.
系統測試方案
D.
題目16
16.在管理信息系統的系統設計階段,其主要任務是明確(
)
選擇一項:
A.
系統“怎么干”
B.
系統的模塊劃分
C.
系統測試方案
D.
系統分析說明
題目17
17.開發管理信息系統,早期使用的是(
)
選擇一項:
A.
結構化方法
B.
原型法
C.
面向對象的方法
D.
企業系統規劃法
題目18
18.面向對象的程序設計的英文縮寫是(
)
選擇一項:
A.
SA
B.
OOP
C.
OOD
D.
OOA
題目19
19.一種從用戶的基本需求入手,快速地實現新系統的一個原型,用戶、開發者及其它有關人員在適用原型的過程中,反復修改原型系統,確定各種需求細節,最終達到建立系統的目的的方法為(
)
選擇一項:
A.
生命周期法
B.
原型化法
C.
面向對象法
D.
結構化方法
題目20
20.管理信息系統開發前的準備工作不包括(
)
選擇一項:
A.
收集和整理基礎數據
B.
確立系統目標,開發側策略和投資金額
C.
借鑒同類系統的癌發經驗
D.
可行性分析報告
題目21
21.所謂管理信息系統的橫向結構是按(
)劃分的。
選擇一項:
A.
管理層次
B.
組織或機構的管理職能
C.
管理層次和組織或機構的職能
D.
網絡計算模式
題目22
22.系統開發過程中的第一個正式文檔是(
)。
選擇一項:
A.
系統說明書
B.
評審報告
C.
開發合同
D.
可行性報告
題目23
23.
管理信息系統開發的主要階段依次是(
)。
選擇一項:
A.
需求分析、系統設計、系統評價、系統實施、運行維護
B.
需求分析、系統設計、系統實施、運行維護、系統評價
C.
系統設計、需求分析、系統實施、運行維護、系統評價
D.
需求分析、系統設計、運行維護、系統評價、系統實施
題目24
24.結構化開發方法各階段的順序是(
)。
選擇一項:
A.
總體規劃、系統設計、系統實施、系統評價、系統分析、運行維護
B.
總體規劃、系統分析、系統設計、系統實施、運行維護、系統評價
C.
系統分析、總體規劃、系統設計、系統實施、運行維護、系統評價
D.
系統分析、系統設計、系統實施、運行維護、總體規劃、系統評價
題目25
25.系統設計產生的文檔是(
)。
選擇一項:
A.
可行性報告
B.
系統分析報告
C.
系統設計報告
D.
用戶操作手冊
題目26
26.結構化設計的是(
)。
A.
相對獨立、功能單一的模塊結構;塊內聯系大、塊間聯系小
B.
相對獨立、功能單一的模塊結構;塊內聯系大、塊間聯系小;采用結構圖的描述方式
C.
相對獨立、功能單一的模塊結構;采用結構圖的描述方式
D.
塊內聯系大、塊間聯系小;采用結構圖的描述方式
題目27
27.結構化開發方法是一種開發管理信息系統較為成熟的方法,下列選項中,不具有該方法所具有的特征是(
)。
選擇一項:
A.
充分理解用戶需求
B.
自頂向下進行開發
C.
動態地定義系統功能
D.
完整的文檔資料
題目28
28.信息系統開發方法的指導思想、開發策略常常相同或相似于(
)。
選擇一項:
A.
網絡建設
B.
軟件工程
C.
數據庫設計
D.
硬件工程
二、判斷題(每小題1分,共24分)
題目29
1.
MIS之所以要以計算機網絡為基礎主要是進行信息的貯備和加工處理。
選擇一項:
對
錯
題目30
2.
MIS建成并投入使用后,可能會使企業現有的人員、組織機構發生重組。
選擇一項:
對
錯
題目31
3.管理者特別是高層領導在MIS的建設和使用中起主導地位。
選擇一項:
對
錯
題目32
4.管理組織從橫向看可以分為若干個層次,相應地MIS也應具有層次結構。
選擇一項:
對
錯
題目33
5.管理控制子系統主要是為企業基層管理者提供信息服務的。
選擇一項:
對
錯
題目34
6.對于復雜的MIS進行分析和研究,通常可采用系統理論中的系統分解法,基本思路是先分解后協調。
選擇一項:
對
錯
題目35
7.文件服務器模式是最早出現的網絡計算結構。
選擇一項:
對
錯
題目36
8.從管理/職能角度看,MIS具有金字塔結構。
選擇一項:
對
錯
題目37
9.MIS的開發必須在具備一定條件下才能著手進行。
選擇一項:
對
錯
題目38
10.
MIS的開發方式有自行開發、委外開發和合作開發等幾種,最好的方式是自行開發。
選擇一項:
對
錯
題目39
11.
MIS的開發需要一定的周期,但MIS投入使用后通常不會對原有的人工管理方式產生太大的影響。
選擇一項:
對
錯
題目40
12.MIS是一個軟件系統,屬于無形資產,其效益不易用貨幣形式直接反映。
選擇一項:
對
錯
題目41
13.MIS開發的核心問題是采用何種語言、數據庫編寫程序代碼。
選擇一項:
對
錯
題目42
14.如果時間緊迫,采用增加開發人員的方式是加快MIS開發進度的最有效辦法。
選擇一項:
對
錯
題目43
15.軟件工程的方法大約產生于20世紀90年代。
選擇一項:
對
錯
題目44
16.結構化分析的核心思想是“自底向上,逐層分解”。
選擇一項:
對
錯
題目45
17.原型化方法一般可以分為探索型、實驗型和演化型三種類型。
選擇一項:
對
錯
題目46
18.為了有效地進行MIS開發與管理,往往將開發過程劃分為若干階段,通常稱這種方法為“螺旋模型”法。
選擇一項:
對
錯
題目47
19.
CIMS和OA的中文含義分別是計算機集成制造系統和辦公自動化。
選擇一項:
對
錯
題目48
20.一般將系統產生、發展和滅亡的生命歷程稱為系統的生命周期。
選擇一項:
對
錯
題目49
21.結構化分析方法的基本手段是:“分解”和“抽象”。(
)
選擇一項:
對
錯
題目50
22.結構化分析方法的基本策略是“自頂向下,逐步求精”。(
)
選擇一項:
對
錯
題目51
23.用結構化分析方法獲得的系統分析說明書由一套分層的數據流圖和一本數據字典構成。(
)
選擇一項:
對
錯
題目52
24.原型化方法是一種確定用戶需求的有效方法。(
)
選擇一項:
對
錯
三、選擇填空題(每小題5分,共20分,請點擊選項,然后拖拽至相應的方框內)。
題目53
1.
請為英文縮寫①~⑤在A~E中選擇表示其含義的描述,將正確選項拖拽至相應的方框內。
答:(1)SLC:
B.
系統的生命周期
(2)OOD:
C.面向對象的設計方法
(3)OOP:
D.
面向對象的編程方法
(4)SA:
A.結構化分析
(5)SD:
E.結構化設計。
題目54
2.
請為結構化開發方法的
(1)~(5)選擇該階段產生的文檔,將正確選項拖拽至相應的方框內)
答:(1)
C.可行性報告;
(2)A.系統分析報告
;
(3)E.系統設計報告;
(4)
B.用戶操作手冊
;
(5)D.運行狀況報告。
題目55
3.
3.請為名詞(1)~(5)選擇表示其含義的描述,將正確選項拖拽至相應方框內。
答:
(1)[B.其主要職責是起到用戶和系統開發其他人員之間的橋梁和接口作用,是系統開發的核心人物。];
(2)[C.負責依據系統邏輯方案和系統的硬件、軟件環境進行系統的總體設計、模塊設計以及模塊之間接口的設計工作。];
(3)[D.負責依據新系統邏輯方案中提出的對硬件網絡的基本要求制定硬件網絡配置方案,并負責該方案的全部實施工作。];
(4)[E.負責依據系統邏輯方案中提出的數據需求進行數據庫設計,監督和控制數據庫運行,以及進行數據庫的維護和改進工作。];
(5)[A.負責依據系統邏輯方案進行系統的程序設計,實現方案中的各項功能,還負責進行用戶的使用培訓工作,以及系統的測試和試運行。]。
題目56
4.
圖1是管理信息系統的管理職能結構(金字塔結構)示意圖,其含義描述如下:首先,組織的管
理是分層次的,一般可分為戰略計劃層(高層)、管理控制層(中層)和執行控制層(基層)。相應的管理信息系統為它們提供的信息處理與決策支持也分為三層。其次,組織的管理在分層的同時,又按管理職能劃分,相應的管理信息系統也就可以分為市場銷售子系統、物資子系統、財務子系統、人事管理子系統等。第三,下層的系統處理量大,上層的處理量小,下層系統為上層提供數據,形象地說,下層較“寬”、上層越來越“窄”。綜合上述三點就組成的縱橫交織的金字塔式的結構。
該金字塔結構示意圖不完整,請為圖1中(1)~(5)匹配合適的內容描述,將正確答案拖拽至相應的方框內。
A.管理控制層;B.管理層次;C.戰略計劃層;D.執行控制層;E.職能劃分
答:(1)D.執行控制層
;
(2)
C.戰略計劃層
(3)A.管理控制層
篇2
關鍵詞:數據庫設計;軟件工程技術;作用
數據庫設計是一項復雜且系統的過程,包括了物理結構和邏輯結構,這兩種結構是復雜的映射聯接起來的,不太靈活效率也低。而軟件工程技術能有效避免上述問題,在數據庫設計中發揮著重要作用。本文主要針對數據庫設計中每個階段的軟件工程技術進行研究,并分析軟件工程技術發揮的作用。
1軟件工程技術概述
某種程度上來說軟件開發其實就是“高層概念”到“低層概念”的映射,從而實現高層處理邏輯向低層處理邏輯轉變。而對于大型軟件系統而言定義就并非如此簡單,因為大型軟件開發包括有關人員、技術、途徑以及成本和進度的方方面面,綜合來看要把軟件工程定義為:軟件工程是一門能夠滿足客戶需求并以軟件產品和工程為對象的學科,主要應用計算機科學理論和工程管理原則。囊括了程序語言設計、數據庫以及設計模式等多個方面。軟件工程技術早期主要為瀑布式開發模型,經過不斷的發展演變為螺旋式的迭代開發,到現在軟件工程技術敏捷開發的方法,軟件工程技術隨著社會科學技術的發展而不斷進步。另外,在不同時期研究軟件工程技術時都要遵循使用科學的方法進行管理并通過合作的形式提高軟件生產率的原則,推動軟件工程技術的發展。學者根據軟件工程技術發展的歷程總結出了多種軟件開發的方法并產生了軟件工程學,但軟件工程學的出現并不代表軟件危機的結束。由于軟件工程自身理論性強、實施方法局限大等特點,使得軟件危機依然存在于生活中。經過不斷努力和探索,近年來出現了多種新的思想和方法,例如軟件再用、軟件自動生成器等,為軟件工程技術的發展提供了堅實的基礎,軟件工程技術逐漸向自動化、標準化轉變。
2軟件設計中的工程技術
2.1軟件的生存周期
軟件的生存周期主要由六個環節組成,包括要求分析、規格說明、設計、編碼、測試以及維護。要求分析和規格說明主要根據客戶的需求完成,明確軟件設計的目的。后面四個環節是對計算機系統而言該如何做才能實現前兩個環節中明確的設計目的。同時在軟件設計過程中要注意以下幾個問題才能確保軟件生存周期中各個環節的順利進行:首先要明確軟件開發的目的是為了更好的服務于生產生活,所以要嚴格按照生存周期中的分析要求和規格說明進行軟件設計。其次,由于軟件設計最終呈現給人們的是使用的產品,所以與系統工程聯系極為密切,在進行軟件設計時要采用結構化的方法,實現標準化的軟件設計。最后在軟件設計的各個環節都要重視設計驗證,設計驗證應當貫穿軟件設計的始終。
2.2規格說明書
在這個環節主要是將用戶的需求輸入并將結果輸出整理成規格說明書的形式,在表現用戶需求的同時不允許出現二義性,這是軟件開發的關鍵步驟。在對規格說明書進行設計時主要按照先以用戶需求建立數據流程圖,再設計數據項圖的方法。
2.3軟件設計
軟件設計是將上述的規格說明書翻譯成主要由軟件、硬件、人和通訊為基本元素組成的系統,而且這四個元素都完整的保存于信息系統中。在進行軟件設計時首要工作是要了解各個部分的功能,再將客戶的需求以規格說明書的形式輸入到系統中并重復進行下級功能的設計。當然,在進行軟件設計時需要注意以下幾個問題:首先,軟件系統設計是一項嚴密的工程,所以要設計一系列的制度規定約束設計人員的行為。其次要設計多個方案以備不時之需。
3軟件工程技術在數據庫設計中的應用
3.1分析其可行性
該階段通過分析現有的計算機技術和人工控制技術,從經濟、技術和操作方便性幾個方面對數據庫進行考察,以初步估計能否完成數據庫設計的任務。該階段應當將分析結果記錄下來,整理撰寫可行性報告。
3.2制定開發計劃
如果前階段的分析有很強的可行性,分析員將要開始制定該項目的開發計劃。項目開發計劃應當包括系統開發團隊的人員構成、人員分配、項目開發進度、驗收方式和驗收標準以及開發過程中的關鍵環節等。此外,用戶界面對數據庫的開發非常重要,美觀、友好而方便的用戶界面才能被客戶接受,在項目開發時也應當將界面設計考慮進去。
3.3分析數據庫系統的需求
數據庫系統的需求分析,包括對數據的需求分析、對系統性能的需求分析、對運行環境的需求分析等。該階段通過對數據庫的需求進行分析,以了解建立數據庫軟件需要的配置標準和運行環境,為數據庫的開發提供標準和參數。
3.4數據庫設計階段
數據庫的建立和設計是數據庫系統的重點內容。數據庫系統的運行效率和效果直接受到數據庫設計質量的影響。一項優秀的數據庫軟件系統不但能簡化運算方式,提高運行效率,還能幫助數據庫使用者簡單直接地獲取相關信息,保證數據的完整性,有利于完成數據庫的設計。數據庫設計的基礎是需求分析。首先應當設計數據庫的概念和結構,總體上把握用戶需求,并據此繪制系統實體聯系圖。然后應當設計數據庫的邏輯結構,把概念中的E-R圖轉化為計算機語言,與DBMS系統相適應,把實體之間的關系轉化為數據庫系統之間的表與表的關系。數據庫的物理結構設計由數據存取方法和數據存取結構兩個方面組成。該階段的設計通常包括兩個環節,一是確定數據庫系統的物理結構,二是評價該結構的運行效率,通過對兩個環節的綜合考慮,以評價數據庫物理結構的合理性。
3.5詳細設計和概要設計階段
系統的詳細設計不是編寫程序,而是設計程序框架。總體而言,系統的概要設計包括兩個階段:首先應當制定系統實施方案,然后進行軟件結構設計。
4結束語
根據研究和數據顯示,軟件工程技術不僅能夠提高數據庫設計的效率,同時還能增加數據庫的靈活性的適應性,對數據庫的發展具有重要的推動作用。目前我國對軟件工程技術的研究尚處于發展階段,但經過研究和探索數據庫中的軟件開發技術能夠發揮更大的作用。
參考文獻
[1]高猛.數據庫設計中軟件工程技術的作用分析[J].讀寫算(教育教學研究),2014,(17):365-365.
篇3
[關鍵詞] 醫院信息化建設;HIS系統
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 14. 037
[中圖分類號] F272.7;R197.324 [文獻標識碼] A [文章編號] 1673 - 0194(2012)14- 0063- 02
1 醫院信息化建設的意義
醫院信息化建設涵蓋面很寬,主要是指基于Intranet局域網的信息化建設,最基本的醫院信息系統(Hospital Information System,簡稱HIS),包括門急診掛號收費、住院結算、醫生工作站、護士工作站、藥房藥庫管理、設備物資管理等;電子病歷系統(簡稱EMR);實驗室信息系統(簡稱LIS);醫療影像存儲與傳輸系統(簡稱PACS),以及相關配套的子系統如病案統計管理系統、合理用藥管理系統等等;與之相匹配的機房、服務器、布線、路由器、終端自是必需內容。此外,基于局域網的無紙辦公和信息系統也是重要組成部分。
2 醫院信息化建設的阻礙
2.1 資金不足
資金不足是制約我國醫院信息化發展的首要因素。據專家估計,一個三級甲等醫院要實施整個醫院的信息化建設至少需要幾千萬元甚至上億元的投資。而這種投資完全依賴行政撥款進行信息化建設是不可能的,巨額的資金投入要靠醫院自已解決。資金不足是絕大多數醫院普遍面臨的難題。因為資金缺乏,項目無法開展,已開始的項目也會由于資金供給不足而半途中止。而且有些醫院更愿意投資在一些馬上產生效益的醫療設備,而不愿意在不能直接盈利的信息系統上投資。
2.2 醫學的復雜性
醫學自身的復雜性也導致了信息技術和醫學的結合極其困難。由于太過專業,而且業務流程十分繁瑣,醫療信息化本身的復雜程度非一般的其他行業所能比擬。全球沒有哪一家醫院能算得上實現了醫療信息化,由于對醫療行業信息化復雜度估計不足而導致系統失敗是很多見的。例如:IBM在20世紀60年代就嘗試過開發醫院中實施HIS系統,原以為把政府和其他行業用的好的財務管理系統照搬過來就行,結果還是因為醫學的復雜性而失敗。
2.3 人才
醫院信息化建設要得以迅速發展,必須有一批從事這一工作的專業技術人才。隨著醫院信息化建設的深入發展,現有的專業技術人才無論在數量上還是質量上都不能滿足需要。據統計,美國81%以上的醫院信息專業人員超過10人,31%的醫院信息專業人員超過50人。目前,我國醫院信息化建設過程中既懂IT、又懂醫學以及醫院管理的復合型人才少之又少。醫院即使有這樣的復合型人才,又因為體制原因這樣的人才在職稱評定及職位升遷方面不能享受優厚待遇或正常待遇,以至于人才流失很嚴重。
3 解決方法
3.1 資金問題
在中國衛生信息學會成立暨全國及廣東衛生信息技術學術交流會上,國家衛生部副部長王隴德透露,今后3年國家將對醫療衛生系統投資80多億元。其中為了加快完成醫療衛生網絡信息化,衛生部明確規定,今后醫院必須將年收入的5%用于信息系統建設的支出。管理者要轉變傳統模式,充分意識到信息化對醫院發展的重要性。醫院HIS的建設是一種基礎建設,是醫院建設的硬件設施,是醫院管理現代化、規范化的有力手段。
3.2 人才問題
醫院信息化建設必須有一支技術過硬的信息化專才隊伍,建議通過以下兩種途徑來實現:一是引進衛生信息學專業的學生。二是加強信息化在職人員的培訓。培養信息化人才,還要積極營造醫院信息文化氛圍。加強全院職工的信息意識和信息觀念,普及信息化知識,掌握信息技術操作技能,提高認識水平。
3.3 HIS系統
在HIS產品方面,醫院和軟件開發商之間應建立關系基礎。對醫院信息管理系統的進一步完善、升級幾不同數據平臺軟件之間的整合具有巨大影響,關系到醫院信息管理系統的生存和發展。對于醫院信息化管理軟件來說,應緊密圍繞醫院管理目標,體現管理思想,任何軟件都不是萬能軟件,因此必須從醫院實際出發,針對具體情況,本著優質、高效的管理目標選擇合適自己的信息化管理軟件。其中應著重解決以下問題:根據網絡系統的相應時間、事物處理實時性要求解決存儲、通信容量等方面的問題;充分考慮整個網絡的開放性、可擴充性、維護性,以及先進性要求,為醫院未來發展做好準備;在資金保證的前提下提高性能及兼顧先進性與實用性問題。總之要在充分調查醫院的基本要求后編寫可行性報告與需求分析報告,與使用科室充分交換意見后同軟件提供者充分協商后實施。并編寫實施規劃,按規劃分步實施,爭取做到萬無一失。
從IT企業來說要是想從事醫院的信息系統開發,一定要有較大的規模和較強的實力。要多和醫院交流、溝通,才能真正為醫院解決問題。而從醫院方面來說,一方面要全力配合軟件開發人員做好技術調研和系統應用工作。另一方面要培養建設醫院信息管理系統。對醫院來說既不是簡單購買一臺大型設備的概念,也不是做一個2~3年能完成的課題項目。醫院的信息化建設是一個大型的、復雜的系統工程,其中包含和涉及了太多的科學內容。在此,我們可以借鑒江門市人民醫院,采用“沒有接口的大集成”方法,醫院全部應用系統由一家公司完成,系統間沒有無縫連接,實現了醫院信息系統(HIS)、臨床信息系統(CLS)、實驗室管理系統(LIS)、放射科信息系統(RIS)、醫療影像存儲與傳輸系統(PACS)、體檢系統及其他系統的有機融合,使之一體化,實現了管理信息、醫療信息、影像信息、實驗室信息、病人信息、病例信息、藥品信息、財務信息、物資信息的高度共享。
4 總 結
醫院信息化建設是一項系統工程,需要總體規劃、分步實施。醫院信息化不是目的,而是手段。醫院信息化建成后,將形成合理高效的管理手法,逐步完善醫院管理,提升醫院的綜合院力。因此,對于醫院信息系統的建設一定要有理性的目標定位,有充分的論證、統籌和組織協調,真正做到“整體規劃,分步實施,階段見效,持續發展”。
主要參考文獻
篇4
關鍵詞:關鍵詞:C++;軟件復用;軟件開發
中圖分類號:TP393 文獻標識碼:A 文章編號:
1. 軟件復用技術簡介
從上世紀60年代軟件開發逐漸興起以來,軟件開發經歷的多個發展階段。隨著軟件規模的越來越大,軟件開發復雜度的逐漸提高,落后的軟件開發方式需要改變,同時企業對于軟件的質量要求也越來越高,如何提高開發效率以及提高軟件質量成為了軟件開發企業和軟件工程師需要解決的一個主要問題。在這樣的背景之下,軟件復用技術應運而生。
當前,軟件工程思想中有三個主要的策略,它們分別是軟件復用、折中、分而治之。其中,軟件復用的思想是軟件工程開發中一個實用性極強且功能強大的技術。
軟件復用技術放棄了一切從頭開始設計的軟件開發方式,借鑒采用了許多工程設計學科中利用的基于構件的思想來進行資源的復用。軟件復用技術,不僅僅指開發過程中對程序代碼進行復用,對于軟件設計過程中的其它的一些成果也可以進行復用,比如:針對軟件設計的需求分析、軟件設計的可行性報告、軟件開發完成之后進行的軟件測試方案、項目計劃書等等。采用軟件復用技術之后,軟件開發企業可以大大減少許多不必要的創建工程,從而大大加快了軟件開發速度,極大的減少了產品的形成周期,節約來的大量的資源和成本。同時,采用軟件復用技術也改善了產品的質量,提高了產品的可靠性,因為進行軟件復用的資源,一般都經過許多次利用和測試,其中的問題與缺陷得到了很好的糾正,因此大大減少了軟件系統出現問題的概率。另外從企業管理的角度來講,采用軟件復用技術,可以減少企業開發組件的成本的不確定性,尤其針對大規模的系統開發,可以大大降低企業的項目成本的不確定性,從而使軟件開發企業面臨的風險降到最低。最后,采用此技術對于軟件的標準化開發也有一定的意義。
2. C++技術與軟件復用技術
C++語言是一種面向對象的語言,而面向對象技術為軟件復用過程中的關鍵——軟件構件問題提供了堅實的理論基礎,使軟件復用技術成為可能。首先,面向對象的多態特性和繼承特性可以使軟件開發人員選擇某些問題的可重用的部分;其次,面向對象的軟件開發技術可以將現有的軟件進行抽象與封裝,從而使之成為可復用成分。總而言之,面向對象語言中的抽象、封裝、繼承和多態技術可以和軟件復用的各種技術相結合,從而很好的實現軟件的復用。
當前,C++中的軟件復用技術,主要可以分為四類,基于類的軟件復用技術、基于繼承特性和派生類的軟件復用技術、基于多態特性的軟件復用技術、基于模板機制的軟件復用技術,下面我們對四種軟件復用技術進行簡單的介紹。
3. C++中的軟件復用技術
3.1 基于類的軟件復用技術
C++中的類庫技術是軟件復用的基礎,在軟件開發過程中,程序員通過調用類庫中的函數可以達到軟件復用的目的。比如,調用C++類庫中的輸入輸出流函數可以實現輸入輸出的功能。如下:
#include<iostream>
#include<string>
int main{
string in_string;
cout<<“please enter your name”;
cin>>in_string;
if(in_string.empty())
cerr<<”error:input string is empty!n”;
else cout<<”hello,”<<in_string<<”!n”;
}
3.2 基于繼承特性和派生類的軟件復用技術
C++語言中,通過其繼承特性,可以在原有的類的基礎之上生成新的類,原有的類我們稱之為基類,新生成的類我們稱之為派生類。繼承技術是C++語言的一個重要特性,也是實現軟件復用的一種重要技術。利用繼承技術派生出新類時,我們不需要完全重新開始寫代碼,每一個派生類都繼承了基類的數據成員和成員函數,派生類只需要編寫出與基類行為不同的擴展特性即可,因此它大大簡化了程序量,提高了工作效率。另外,在派生類的基礎之上,我們還可以進一步設計新的派生類,由此可見,派生類的設計可以實現樹形發展。繼承關系圖如下所示:
圖一 繼承關系圖
基類和派生類的定義如下:
class Base {
public:
foo( int );
// ...
protected:
int _bar;
double _foo_bar;
};
class Derived : public Base {
public:
foo( string );
bool bar( Base *pb );
void foobar();
// ..
protected:
string _bar;
};
3.3 基于多態特性的軟件復用技術
多態特性是C++語言的一種重要屬性,利用C++的多態屬性,可以很好的實現軟件復用。概況來說,多態特性主要從三個方面來實現軟件復用,分別為:運算符重載、函數重載和虛函數技術。其中前面兩個屬于靜態多態特性,而后面一個屬于動態多態特性。下面分別就幾種多態技術進行介紹:
(1)C++中自帶的運算符只針對某些數據類型適用,對某些數據類型是不適用的,為了擴大運算符的適用范圍,提出了運算符的重載。運算符重載就是對已有的運算符進行重新定義,賦予其另一種功能,從而適應不同的數據類型。進行運算符重載的關鍵是要準確理解運算符的定義,從而把原來的運算符變換為一個運算符函數,進而進行調用,運算符重載的實例如:
complex operator+(complex c1,c2)
{ complex result(0,0);
result.setreal(c1.getreal()+c2getreal());
result.setimaginary(c1.getimaginary()+c2.getimaginary());
return result;
}
上面實例實現了對加法運算符的重載,C++中自帶的加法運算符不能直接進行復數的加法,通過重載,可以進行復數的相加。
(2)函數重載所謂函數重載是指同一個函數名可以對應著多個函數的實現。例如,可以給函數名max()定義多個函數實現,該函數的功能是求兩個數中較大的數,一個函數實現是求兩個int型數中較大的數,另一個實現是求兩個浮點型數中兩個較大的數,后面兩個函數對應的參數不是兩個。每種實現對應著一個函數體,這些函數的名字相同,但是函數的參數的類型或者參數的個數不同。
int max( int, int );
float max(float,float);
int max( const vector<int> & );
int max( const matrix & );
函數重載在類和對象的應用尤其重要。函數重載要求編譯器能夠唯一地確定調用一個函數時應執行哪個函數代碼,即采用哪個函數實現。確 定函數實現時,要求從函數參數的個數和類型上來區分。這就是說,進行函數重載時,要求同名函數在參數個數上不同,或者參數類型上不同。否則,將無法實現重載。
(3)虛函數是C++技術中實現多態的一種重要的方式。虛函數是通過一張虛函數表來實現的。簡稱為。在這個表中,主要是一個類的虛函數的地址表,這張表解決了繼承、覆蓋的問題,保證其真實反應實際的函數。這樣,在有虛函數的類的實例中這個表被分配在了這個實例的內存中,所以,當我們用父類的指針來操作一個子類的時候,這張虛函數表就顯得由為重要了,它就像一個地圖一樣,指明了實際所應該調用的函數。實例如下:
class A
{ public:
virtual void foo()
{ cout << "A::foo() is called" << endl;
}
};
class B: public A
{
public:
virtual void foo()
{
cout << "B::foo() is called" << endl;
}
};那么,在使用的時候,我們可以:
A * a = new B();
a->foo(); //
在這里,a雖然是指向A的指針,但是被調用的函數(foo)卻是B的!這個例子是虛函數的一個典型應用,一個類函數的調用并不是在編譯時刻被確定的,而是在運行時刻被確定的。由于編寫代碼的時候并不能確定被調用的是基類的函數還是哪個派生類的函數,所以被成為“虛”函數。
3.4 基于模板機制的軟件復用技術
函數模板就是建立一個通用的函數,其參數類型和返回類型不具體指定,用一個虛擬的類型來代表。它相比較于函數重載而言,具有很大的優勢,它不需要為每一個函數寫一組函數體完全相同的函數體,利用這個通用的函數,可以應用于不同的數據類型,真正實現了代碼的充分利用。
4. 總結
軟件復用技術可以重用系統代碼,設計方案等,大大減輕了工作量,提高了軟件開發的效率并且極大的改善了軟件的質量。本文介紹了C++中的四種主要的軟件復用技術并對每種技術進行了分析和思考,總的來說,這幾種C++中的軟件復用技術各有優劣,具有不同的應用環境,我們在實際的軟件開發過程中,要根據實際的情況來選擇合適的軟件復用技術,從而使軟件的性能與效率得到最優化。
參考文獻:
[1] 張海藩,倪寧.軟件工程(第3版)[M].人民郵電出版社,2010-02.
[2] 段小君,高金環.軟件復用與面向
對象技術[J].西安郵電學院學報,2004,9(2):103_106.
[3] 吳昌錢.軟件復用與面向對象技術[J].南昌教育學院學報,2010(6):192-193.
[4] 趙寶琴.如何在C++中實現軟件復用[J].電腦開發與應用,2005,18(1):60-61
[5] Stanley B Lippman,Josee Lajoie著,潘愛民,張麗譯,C++ Primer(第三版).
- 上一篇:管理辦法
- 下一篇:房地產項目可行性報告