軟件
軟件的概念
- 軟件(software)是信息的載體,并且提供了對信息的處理能力,軟件來反映用戶特定的信息處理邏輯,從而由對信息增值來取得用戶自身效益增值。
- 軟件運行在硬件之上,是硬件實施計算、控制等功能的工作步驟、流程及相關說明;硬件是軟件運行的物質基礎,硬件系統(tǒng)的協(xié)同工作完成用戶通過軟件定義的特定數(shù)據(jù)處理任務
軟件的定義
- 計算機軟件是指與計算機系統(tǒng)操作有關的程序、規(guī)程、規(guī)則及任何與之有關的數(shù)據(jù)和文檔資料。
- 指令、程序和數(shù)據(jù)(硬件系統(tǒng)可以執(zhí)行);
- 文檔、資料(軟件開發(fā)、運行、維護、使用、培訓等活動相關,硬件系統(tǒng)無法執(zhí)行)
軟件的特征
特征 | 表現(xiàn) |
---|---|
軟件是無形產品 | 表現(xiàn)為程序及文檔,電子化的腦力勞動的結果,非有形可見的物質產品 |
軟件生產無明顯制造過程 | 設計-開發(fā)過程的結果,沒有物質產品的制造過程,可以大量復制 |
軟件不會“磨損” | 儀器、設備等物質產品在使用過程中會產生磨損、損耗-折舊,軟件不會損耗,但可能需要“維護”以保持穩(wěn)定性,“修改”以滿足硬件系統(tǒng)的變化、或者實現(xiàn)新的功能 |
大多數(shù)軟件是定制的 |
專用軟件:面向特定的專業(yè)領域、完成指定范圍、類型的數(shù)據(jù)處理任務-如圖像處理軟件, 通用軟件:通用性不是絕對的,如操作系統(tǒng)、office |
對計算機硬件依賴性 | 軟件根植于硬件系統(tǒng)之上,并需操作系統(tǒng)支持才能運行 |
軟件的復雜性 | 與軟件設計、開發(fā)相關的人的因素、物的因素變化多端 |
軟件的保護與授權
軟件的法律保護
- 根據(jù)《計算機軟件保護條例》的規(guī)定,計算機軟件著作權歸屬軟件開發(fā)者。
- 計算機軟件作為一種知識產品,要獲得法律保護,必須具備原創(chuàng)性、可感知性、可再現(xiàn)性。
軟件許可
- 專屬軟件
- 自由軟件
- 共享軟件
- 免費軟件
- 公共軟件
軟件工程
軟件危機
軟件危機的概念
- 軟件危機(software crisis) 是指在計算機軟件開發(fā)、使用與維護過程中遇到的一系列嚴重問題。
- 軟件危機主要表現(xiàn)在:
- 對軟件開發(fā)成本和進度的估計不準確;
- 軟件產品不能完全滿足用戶的需求;
- 沒有確保軟件質量的體系和措施,開發(fā)的軟件可靠性差;
- 軟件可維護性差;
- 開發(fā)過程無完整、規(guī)范的文檔資料;
- 軟件開發(fā)速度,落后于計算機應用的普及和發(fā)展速度;
- 軟件成本在計算機系統(tǒng)總成本中所占比例逐年上升。
產生軟件危機的原因
- 需求難以明確且頻繁變更。
- 軟件開發(fā)的管理困難。
- 軟件開發(fā)獨有特點造成開發(fā)困難。
- 軟件開發(fā)技術落后。
- 文檔的重要性往往被忽視。
- 軟件需求快速發(fā)展。
軟件工程的概念
軟件工程的定義
- 軟件工程是應用工程學、計算機科學、數(shù)學及管理科學等原理開發(fā)軟件的工程。軟件工程以提高質量,降低成本為目的,借鑒傳統(tǒng)工程學的原則、方法完成軟件設計、開發(fā)、制造的全過程。其中,計算機科學、數(shù)學用于構造模型和設計算法,工程科學用于制定規(guī)范、設計范型(paradigm)、評估成本及權衡時間,管理科學用于計劃、資源、質量、成本等管理。
軟件工程基本原理
(1)用分階段的生命周期計劃嚴格管理開發(fā)過程
(2)堅持進行階段評審
(3)實行嚴格的產品控制
(4)采用現(xiàn)代程序設計技術
(5)應能清楚地審查結果
(6)合理安排軟件開發(fā)小組的人員
(7)必須靈活不斷地改進軟件工程實踐
軟件工程框架
- 軟件工程的框架可概括為目標、過程和原則。
條目 | 說明 |
---|---|
軟件工程目標 | 生產具有正確性、可用性和成本合宜的產品。 |
軟件工程過程 | 指生產一個最終滿足需求且達到工程目標的軟件產品所需要的步驟。 |
軟件工程原則 | 包括圍繞工程設計、工程支持和工程管理所提出的基本規(guī)范。 |
1)采用合適的設計方法
2)選取適宜的開發(fā)模型
3)提供高質量的工程支撐
4)重視軟件工程的管理
軟件工程三要素
- 軟件工程的三要素包括 過程,方法,工具
軟件工程方法學
軟件工程方法
結構化方法
- 其基本思想是:把一個復雜問題的求解過程分階段進行,而且這種分解是自頂向下,逐層分解,使得每個階段處理的問題都控制在人們容易理解和處理的范圍內。
方面 | 表現(xiàn) |
---|---|
問題的規(guī)模上 | 由大到小 |
問題的復雜程度上 | 由繁到簡 |
解決問題的策略方面 | 分而治之 |
數(shù)學模型 | 大問題劃分為若干性質相同的小問題,由若干相同或類似的小問題的解決方案形成原始大問題的解決方案,小問題的解決方案由若干功能獨立的模塊構成 |
- 結構化方法將軟件生命周期的全過程依次劃分為若干個階段,采用結構化技術來完成每個階段的任務。其特點是強調自頂向下順序地完成軟件開發(fā)的各階段任務。
面向對象方法
- 面向對象方法在概念和表示方法上的一致性,保證了各項開發(fā)活動之間的平滑過渡。
- 面向對象開發(fā)方法主要有Booch方法、Coad方法、OMT方法以及UML等。
形式化方法
- 形式化方法以數(shù)學為基礎,其目標是建立精確的、無二義性的語義,對系統(tǒng)開發(fā)的各個階段進行有效的描述,使系統(tǒng)的結構具有先天的合理性、正確性和良好的維護性,能較好地滿足用戶需求。
軟件工程工具
- 軟件工程工具為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。軟件設計與開發(fā)的不同階段對應不同的工具,包括需求分析工具、設計工具、實現(xiàn)工具、測試工具、維護工具、配置工具等。軟件工具的功能是在軟件開發(fā)各個階段幫助開發(fā)者控制開發(fā)中的復雜性,提高工作質量和效率。
軟件工程過程
- 軟件工程過程是指開發(fā)軟件產品的一組活動及其結果,即人們用于開發(fā)和維護軟件及其相關過程的一系列活動,包括軟件工程活動和軟件管理活動。
軟件生命周期
軟件生命周期概念
- 軟件生命周期指的是從軟件思想萌芽到軟件產品消亡的整個時間階段;軟件產品從形成概念開始,經過開發(fā)、運行和維護,直到最終被廢棄的全過程,稱為軟件生命周期(Software-Life-Cycle,SLC)。
軟件定義階段
- 軟件定義階段的任務是**確定軟件開發(fā)工程必須完成的總目標,確定工程的可行性,導出實現(xiàn)工程目標應該采用的策略方案及系統(tǒng)必須完成的功能,估計完成該項工程需要的資源和成本,并且制定工程進度表。**這個階段的工作通常由系統(tǒng)分析員和用戶共同完成。
- 軟件定義階段集中于解決“做什么”,通常包括三個步驟,即問題定義、可行性研究和需求分析。
(用戶提出軟件需求,系統(tǒng)分析人員根據(jù)用戶需求歸納出若干問題-建模,模型求解方案)
軟件開發(fā)階段
- 軟件開發(fā)階段集中于“如何做”,通常包括四個步驟:
- 概要設計
- 詳細設計
- 軟件實現(xiàn)
- 軟件測試(軟件開發(fā)是按照需求分析的要求,由抽象到具體,逐步生成軟件的過程。
軟件支持階段
- 軟件支持階段關注于“變化”(用戶需求變化,軟件隨之變化),其主要任務是使軟件持久地滿足用戶的需要。具體地說,當軟件在運行過程中發(fā)現(xiàn)錯誤時應該加以改正;當環(huán)境改變時應該修改軟件以適應新的環(huán)境;當用戶有新要求時應該及時改進軟件以滿足用戶的新需要。軟件支持階段通常包括軟件運行、軟件維護。
軟件生命周期模型
瀑布模型
- 瀑布模型(waterfall model)是一種線性順序模型,也稱為“傳統(tǒng)生命周期”。
特點 | 說明 |
---|---|
階段間具有順序性和依賴性 | 每階段都有明確的前驅及后繼,順序不可顛倒,前驅階段的輸出直接影響后繼階段的輸入,而后繼階段的工作依賴于前驅階段的成果 |
推遲實現(xiàn)的觀點 | 高度重視編碼之前各階段的工作質量,在時間允許的情況下盡可能推遲軟件實現(xiàn)階段的工作,否則可能會因前期工作遺留問題導致大量的返工性重復勞動 |
質量保證的觀點 | 各階段相對獨立,階段性成果責任明確,質量可控 |
演化模型
- 演化模型(evolutionary model)又稱原型模型,主要針對事先不能完整定義需求的軟件項目開發(fā)。(具有明顯的周期性迭代特征)
文章來源:http://www.zghlxwxcb.cn/news/detail-808599.html
增量模型
- 增量模型(incremental model)融合了瀑布模型的基本成分(重復應用)和原型實現(xiàn)的迭代特征,該模型采用隨著日程時間的進展而交錯的線性序列,每一個線性序列產生軟件的一個可發(fā)布的“增量”。
螺旋模型
- 螺旋模型(spiral model)是瀑布模型與演化模型相結合,并增加兩者所忽略的風險分析而產生的一種模型。螺旋模型將開發(fā)劃分為制定計劃、風險計劃、實施開發(fā)和客戶評估四類活動。
文章來源地址http://www.zghlxwxcb.cn/news/detail-808599.html
噴泉模型
- 噴泉模型(fountain model)是一種以用戶需求為動力、以對象為驅動的模型,主要用于描述面向對象的軟件開發(fā)過程。
微軟公司軟件開發(fā)周期
階段 | 工作 |
---|---|
規(guī)劃階段 | 在產品的規(guī)劃階段要做三件事:擬定基于客戶數(shù)據(jù)的目標描述、基于目標描述的規(guī)格/特性說明和基于規(guī)格說明和特性優(yōu)先級制定的進度表。 |
設計階段 | 在設計階段,程序經理根據(jù)產品遠景目標,完成產品的功能特性的規(guī)格說明書的設計,并確定產品開發(fā)的主要進度表。 |
開發(fā)階段 | 在產品開發(fā)階段,開發(fā)人員負責根據(jù)產品功能特性規(guī)格說明書的要求,完成產品的開發(fā)工作。 開發(fā)階段的主要工作是完成產品中所有組件的開發(fā)工作(包括代碼和文檔),此外還包括審核設計文檔、安裝并配置開發(fā)環(huán)境、代碼檢入工作、每日產品生成以及管理Bug(漏洞))數(shù)據(jù)庫等。 |
穩(wěn)定階段 | 穩(wěn)定階段也稱為測試階段,或QA階段。 |
發(fā)布階段 | 項目組發(fā)布產品或解決方案,穩(wěn)定發(fā)布過程,并將項目移交到運營和支持人員手中,以獲得最終用戶對項目的認可。 |
補充題
- 軟件工程的出現(xiàn)主要是由于( 軟件危機的出現(xiàn) )
- 軟件工程的提出起源于軟件危機,而其目的應該是最終解決軟件的( 生產工程化 ) 問題
- 在軟件研制過程中,CASE是指( 計算機輔助軟件工程 )
- 在結構化方法中,軟件功能分解屬于軟件開發(fā)中的( 總體設計 )
- 結構化分析方法就是面向( 數(shù)據(jù)流 ) 的自頂向下逐步求精進行需求分析的方法,其基本思想是軟件功能的分解和抽象
- 軟件開發(fā)的結構化分析方法,常用的描述軟件功能需求的工具是(數(shù)據(jù)流圖、數(shù)據(jù)字典)
- 在軟件生命周期中,耗費時間最長的是(維護階段)
- 軟件工程經驗證明軟件開發(fā)中要掌握40-20-40規(guī)則,它強調了軟件開發(fā)中( 分析、設計和測試 )的比重
- 概要設計的結果是提供一份( ** 模塊說明書**)
- 螺旋模型是在瀑布模型和演化模型的基礎上增加了風險分析活動。
- 軟件的生產經歷了程序設計、程序系統(tǒng)和 (軟件工程) 3個階段
- 軟件文檔是軟件工程實施中的重要成分,它不僅是軟件開發(fā)的各階段的重要依據(jù),而且也影響軟件的 (可維護性) 。
- 若網絡中很多用戶都需要安裝使用同一軟件時,則應購買該軟件的(許可證)
- 軟件工程的目的是成功地建造大型的軟件系統(tǒng),主要內容是軟件開發(fā)技術和 (軟件工程管理) 兩方面
- 軟件開發(fā)方法學的主要目的是克服軟件手工生產,使軟件開發(fā)能進入工程化和(規(guī)范化) 的環(huán)境
- (問題定義)階段的任務是確定軟件系統(tǒng)所要解決的問題
- 軟件概要設計的成果是(軟件設計說明書)
- (詳細設計)階段主要完成的任務是確定每個模塊的具體執(zhí)行過程
- 基本的軟件測試包括單元測試、(集成測試) 和驗收測試。
- 軟件設計包括 (概要設計) 和詳細設計兩個階段
- 在演化模型中,通常把第一次試驗性開發(fā)出的軟件稱為(原型)
- 增量模型與原型實現(xiàn)不一樣的是其 (可操作性) ,強調每一個增量均發(fā)布一個產品
- 常見的軟件開發(fā)模型中, (噴泉) 模型主要用來描述面向對象的軟件開發(fā)過程
- UML是 (統(tǒng)一建模語言)
- CMM模型是指(軟件能力成熟度模型)
- CMM模型提供了5個級別,分別是 (初始級,可重復級,確定級,管理級,優(yōu)化級)
- 為了保護軟件開發(fā)者的權益,我國已制定了一些與計算機軟件相關的法律,目前計算機軟件的法律保護手段主要有3種,其中包括(專利法 著作權法 商業(yè)秘密法)
到了這里,關于計算機導論10-軟件與軟件工程的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!