单关配app
首頁 > 眾包知識 > IT/軟件  > 軟件開發
軟件工程
軟件工程
是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及程序設計語言、數據庫、軟件開發工具、系統平臺、標準、設計模式等方面。下面是時間財富網小編為您搜集的軟件工程相關知識,希望對您有所幫助。...
1什么是軟件工程
    BarryBoehm:運用現代科學技術知識來設計并構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。IEEE:在軟件工程術語匯編中的定義:軟件工程是:1.將系統化的、嚴格約束的、可量化的方法應用于軟件的開發、運行和維護,即將工程化應用于軟件;2.在1中所述方法的研究

    FritzBauer:在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。

    《計算機科學技術百科全書》:軟件工程是應用計算機科學、數學、邏輯學及管理科學等原理,開發軟件的工程。軟件工程借鑒傳統工程的原則、方法,以提高質量、降低成本和改進算法。其中,計算機科學、數學用于構建模型與算法,工程科學用于制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用于計劃、資源、質量、成本等管理。

    比較認可的一種定義認為:軟件工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟件,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。ISO 9000對軟件工程過程的定義是:軟件工程過程是輸入轉化為輸出的一組彼此相關的資源和活動。

    運行時,能夠提供所要求功能和性能的指令或計算機程序集合。2.程序能夠滿意地處理信息的數據結構。3.描述程序功能需求以及程序如何操作和使用所要求的文檔。以開發語言作為描述語言,可以認為:軟件=程序+數據+文檔。 

.......


查看全文 >>
2軟件工程包含哪些內容
    業務需求反映了組織機構或客戶對系統、產品高層次的目標要求,通常在項目定義與范圍文檔中予以說明。用戶需求描述了用戶使用產品必須要完成的任務,這在使用實例或方案腳本中予以說明。 

    功能需求定義了開發人員必須實現的軟件功能,使用戶利用系統能夠完成他們的任務,從而滿足了業務需求。 非功能性的需求描述了系統展現給用戶的行為和執行的操作等,它包括產品必須遵從的標準、規范和約束,操作界面的具體細節和構造上的限制。 

    需求分析報告報告所說明的功能需求充分描述了軟件系統所應具有的外部行為。“需求分析報告”在開發、測試、質量保證、項目管理以及相關項目功能中起著重要作用。 

    詳細設計包括內容:模塊說明。說明該模塊需要實現什么功能,還有設計要點。流程邏輯。用流程圖說明該模塊的處理過程。算法。不一定有,如果涉及一些比較特殊的算法或關鍵模塊,就寫一下算法的偽代碼或用流程圖說明。

    限制條件。該模塊的功能有哪些限制,比如用戶ID不能重復,只能查詢自己權限范圍內的用戶。輸入項。每個子模塊可以看做一個”方法“,我傳給你什么,你給我輸出什么。比如刪除用戶,輸入項就是用戶ID。

.......


查看全文 >>
3軟件工程的發展過程
    程序設計階段,程序設計階段出現在1946年~1955年。此階段的特點是:尚無軟件的概念,程序設計主要圍繞硬件進行開發,規模很小,工具簡單,無明確分工(開發者和用戶),程序設計追求節省空間和編程技巧,無文檔資料(除程序清單外),主要用于科學計算。

    軟件設計階段,軟件設計階段出現在1956年~1970年。此階段的特點是:硬件環境相對穩定,出現了“軟件作坊”的開發組織形式。開始廣泛使用產品軟件(可購買),從而建立了軟件的概念。隨著計算機技術的發展和計算機應用的日益普及,軟件系統的規模越來越龐大,高級編程語言層出不窮,應用領域不斷拓寬,開發者和用戶有了明確的分工,社會對軟件的需求量劇增。但軟件開發技術沒有重大突破,軟件產品的質量不高,生產效率低下,從而導致了“軟件危機”的產生。

    軟件工程階段,自1970年起,軟件開發進入了軟件工程階段。由于“軟件危機”的產生,迫使人們不得不研究、改變軟件開發的技術手段和管理方法。從此軟件產生進入了軟件工程時代。此階段的特點是:硬件已向巨型化、微型化、網絡化和智能化四個方向發展,數據庫技術已成熟并廣泛應用,第三代、第四代語言出現;第一代軟件技術:結構化程序設計在數值計算領域取得優異成績;第二代軟件技術:軟件測試技術、方法、原理用于軟件生產過程;第三代軟件技術:處理需求定義技術用于軟件需求分析和描述。

.......


查看全文 >>
4軟件工程的原理
    玻姆認為,這七條原理是確保軟件產品質量和開發效率的原理的最小集合。它們是相互獨立的,是缺一不可的最小集合;同時,它們又是相當完備的。人們當然不能用數學方法嚴格證明它們是一個完備的集合,但是可以證明,在此之前已經提出的100多條軟件工程準則都可以有這七條原理的任意組合蘊含或派生。

    這一條是吸取前人的教訓而提出來的。統計表明,50%以上的失敗項目是由于計劃不周而造成的。在軟件開發與維護的漫長生命周期中,需要完成許多性質各異的工作。這條原理意味著,應該把軟件生命周期分成若干階段,并相應制定出切實可行的計劃,然后嚴格按照計劃對軟件的開發和維護進行管理。

    統計結果顯示:大部分錯誤是在編碼之前造成的,大約占63%錯誤發現的越晚,改正它要付出的代價就越大,要差2到3個數量級。 因此,軟件的質量保證工作不能等到編碼結束之后再進行,應堅持進行嚴格的階段評審,以便盡早發現錯誤。

    實行嚴格的產品控制開發人員最痛恨的事情之一就是改動需求。但是實踐告訴我們,需求的改動往往是不可避免的。這就要求我們要采用科學的產品控制技術來順應這種要求。也就是要采用變動控制,又叫基準配置管理。當需求變動時,其它各個階段的文檔或代碼隨之相應變動,以保證軟件的一致性。

