時間:2022-10-08 05:59:29
序論:寫作是一種深度的自我表達。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內心深處的真相,好投稿為您帶來了七篇軟件工程范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創作。
關鍵詞:軟件工程;課程群;課程設計
中圖分類號:G642 文獻標識碼:B
文章編號:1672-5913 (2007) 20-0005-03
軟件工程是計算機學科的重要學科分支,在本科計算機類各專業中都開設一些軟件工程的課程,在研究生教學中,無論是碩士還是博士,都設置軟件工程的研究方向,開設高一級的軟件工程課程。本文中,軟件工程課程群是指包括各層次的軟件工程類課程。另外,軟件工程又是一門發展非常迅速的學科,早年在研究生中講述的內容現在放在本科中講。因此,這些課程存在定位不明確,課程間內容交叉重復等問題。本文根據本科生和研究生兩個層次對軟件工程類課程的教學要求,闡述軟件工程課程群的定位、課程設置、主要課程的知識單元和知識點。
1定位
首先分析社會對各層次計算機專業學生在軟件工程方面的知識和能力要求。我們認為計算機類本科學生畢業后,主要從事計算機軟件的開發工作,他們應掌握軟件工程的基本概念、基本原理和基本方法,并能運用這些概念、方法、原理,參與和/或從事軟件開發的某些活動(如分析、設計、編碼、測試等)。軟件工程方向的研究生主要著重研究能力的培養,畢業后主要承擔系統分析員和/或系統設計員角色,甚至承擔項目經理的角色,他們應掌握軟件工程的研究動態,了解軟件工程最新的研究成果,具備有關軟件的系統分析、構架設計和軟件項目管理的知識和能力。
根據以上分析,我們認為,本科生軟件工程課程群應以軟件工程的基本概念、基本原理和基本方法為主線,使學生具備扎實的軟件工程基本理論知識、熟練的編程能力、較好的團隊合作能力和實驗能力,同時具備一定的分析與解決問題能力和創新能力。研究生軟件工程課程群應以研究課題為主線,使學生掌握軟件工程最新的研究動態,對其中若干個研究方向有深入的了解,具備較強的分析與解決問題能力和創新能力,以及基本的軟件項目組
織和管理能力。
2課程設置
軟件工程課程群按學生的層次可分為本科生軟件工程課程群和研究生軟件工程課程群,按課程類別可分為必修課和選修課。
根據上述定位,本科生軟件工程課程群的必修課包括軟件工程和軟件實踐,有些學校在軟件工程課中包括足夠的實踐時間,可將它們合并成一門軟件工程課。選修課可根據各校的特點開設不同的課程,如面向對象的分析與設計、軟件體系結構、基于構件的軟件開發、軟件測試等,也可將研究生的某些課程作為本科高年級學生的選修課。
研究生軟件工程課程群的必修課可包括高級軟件工程、軟件項目管理和專題討論,其中專題討論沒有固定的教材,它以若干專題(如軟件復用技術、模型驅動體系結構、軟件產品線等)的最新論文為主,以報告和討論的形式進行。選修課可根據導師的研究方向選擇合適的課程,如需求工程、軟件過程、形式方法等。
3教學內容
本節參照國外相關的資料,結合我們多年的教學實踐,給出軟件工程課程群中各必修課的知識單元。
3.1軟件工程(本科生)
本科軟件工程課程的內容應覆蓋教育部計算機科學與技術教學指導委員會制訂的計算機科學與技術本科專業規范(計算機科學方向)中有關軟件工程的主要知識單元,該課程以軟件工程的基本概念、基本原理和基本方法為主,著重國內比較流行的結構化分析與設計方法、面向對象分析與設計方法和常規的軟件測試方法。同時對一些較新的軟件開發模型、方法和技術(如基于構件的軟件開發模型和方法、敏捷開發方法、CMM&CMMI、Web工程等)做簡單的介紹,以便學生今后自學。
3.2軟件實踐(本科生)
該課程是本科軟件工程課程的一門后繼實驗課,以某種軟件開發方法(如面向對象方法)和軟件過程(如統一軟件過程RUP)為基礎,引導學生完成一個完整的軟件項目開發全過程,包括需求獲取、需求分析、系統設計、實現以及測試等基本步驟。該課程主要培養學生的分析與解決問題能力、團隊合作能力、實驗能力和創新能力
3.3高級軟件工程(研究生)
該課程選擇當今軟件工程研究的熱點課題作為主要內容,其知識單元可包括:基于構件的軟件工程、軟件產品線、軟件體系結構、模型驅動體系結構(MDA)、面向方面程序設計(AOP)、需求工程、面向對象測試技術、逆向工程和再工程、Agent技術、形式方法、高可信軟件,開源軟件等。值得注意的是,在一門高級軟件工程課程中很難詳細介紹上述所有的內容,各??筛鶕约旱奶攸c和研究方向,選擇幾個(以3~5個為宜)知識單元作重點介紹,對其他知識單元可只做簡單的介紹。
下面給出幾個知識單元所包含的知識點。
基于構件的軟件工程(CBSE)主要包括:CBSE基本概念,軟件構件規格說明,構件模型,基于構件的開發過程,基于構件開發的語義完整性,構件組裝和集成,預測系統的可信度,軟件產品線體系結構中的構件,商用第三方構件(COTS)及構件獲取技術,基于構件的軟件體系結構,基于構件軟件的測試與質量保證,構件的可變性機制,軟件構件庫,構件交易,構件描述與檢索等。
軟件產品線(SPL)主要包括:軟件產品線的基本概念,軟件產品線的基本活動(核心資產開發,產品開發,管理),領域工程與應用系統工程,SPL經濟學,軟件產品線實踐域,軟件產品線實踐模式,產品線組裝,基于產品線的應用系統開發技術等。
軟件體系結構主要包括:軟件體系結構的原則和實踐,體系結構框架/方法,體系結構模型與MDA,集成框架,軟件體系結構設計與分析,體系結構風格,軟件體系結構文檔,軟件體系結構評估與確認,面向服務體系結構(SOA),體系結構模式,企業體系結構等。
模型驅動體系結構(MDA)主要包括:MDA基本概念,MDA規格說明,MDA模型(CIM,PIM,PSM),模型轉換,模型語言(如可執行的UML,對象約束語言OCL等),元建模,MDA過程,領域建模,系統模型,平臺無關建模,平臺特定的實現等。
3.4軟件項目管理(研究生)
該課程的知識單元包括:綜合管理,范圍管理,時間管理,成本管理,質量管理,人力資源管理,溝通管理,風險管理,采購管理,敏捷項目管理,外包管理,軟技能等。下面給出其中若干個知識單元所包含的知識點。
綜合管理:項目,項目范圍陳述,項目管理計劃(編制過程,內容),項目執行的管理,項目評價,項目的監督和控制,集成的變更控制,實施報告,配置管理,關閉項目。
范圍管理:啟動過程,項目選擇方法,項目合同,范圍管理計劃(編制過程,范圍陳述,范圍定義),創建WBS,范圍驗證過程,范圍蔓延,范圍變更控制過程,目標管理(MBO),影響曲線。
時間管理:活動定義過程,活動排序過程,圖示方法(優先圖示方法(PDM),箭頭圖示方法(ADM),條件圖示方法,圖形評價和評審技術(GERT), 項目網絡圖,關鍵路徑方法(CPM),計劃評價和評審技術(PERT)等),PERT對CPM的估算,活動資源估算,活動持續時間估算,估算工具,進度表開發過程,進度控制過程,凈價值術語和公式。
成本管理:資源計劃編制過程,成本估算(術語,過程,COCOMO模型,工具),成本管理計劃,成本預算過程,成本基線,項目投資需求,成本控制過程,實施度量,預測完成,凈價值術語和公式。
質量管理:質量計劃編制過程,質量保證計劃,過程改進計劃,質量保證過程,質量控制過程,統計質量控制(SQC),質量改進過程。
人力資源管理:人力資源計劃編制,組織計劃編制,項目管理中人的因素,責任委派矩陣,獲取項目組,員工獲取過程,項目管理者的角色和責任,項目組(建造過程),小組動力,管理項目組,角色與責任,領導風格,能力類型,沖突管理,6動機理論,小組性能估算,管理知識員工。
溝通管理:溝通計劃編制,溝通管理計劃,信息分發,溝通模型,溝通風格,溝通方法,溝通鏈接規則,溝通障礙,溝通技巧,績效報告,管理涉眾,管理收尾。
風險管理:風險管理計劃編制,實用方法,風險標識,風險分析(定性分析,可能性與風險影響,定量分析,靈敏性分析,決策樹分析,預期貨幣價值,概率方法),風險響應(計劃編制,工具與技術),可保險風險,風險監督與控制過程,影響曲線。
采購管理:采購計劃編制,購買和獲取計劃,合同計劃,成本補償合同,固定價格合同,工作陳述,申請計劃編制過程,請求供方響應,申請過程,供方選擇,源選擇過程,談判,合同,合同管理,合同變更控制,合同收尾。
敏捷項目管理:Agile宣言和原則,迭代與演化開發,產品業主,敏捷管理需求,敏捷估算與計劃編制,敏捷設計,敏捷文檔,敏捷軟件構造,敏捷編程,人員管理問題,敏捷質量保證,敏捷項目管理,項目評審,敏捷度量。
外包管理:識別全球業務機遇,組織模型與商業策略,全球項目的特征和挑戰,全球項目經理的技能,國際及多種文化的交融,IP保護與其他法律方面,采購道德規范,道德規范法規,試驗計劃,風險管理,軟件過程與實踐的改進,建立團隊,需求管理及客戶/供應商關系,開發方法學,全球軟件開發(GSD)與全球軟件工程(GSE),溝通、協調和協作,離岸項目的管理,克服距離和時間,文化交叉的處理,全球項目的安全問題,全球項目收尾,從業人員教育培訓及知識管理。
軟技能:領導能力,批判性思考,職業道德規范,自我激勵,誠實,小組工作,風險捕獲,適應性,人際關系,工作壓力承受、壓力管理,創造性,影響力,研究能力,問題解決能力,組織能力,多文化處理能力,學習能力,時間管理,口頭溝通,文字溝通,細心周到。
4小結
本文介紹了軟件工程課程群的設計,在具體實施時,可根據各校的特點,對上述課程設置、知識單元、知識點進行裁剪。下一步將繼續完善各課程的知識單元和知識點,為軟件工程課程群建設打好基礎。
參考文獻
[1] 教育部高等學校計算機科學與技術教學指導委員會. 計算機科學與技術本科專業規范[M]. 北京:高等教育出版社,2006 .
作者簡介
錢樂秋(1942-),男,復旦大學計算機科學與工程系教授,博士生導師,主要研究方向為軟件工程。
關鍵詞:軟件工程;哲學;思想方法論
中圖分類號:TP311.52 文獻標識碼:A文章編號:1007-9599 (2011) 15-0000-01
Software Engineering and Philosophy
Song Lianpeng
(Cangzhou Medical Insurance Management Center,Cangzhou061001,China)
Abstract:Although software engineering software to solve the crisis,Moreover,nearly three decades of development,software engineering has accumulated a considerable number of methods and experience,but these methods are not static and experience a panacea,only a constant practice of software engineers to choose the right method in order to develop good software.How to choose the appropriate method to do,important way is to use philosophy to software engineers through the whole process of software engineering development.
Keywords:Software engineering;Philosophy;Thinking methodology
軟件工程是軟件生產和軟件管理的工程科學。是應用計算機科學、數學及管理科學原理來開發軟件工程。發展到今天,軟件智能程度越來越高,系統越來越復雜,怎樣才能開發出好的軟件工程?有些人可能認為只要學好計算機科學、數學等理工學科,就能做好軟件開發。其實不然。筆者認為,用好哲學思想才是開發出高水平軟件工程的關鍵。哲學對軟件工程的開發具有指導作用。
一、軟件工程分析中哲學思想
如果從哲學的角度去審視一個事物,那么就應該本著“跳出畫外看畫”的原則去把握它,真正的分析方法應該是從整體上去把握它,絕對不能形而上學。當拿到一項軟件開發的任務時,首先,應該站在整體的角度,分清楚軟件工程中的“元素”都有什么:比如從人的角度劃分有業務方、實施方和監理方等,從流程的角度劃分有立項、需求、設計、實現、確認和支持等。然后,你一定要本著辯證唯物主義的基本原則,來對這些元素進行分析,再結合一個特定的歷史背景,得出一套整體的軟件工程規劃藍圖來。如果你僅僅從站在自己團隊的角度去思考問題,那是不行的,真正的軟件工程的哲學應該是把盡量多的系統以及客戶需求等“元素”結合起來,運用辯證唯物主義方法進行分析,得出一個整體的、最優的軟件系統結構模型。即“整體規劃、分步實施”。
二、軟件工程設計中哲學思想
在設計方案時,我們絕對不能用靜止的眼光來看待客戶需求,因為客戶需求是變化的,不是一成不變的。一旦需求變更,就會導致大量的開發返工,所以說靜止的方案絕對不是一個好方案。我們應該遵循一個前瞻性原則,那就是盡量考慮將來都會發生哪些事情,即遵循“架構設計可擴展”的原則,為許許多多將來可能的發生變化的需求或是新技術預留出接口來。當然,這種方案設計的思路會大大增加設計的難度和開發的工作量,但這是必須要做的事情,因為我們應該從整個軟件工程發展的角度去思考問題,與時俱進,即我們經常說的“用戶的需求總是在變化,做方案應該多為用戶考慮,盡量降低需求變更對方案的沖擊”。絕對不能用靜止的眼光去看待用戶的需求。
三、在軟件測試中哲學思想
軟件測試工作也是軟件工程開發中比較重要的工作,雖然軟件測試處于起步階段。軟件測試需要什么樣的專業基礎還沒有定論,但哲學思想應該貫穿整個測試工作中,測試的目的是為了發現軟件中盡可能多的缺陷,這里缺陷是一種泛稱,它可能是功能的錯誤、性能低下、易用性差等等。測試總是先假設程序中存在缺陷,再通過執行程序來發現并最終改正缺陷。理解測試的目的是個很重要的意識問題,而這種意識恰恰是哲學思想。
四、開發團隊中哲學思想
工作在第一線的軟件開發人員是程序員和項目經理,他們決定著軟件的命運。良好的程序員隊伍和出色的管理是軟件項目成功的必要條件。管理不是管制。管理的目的是讓大家一起把工作做好,并且讓各人獲得各自的快樂和滿足。在項目完成時,他們會自豪地說:“看看我們通過努力取得的成績吧”。所以管理者不能老惦記著自己是一個官,而應時刻意識到自己是責任的主要承擔者。作為軟件工程的項目經理,讓大家都能夠有一個更高的站位,調動團隊每個人的積極性,發揮每個人的想象力,不去計較某個項目組多做一點還是少做一點,。用歷史唯物主義觀點來發現軟件開發中的矛盾點,用辯證唯物主義觀點來解覺這些矛盾點。其實就這樣做過一段時間之后,你會發現,遵循了這個原則的人,恰恰就是這個原則的最大受益者。
參考文獻:
[1]林銳.軟件工程思想[J].奇書網,2002
【 關鍵詞 】 軟件工程;升級;策略
The Discussion of the Software Engineering Upgrades Policy
Chuai Zheng
(Tianjin Youth Vocational College Tianjin 300000)
【 Abstract 】 Firstly, from the analysis of the drawbacks of traditional computer software, the paper makes the interpretation of the value to start upgrading computer software engineering, and proposes the upgrade of software engineering goals. Then, the paper will propose the software engineering upgrade strategy to explore several considerations.
【 Keywords 】 software engineering; upgrades; policy
1 引言
計算機是硬件和軟件的有機組合,二者缺一不可。其中硬件是軟件的物理基礎,偏向于現實的可觸及的物理設備互連互通。軟件是硬件的智能指揮中心,是自動與智能的體現者,更注重系統內部結構的組織應用。通過對傳統軟件使用情況的調查分析,存在多數用戶反映傳統計算機軟件性能存在不能滿足需要的缺點,主要體現在幾個方面。
不能滿足負載需求:在計算機越來越多的應用于各種生活環境下,某些領域需要計算機完成的任務越來越重,數據量呈現指數級增長。雖然硬件的發展使得在理論上問題具有可解決性,但傳統的軟件工程不能很好的利用硬件資源,適應新工作負荷的需要。嚴重影響工作的效率和質量。
不能滿足效率需求:早期的軟件無論功能還是組織結構都存在嚴重缺陷和不足,特別是用戶操作的標準未與軟件產品的質量相符合,這就為后來軟件應付更大處理挑戰埋下危機,使得日后效率提升空間大幅減小。另外,由于軟件存在漏洞,使得用戶所存儲的重要信息易被竊取,導致更大經濟損失,為無論是個人還是企業都帶來了不必要的麻煩。
不能滿足成本的需求:傳統的軟件組裝和設計并沒有先進的科學指導為基礎,使得在這方面資本消耗過大,同時軟件后期的改造或者升級成本也很高。對軟件投入的過多就相應的減少了企業其它投資的減少,降低了其它工作方向的質量。
2 軟件升級必須達到的目標
近幾年,計算機軟件工程的應用領域日益廣泛,具體包括各種程序設計語言、數據庫技術、軟件設計模式、操作和數據指令的標準、應用系統平臺和軟件開發工具。鑒于傳統軟件工程存在的諸多缺限,還有功能對象的轉變和應用范圍的擴大。無論是作為軟件研發的開發商還是作為軟件直接應用的用戶都要進行軟件的升級。軟件升級需要達到幾點要求,包括要有非常高的工作效率,靠的住的安全性,增加軟件的應用壽命和能夠進行方便的修改重生成特性。
2.1 軟件要具有高的工作效率
軟件升級幾乎涵蓋了所有軟件相關組成結構,要充分審核任何一個重要結構,做必要的改造。升級后軟件要明顯優于未升級前,對任務的處理時間要有較大的提升。具體來說就是,要對空間、時間等資源進行充分高效的利用,例如對計算機數據庫技術一定要充分挖掘數據的可利用價值。同時,始終保持用戶至上的理念,不斷提高用戶操作的便捷性是軟件升級最重要的目標。應該在原有的基礎上增加修改程序、組裝軟件和調整指令等必要的新功能。
2.2 軟件要安全可靠
互聯網的廣泛應用方便了人們的工作生活,對計算機的廣泛應用起到了不可忽視的推動作用。但由于它的開放性也給黑客提供了作案方便。黑客善于利用應用軟件對計算機系統實施攻擊,通過對軟件代碼的反編譯,植入和修改破壞軟件安全性以達到個人的目的,使得用戶蒙受巨大的精神或經濟損失。所以軟件升級改造必須要考慮軟件的安全防御功能。
2.3 盡量延長軟件的使用壽命
軟件開發設計前期調查,需求分析,開發,維護等多個階段,其過程復雜,需要投入大量的人力、物力和財力。所以從成本消耗的調度看,新軟件要盡量延長使用壽命,縮短產品更新換代的周期。就拿殺毒軟件而言,每年市場上銷售的殺毒軟件數量巨大,對就的軟件增加和完善功能必須要確保其在規定的時間內無需更換。同時,為了創造良好的經濟效益,使用周期也應該得到延長。
2.4 方便修改重新生成
為了減少軟件開發的投入,還可從軟件后期維護著手。對于軟件后期維護也是軟件周期中花費最大的,只要設法減少這一階段的投入,就會大大減少軟件的成本。因此,開發軟件時考慮留有修改余地,使得軟件便于修改重新生成就顯得尤為有意義,另外也會有效的減少設計工程師的操作難度。
3 計算機軟件工程升級策略考慮
3.1 軟件工程設計要有科學性
軟件開發的第一階段就是設計,軟件工程的升級設計一定要以科學為指導。例如,對于研發程序代碼要考慮軟件模塊化。對外要考慮軟件的抽象和信息隱蔽特性,以及軟件的局部化、一致性原則和適應性等特征。選擇恰當的科學的設計方法,能夠為這些特征的實現提供方便,達到科學性設計這一目標,突出升級軟件后的優勢特征。
3.2 要全面兼顧市場需求
軟件開發的直接目的就是服務于市場需求,一個脫離市場需求的軟件產品是對經濟資源的浪費。同樣,軟件的升級也要有市場需求為支持,在滿足市場基本需求的前提下,進行相關的研究和開發,才會使工作有價值,避免由于開發設計不當造成資源浪費。另外,作為計算機組成的兩大部分,軟件和硬件一直都存在計算機產品開發不可兼得的問題,無時無刻不逼迫使得軟件開發單位考慮兩者互相的影響與制約的關系,做出權衡。如此一來,面對具有多變性的市場,在采取有效控制之前,必須對市場有全面的掌握和理解,才能開發出更加滿足社會需要的軟件產品。
3.3 把握智多種發展趨勢
3.3.1智能化
智能化不僅出現在計算機科學領域,它是現代通信與信息技術、行業技術、計算機網絡技術和智能化控制技術綜合到一起針對某一方面的應用。在人工智能化應用與計算機領域的今天,這個趨勢必然會與現代通信技術、計算機網絡技術與現場總線的控制技術飛速發展,一起給人們的生產生活帶來巨大的變革。
3.3.2服務化
隨著計算機軟件技術的發展和應用軟件的廣泛普及,計算機軟件技術及產品的服務化將成為一種大趨勢。未來,軟件開發商會以一種服務的形式提供軟件,利用網絡提供方式,將各種軟件放在服務器的主機上,客戶可根據選擇下載安裝某種應用軟件。當然客戶也可以與軟件開發商聯系,提出自己的要求,訂購軟件服務。通過網絡享受軟件和硬件資源,軟件維護升級等,使軟件真正的服務于人民。
3.3.3融合
我國對工業發展策略調整以及傳統工業的升級,必然會加快電氣化、機械化和自動化這些硬設備向信息化、數字化和網絡化等軟設備轉變。計算機軟件技術的融合化是我國信息化和工業化融合的一支重要力量。隨著工業化不斷推進和傳統產業升級加快,工業軟件的需求會進一步加大,我國計算機軟件軟件產業會不斷發展壯大,推動計算機軟件技術融合,以適應發展需要。
3.3.4開放化
隨著軟件工程的蓬勃發展,早期封閉性強的收費性軟件發展模式以慢慢不再適應大的形式。為了給提高計算機軟件質量的提高創建機遇,逐步打破軟件技術和知識產權的壟斷,開發化已變成不可阻擋的趨勢。計算機軟件源代碼的開放,將意味著軟件產品逐步標準化,這將有利于我國計算機軟件產業的更新換代和全面升級。在這種趨勢下,也勢必會使我國計算機軟件開發效率得到較大提高。
3.4 提供工程化支持,強化升級管理
新軟件必須大幅增強軟件的使用價值,具有很強的軟件工程使用多用性,這些就需要軟件工程的支持。主要包括軟件工具和環境要對軟件工程有足夠的支持,以及充分保障軟件工程項目的質量、技術和開銷。這些都由對軟件工程所提供的支撐質量和效用所決定。軟件工程的管理作為另外一項比較重要的方面直接影響了對可用資源的有效利用,大幅提高軟件組織的生產單位產出率,生產出合格的軟件產品等問題。在參照市場需求下,提前做好準備,制定軟件工程的管理制度,加強新舊產品升級空隙的質量監督和管理是電子產品研發企業必須做好的工作。
4 結束語
總體來說,計算機軟件升級是一項繁雜并且有著眾多考慮因素的任務。為了實現改進的目的,要在原有的基礎上不斷的修改,嘗試提高軟件質量,對軟件進行重組。對計算機軟件升級策略的研究也是一門多融合的課題,具有推動計算機科學不斷優化進步的重要意義。我們應該全面增強對次課題的深入研究,結合現實的發展策略,確保高效的軟件升級工作,以創造出更大的價值。
參考文獻
[1] 戴云松.淺析計算機軟件工程升級的策略性[J].電子技術與軟件工程,2014(03).
[2] 王鐘莊.談計算機軟件工程升級的策略性[J].煤炭技術,2013(06).
[3] 余明毅.探究計算機軟件工程升級的策略性[J].無線互連科技, 2014(07).
[關鍵詞]GIS系統 需求變更 模塊化
GIS即地理信息系統(Geographic Information System),經過了40年的發展,到今天已經逐漸成為一門相當成熟的技術,并且得到了極廣泛的應用。從應用的角度,GIS系統由硬件、軟件、數據、人員和方法五部分組成。硬件和軟件為地理信息系統建設提供環境;數據是GIS的重要內容;方法為GIS建設提供解決方案;人員是系統建設中的關鍵和能動性因素,直接影響和協調其它幾個組成部分。
一、GIS系統的發展現狀
由于各個部門對GIS的應用有不同的需求,目前沒有一個GIS軟件可以同時滿足各個行業的需要,所以在實際工作中對于特定行業的GIS應用,一般都需要進行或多或少的軟件開發工作。但無論是GIS基礎軟件的開發還是在基礎軟件基礎之上的應用開發,無論是大至幾百上千萬的項目還是幾萬的小項目,GIS的開發目前在我國都存在一些問題。最主要的原因就是沒有遵循軟件工程學的科學方法,如:沒有足夠的分析和設計、代碼不規范和文檔不完備等。
二、GIS系統存在的問題
人們的生產和生活中百分之八十以上的信息和地理空間位置有關。GIS系統作為獲取、整理、分析和管理地理空間數據的重要工具、技術和學科,近年來得到了廣泛關注和迅猛發展。由于信息技術的發展,數字時代的來臨,理論上來說,GIS可以運用于現階段任何行業。
由于GIS工程項目的專業性和復雜性,用戶的需求在系統開發的整個過程中都在不斷變更。如果沒有一個完整的需求變更管理方案就貿然進入設計和開發階段,所埋下的隱患是:一旦用戶的需求發生較大變化,對開發中的系統將可能是毀滅性的打擊。這種情況在實踐中屢見不鮮。軟件項目的目標超出原始計劃,業界通常稱為項目目標范圍蔓延.這是軟件開發中的固有矛盾。GIS項目目標定義困難,而且由于開發周期內項目必然會面臨改進,這就極易導致項目目標的蔓延。如果處理不當將成為項目失敗的主要原因。因此,必須采取一些措施控制對項目目標的蔓延,并確保開發者們不會受到這些改進帶來的負面影響。
近些年,GIS更以其強大的地理信息空間分析功能,在GPS及路徑優化中發揮著越來越重要的作用。GIS地理信息系統是以地理空間數據庫為基礎,在計算機軟硬件的支持下,運用系統工程和信息科學的理論,科學管理和綜合分析具有空間內涵的地理數據,以提供管理、決策等所需信息的技術系統。簡單的說,地理信息系統就是綜合處理和分析地理空間數據的一種技術系統。
三、GIS 系統的應用領域
地理信息系統在最近的30多年內取得了驚人的發展,廣泛應用于資源調查、環境評估、災害預測、國土管理、城市規劃、郵電通訊、交通運輸、軍事公安、水利電力、公共設施管理、農林牧業、統計、商業金融等幾乎所有領域。
在資源管理主要應用于農業和林業領域,解決農業和林業領域各種資源(如土地、森林、草場)分布、分級、統計、制圖等問題。同時,GIS系統在城市中各種公用設施、救災減災中物資的分配、全國范圍內能源保障、糧食供應等到機構的在各地的配置等都是資源配置問題。GIS在這類應用中的目標是保證資源的最合理配置和發揮最大效益。
近些年,GIS 系統也廣泛地用在城市規劃和管理方面。例如,在大規模城市基礎設施建設中如何保證綠地的比例和合理分布、如何保證學校、公共設施、運動場所、服務設施等能夠有最大的服務面(城市資源配置問題)等。商業與市場是一個全新的發展空間,商業設施的建立充分考慮其市場潛力。例如大型商場的建立如果不考慮其他商場的分布、待建區周圍居民區的分布和人數,建成之后就可能無法達到預期的市場和服務面。有時甚至商場銷售的品種和市場定位都必須與待建區的人口結構、消費水平等結合起來考慮。地理信息系統的空間分析和數據庫功能可以解決這些問題。房地產開發和銷售過程中也可以利用GIS功能進行決策和分析。
四、GIS系統的對策研究
GIS軟件工程包括GIS工程規劃、設計、實施、評價與維護技術,還包括工程的需求控制、質量控制、進度控制、風險控制等管理技術,另外,GIS數據生產的管理與質量控制體系也是GIS工程的重要組成部分。保證一個GIS工程的成功還涉及人員組織技術與成本控制技術,在一定的資金條件下最大限度地滿足用戶的需要,實現社會效益的同時,還能實現經濟效益,也是GIS工程管理的重要任務。
首先:加強GIS軟件工程的培訓和管理。軟件工程的概念還遠沒有在GIS工程的研究人員、開發人員、管理人員的頭腦中扎下根來,軟件工程的方法還遠沒有成為完成GIS工程的自覺行為。要提高GIS工程研究人員,開發人員和管理人員對軟件工程的重視,首先就要加強GIS軟件工程的教育工作。如在大學中開設GIS軟件工程課程或在相關課程中將GIS軟件工程作為重點章節進行講授。加強GIS從業人員的繼續教育,讓GIS從業人員認識到在GIS工程中實施軟件工程學方法是必然的。
其次:詳細的系統分析和設計。由于用戶需求涉及的因素較多,而用戶與軟件人員之間由于背景知識、看待問題的角度等的差異,對需求的描述和理解可能會不完備或存在不一致。在實際工作中,用戶的需求還常常隨外部條件或內在因素的變動而呈現易變的特點。充分地需求分析及系統分析可以最大限度地消除用戶與軟件人員之間的不一致,詳細地系統設計和代碼設計可以提高軟件的質量,增強系統的可移植性,提高工作效率。
參考文獻:
[1]張超等:地理信息系統[M],北京:高等教育出版社,2000
軟件工程考研科目為:數學一、英語、政治、計算機專業基礎綜合。
其中計算機專業基礎綜合包括:數據結構、操作系統、計算機網絡、計算機組成原理。
軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科,研究方向涉及到程序設計語言、數據庫、軟件開發工具、設計模式等方面。
(來源:文章屋網 )
隨著社會科技的不斷進步,軟件的應用范圍也正在不斷的擴大,比如,商務領域、交通領域以及家電領域等,軟件可以說是無處不在。而對于軟件工程來說,軟件工程是一類求解軟件的工程,其用于構造模型和算法,用于計劃、資源、質量和成本等的管理,用于指定規范、設計范型、評估成本、權衡結果,所以軟件工程能夠應用于計算機科學、數學和管理學等原理,通過借鑒傳統工程的方法,創建軟件以達到提高質量并且降低成本的目的。現如今,一些傳統軟件工程方逐漸被淘汰,現代軟件工程的方法能夠適應社會科學水平迅速提高的背景,所以現代軟件工程受到大力推廣以及廣泛應用。但是由于科技和計算機技術的發展過快,導致了我國現代軟件工程存在著較多的不足,所以需要對現代軟件工程現存的問題進行研究分析,指定相應的現代軟件工程在軟件開發中合理應用的策略,進而促進我國科學技術水平的發展(吳文慶,修雅慧,基于軟件工程方法在軟件開發中的應用研究:科技資訊,2018)。
二、現代軟件工程方法的內涵及其特征
通過對傳統軟件工程的借鑒,可以把現代軟件工程的方法分為主要的五部分,其分別是:分析、設計、編碼、測試以及維護。實際上,人們通過傳統軟件工程中比較有價值的方法和原則進行學習和采納,進而加入到對現代軟件工程方法的構建中,所以不論是現代軟件工程還是傳統軟件工程,很多時候在方法的使用方面仍然有著較為相似的地方。對于現代軟件工程來說,其最重要的優點徹底地打破傳統軟件工程的在部分方面的約束,使得多數軟件的發展擺脫了傳統軟件工程的限制,促進了各個領域范圍內軟件的發展(鞏敏,某部系列軟件工程項目的質量成本控制研究:中國科學院大學(中國科學院工程管理與信息技術學院),2017)。并且,現代軟件工程能夠把傳統軟件工程的方法以及原理等作為大規模開發的基礎,利用先進的科學技術優勢不斷地優化系統,使得現代軟件工程更加全面和系統。在現代軟件工程方法的五部分中,其中在分析階段,現代軟件工程面對的對象是現實生活中真實存在的那些事物,而不是虛擬的,所以通過對真實存在的事物的特征等方面進行分析,進而能夠反映出事物的作用等。此外,在現代軟件工程方法的設計階段中,現代軟件工程需要注重那些能夠反映出具體的事物。對于現代軟件工程較為突出的特點,便是現代軟件工程能夠進行修改,這不僅使得現代軟件工程更加的規范系統,還使得現代軟件工程更加安全可靠。
三、現代軟件工程技術的發展趨勢
隨著經濟全球化的發展,軟件開發行業為了能夠在全球化的發展中不被淘汰,因此進行了較大的改變。通過使用傳統的軟件工程已經無法滿足全球化發展對軟件開發行業的要求,必須要對軟件進行創新,利用新型軟件技術對軟件開發行業帶來的影響力,來促進軟件行業的發展。其次,由于國內的軟件開發技術相比國外的很多國家來說能力較差,所以很多軟件工程項目的進展需要轉移到國外進行。比如,將根據功能等方面將軟件工程分為幾大部分,然后將各個部分分配給較多國家的軟件外包公司來完成,這樣的方式,有效的表明了我國軟件工程信息全球化發展的趨勢。
四、現代軟件工程存在的問題
(一)制定不合理的軟件項目目標
在進行制定軟件項目目標時,管理者沒有更多的切合當前的實際情況,缺乏大局意識,在計算機項目管理中使用了錯誤的方式,進而未能提前制定好適合軟件發展情況的項目目標,導致軟件在進行開發的過程中開發成本、工作進程等方面產生了嚴重的偏差。
(二)設計的軟件的質量不能夠達到國際先進水平
實際上,現代軟件工程所用到的技術已經到達了國際較為先進的水平,因而產生的軟件在質量方面達到國際先進水平正常情況下是沒有問題的。但是,由于在對軟件進行開發的時候,主要項目的管理人員沒有較強的管理意識,在制定管理制度存在漏洞,不僅導致了軟件項目的開發成本逐漸增加,還使得軟件的質量一定程度的降低。
(三)設計的軟件功能實現和操作方式不夠人性化
很多軟件是依據用戶的需求來設計的,在進行現代軟件工程的時候,如果沒有按照用戶的要求以及實效切合實際的來對軟件進行測試,就會使得軟件工程的生產結果供大于求,對軟件開發行業的經濟效益帶來嚴重的損失(鄧學飛,現代軟件工程在電力系統中的應用:電子技術與軟件工程,2015)。
五、現代軟件工程應用于軟件開發中策略
(一)以切合實際情況為主,在現代軟件開發中使用最合適的現代軟件工程方法
軟件體系結構是現代軟件開發過程中的必經之路,因此軟件體系結構對于現代軟件工程來說是十分重要的。但是,軟件體系結構的側重點仍然在然間的分層法結構上,所以在軟件開發的時候所得到的數據大多數仍然是從數據庫中尋找到的。雖然我國現代軟件工程作為新興的軟件工程,已經逐步取代了傳統軟件工程,但是我國的數據庫管理系統仍然較為傳統,沒有得到明顯的改善或者創新。較為傳統的數據庫在更新數據方面較慢,并且傳統數據庫管理系統的作用并未得到充分地發揮,僅僅只是在處理數據以及保證數據安全等方面發揮了重要作用。因此,在現代軟件開發過程中,通過良好的現代科技壞境,將傳統的軟件工程方法與現代軟件開發技術更好的結合起來,使得現代軟件工程的儲存數據的能力有了較大的提升,并且對軟件開發的操作進行了規范化以及系統化的調整,有利于現代軟件開發中對軟件開發的應用。
(二)創新軟件工程理念,把新型的軟件工程理念加入到現代軟件工程中
依據相關研究表明,現代軟件開發在計算機領域、醫療衛生行業以及交通信息行業等較多行業中都得到了廣泛的應用。通過現代軟件工程設計的很多軟件能夠改變各行業工作人員的工作方式,不僅使得工作人員的工作效率有效的提高,還使得工作人員的工作積極性有了顯著的提高。在實際生活中,很多軟件開發公司由于沒有做到對現代軟件工程進行嚴格的規范化處理,導致軟件的開發效率下降,并且使得軟件所帶來的效益與預計差別太大。比如,現代軟件開發中的現代軟件工程對進醫療衛生事業的起到了十分重要的作用。但是如果沒有對所開發的軟件進行規范,可能會導致開發的軟件所帶來的效果不符合醫院工作的全部要求,對醫院帶來嚴重的損失。因此,必須要創新科學的軟件工程理念,將新型的軟件工程理念貫徹到現代軟件工程中去,并將科學的軟件理念作為基礎,進而實現現代軟件工程開發出來的軟件的應用成果(蘇警,芻議現代軟件工程在現代軟件開發中的有效運用:吉林工程技術師范學院學報,2015)。
近幾年,計算機軟件工程的應用領域日益廣泛,具體包括各種程序設計語言、數據庫技術、軟件設計模式、操作和數據指令的標準、應用系統平臺和軟件開發工具。鑒于傳統軟件工程存在的諸多缺限,還有功能對象的轉變和應用范圍的擴大。無論是作為軟件研發的開發商還是作為軟件直接應用的用戶都要進行軟件的升級。軟件升級需要達到幾點要求,包括要有非常高的工作效率,靠的住的安全性,增加軟件的應用壽命和能夠進行方便的修改重生成特性。
1.1軟件要具有高的工作效率
軟件升級幾乎涵蓋了所有軟件相關組成結構,要充分審核任何一個重要結構,做必要的改造。升級后軟件要明顯優于未升級前,對任務的處理時間要有較大的提升。具體來說就是,要對空間、時間等資源進行充分高效的利用,例如對計算機數據庫技術一定要充分挖掘數據的可利用價值。同時,始終保持用戶至上的理念,不斷提高用戶操作的便捷性是軟件升級最重要的目標。應該在原有的基礎上增加修改程序、組裝軟件和調整指令等必要的新功能。
1.2軟件要安全可靠
互聯網的廣泛應用方便了人們的工作生活,對計算機的廣泛應用起到了不可忽視的推動作用。但由于它的開放性也給黑客提供了作案方便。黑客善于利用應用軟件對計算機系統實施攻擊,通過對軟件代碼的反編譯,植入和修改破壞軟件安全性以達到個人的目的,使得用戶蒙受巨大的精神或經濟損失。所以軟件升級改造必須要考慮軟件的安全防御功能。
1.3盡量延長軟件的使用壽命
軟件開發設計前期調查,需求分析,開發,維護等多個階段,其過程復雜,需要投入大量的人力、物力和財力。所以從成本消耗的調度看,新軟件要盡量延長使用壽命,縮短產品更新換代的周期。就拿殺毒軟件而言,每年市場上銷售的殺毒軟件數量巨大,對就的軟件增加和完善功能必須要確保其在規定的時間內無需更換。同時,為了創造良好的經濟效益,使用周期也應該得到延長。
1.4方便修改重新生成
為了減少軟件開發的投入,還可從軟件后期維護著手。對于軟件后期維護也是軟件周期中花費最大的,只要設法減少這一階段的投入,就會大大減少軟件的成本。因此,開發軟件時考慮留有修改余地,使得軟件便于修改重新生成就顯得尤為有意義,另外也會有效的減少設計工程師的操作難度。
2計算機軟件工程升級策略考慮
2.1軟件工程設計要有科學性
軟件開發的第一階段就是設計,軟件工程的升級設計一定要以科學為指導。例如,對于研發程序代碼要考慮軟件模塊化。對外要考慮軟件的抽象和信息隱蔽特性,以及軟件的局部化、一致性原則和適應性等特征。選擇恰當的科學的設計方法,能夠為這些特征的實現提供方便,達到科學性設計這一目標,突出升級軟件后的優勢特征。
2.2要全面兼顧市場需求
軟件開發的直接目的就是服務于市場需求,一個脫離市場需求的軟件產品是對經濟資源的浪費。同樣,軟件的升級也要有市場需求為支持,在滿足市場基本需求的前提下,進行相關的研究和開發,才會使工作有價值,避免由于開發設計不當造成資源浪費。另外,作為計算機組成的兩大部分,軟件和硬件一直都存在計算機產品開發不可兼得的問題,無時無刻不逼迫使得軟件開發單位考慮兩者互相的影響與制約的關系,做出權衡。如此一來,面對具有多變性的市場,在采取有效控制之前,必須對市場有全面的掌握和理解,才能開發出更加滿足社會需要的軟件產品。
2.3把握智多種發展趨勢
2.3.1智能化智能化不僅出現在計算機科學領域,它是現代通信與信息技術、行業技術、計算機網絡技術和智能化控制技術綜合到一起針對某一方面的應用。在人工智能化應用與計算機領域的今天,這個趨勢必然會與現代通信技術、計算機網絡技術與現場總線的控制技術飛速發展,一起給人們的生產生活帶來巨大的變革。
2.3.2服務化隨著計算機軟件技術的發展和應用軟件的廣泛普及,計算機軟件技術及產品的服務化將成為一種大趨勢。未來,軟件開發商會以一種服務的形式提供軟件,利用網絡提供方式,將各種軟件放在服務器的主機上,客戶可根據選擇下載安裝某種應用軟件。當然客戶也可以與軟件開發商聯系,提出自己的要求,訂購軟件服務。通過網絡享受軟件和硬件資源,軟件維護升級等,使軟件真正的服務于人民。
2.3.3融合我國對工業發展策略調整以及傳統工業的升級,必然會加快電氣化、機械化和自動化這些硬設備向信息化、數字化和網絡化等軟設備轉變。計算機軟件技術的融合化是我國信息化和工業化融合的一支重要力量。隨著工業化不斷推進和傳統產業升級加快,工業軟件的需求會進一步加大,我國計算機軟件軟件產業會不斷發展壯大,推動計算機軟件技術融合,以適應發展需要。
2.3.4開放化隨著軟件工程的蓬勃發展,早期封閉性強的收費性軟件發展模式以慢慢不再適應大的形式。為了給提高計算機軟件質量的提高創建機遇,逐步打破軟件技術和知識產權的壟斷,開發化已變成不可阻擋的趨勢。計算機軟件源代碼的開放,將意味著軟件產品逐步標準化,這將有利于我國計算機軟件產業的更新換代和全面升級。在這種趨勢下,也勢必會使我國計算機軟件開發效率得到較大提高。
2.4提供工程化支持,強化升級管理
新軟件必須大幅增強軟件的使用價值,具有很強的軟件工程使用多用性,這些就需要軟件工程的支持。主要包括軟件工具和環境要對軟件工程有足夠的支持,以及充分保障軟件工程項目的質量、技術和開銷。這些都由對軟件工程所提供的支撐質量和效用所決定。軟件工程的管理作為另外一項比較重要的方面直接影響了對可用資源的有效利用,大幅提高軟件組織的生產單位產出率,生產出合格的軟件產品等問題。在參照市場需求下,提前做好準備,制定軟件工程的管理制度,加強新舊產品升級空隙的質量監督和管理是電子產品研發企業必須做好的工作。
3結束語