.......


查看全文 >>
5軟件工程的結構
    結構圖的基本成分結構圖的基本成分有模塊、調用和數據。結構圖和層次圖基本上是大同小異,主要是用來描繪軟件結構的一種圖形工具,圖中設有很多方框,一個方框就代表一個模塊,框內注明模塊的名字或主要功能;方框之間的箭頭(或直線)用來表示模塊的調用關系。在通常情況下我們會在結構圖中用箭頭注釋一下表示模塊在調用過程中信息的來回傳遞。我們可以根據箭頭的β部形狀標明某種信息,認定一種形狀作為一種信息符號,自己只要按箭頭形狀就可以區分傳遞的信息是數據還是控制信息了。比如:β部是空心圓就表示傳遞的是數據,實心圓就表示傳遞的是控制信息。

    附加符號結構圖不僅僅只是一些基本符號,其實還有不少附加符號,它是用來表示模塊的選擇調用或循環調用的。其實,層次圖和結構圖對于模塊調用次序方面要求的并不嚴格。再畫模塊方面很多人習慣按調用次序從左到右的方法畫模塊,其實又û有規定一定要這樣,出于其他方面的考慮(例如為了減少交叉線),我們完全可以不按這種次序畫,還有就是在層次圖和結構圖中并不指明什ô時候調用下層模塊。一般情況下上層模塊中除了調用下層模塊的語句之外還有其他語句,到底是先執行調用下層模塊的語句還是先執行其他語句,絲毫不在圖中指明。事實上,層次圖和結構圖往往只表明一個模塊用來調用哪些模塊,對于一些模塊內不含其他成分的根本就不作表示。

    信息流的類型在需求分析階段,用SA方法產生了數據流圖。面向數據流的設計能方便地將數據流圖(data flow diagram,DFD)轉換成程序結構圖。DFD中從系統的輸入數據流到系統的輸出數據流的一連串連續變換形成了一條信息流。DFD的信息流大體可分為兩種類型,就是中心變換流和事務流。

.......


查看全文 >>
6軟件工程的方法
    結構化開發方法是由E.Yourdon 和 L.L.Constantine 提出的,即所謂的SASD 方 法, 也可稱為面向功能的軟件開發方法或面向數據流的軟件開發方法。

    Yourdon方法是80年代 使用最廣泛的軟件開發方法。它首先用結構化分析(SA)對軟件進行需求分析,然后用結構化設計(SD)方法進行總體設計,最后是結構化編程(SP)。它給出了兩類典型的軟件結構(變換型和事務型)使軟件開發的成功率大大提高。

    面向數據結構的軟件開發方法Jackson方法是最典型的面向數據結構的軟件開發方法,Jackson方法把問題分解為可由三種基本結構形式表示的各部分的層次結構。三種基本的結構形式就是順序、選擇和重復。三種數據結構可以進行組合,形成復雜的結構體系。這一方法從目標系統的輸入、輸出數據結構入手,導出程序框架結構,再補充其它細節,就可得到完整的程序結構圖。這一方法對輸入、輸出數據結構明確的中小型系統特別有效,如商業應用中的文件表格處理。該方法也可與其它方法結合,用于模塊的詳細設計。

    面向問題的分析法PAM(Problem Analysis Method)是80年代末由日立公司提出的一種軟件開發方法。 它的基本思想是考慮到輸入、輸出數據結構,指導系統的分解,在系統分析指導下逐步綜 合。這一方法的具體步驟是:從輸入、輸出數據結構導出基本處理框;分析這些處理框之間的先后關系;按先后關系逐步綜合處理框,直到畫出整個系統的PAD圖。這一方法本質上是綜合的自底向上的方法,但在逐步綜合之前已進行了有目的的分解,這個目的就是充分考慮系統的輸入、輸出數據結構。PAM方法的另一個優點是使用PAD圖。這是一種二維樹形結構圖,是到目前為止最好的詳細設計表示方法之一。當然由于在輸入、輸出數據結構與整個系統之間同樣存在著鴻溝,這一方法仍只適用于中小型問題。

.......


查看全文 >>
軟件開發方案
免費預約
相關知識
應用程序發展趨勢應用程序常見問題應用程序范圍應用程序的組成應用程序的運行模式應用程序的分類軟件開發工具移動工具軟件開發工具階段分類軟件開發工具包軟件開發工具在開發生命周期中起到的作用
单关配app 2019篮球世界杯赛程表 大乐透玩法中奖规则 龙虎和平台 大乐透篮球有几个数字 dnf怎么搬砖挣钱 飞五游戏通比牛牛 双人麻将 乐翻二人麻将手机版 北京pk10官网开奖 天津时时五星综合图走势图 彩票打印软件 博彩工作 天天二八杠游戏下载 重庆时时彩破译 福利票福建时时 七星彩杀号定胆100%准