軟體工程概述


讓我們先了解一下軟體工程的代表。該術語是由兩個詞語,軟體與工程.

軟體i不僅僅是一個程式程式碼. 程式是一個可執行的程式碼,它提供了一些計算的目的. 軟體被認為是集合可執行的程式程式碼,相關庫和文件的. 軟體,當一個特定的要求,取得了被稱為 軟體產品.

工程 另一方面,工程是所有有關開發的產品,使用良好定義的,科學的原理和方法.

軟件工程

軟體工程 軟體工程是一門工程分支使用定義良好的科學原理,方法和程式開發軟體產品.軟體工程的結果是一個高效,可靠的軟體產品.

定義

IEEE定義了軟體工程:

(1) 一個系統的紀律,量化的開發,執行和維護軟體的應用;這是工程軟體的應用.

(2) 對方法的研究是在上述宣告.

Fritz Bauer,德國電腦科學家,定義了軟體工程的:

軟體工程是合理的工程原理建立和使用,以獲得經濟上的軟體,是可靠的和真實的機器有效地工作.

軟體演化

運用軟體工程的原理和方法開發軟體產品的過程被稱為 軟體演化. 此處包含的軟體的初始開發及維護和更新,直到所需的軟體產品的開發,其滿足預期需求.

軟件演化

進化開始從需求收集過程。經過開發人員建立的目的軟體的原型,並顯示給使用者,以獲得他們的反饋意見,在軟體產品開發的早期階段。使用者提出的變化,在這幾個連續的更新和維護不斷變化太大。這個過程改變了原來的軟體,直到所需的軟體來完成.

甚至在使用者已所需的軟體在手,推進技術和不斷變化的需求迫使軟體產品相應地改變。重新從頭開始建立軟體和走一對單用的要求是不可行的。唯一可行的和經濟的解決方案是,以更新現有的軟體,以便它匹配的最新要求.

軟體演化規律

Lehman 給了軟體演化規律。他把軟體分為三個不同的類別:

  • S型(靜態型) - 這個軟體根據定義的 規範和解決方案原理工作. 我們可以理解編碼前兩溶液和方法。 S型軟體至少受到改變,因此這是最簡單的了。例如,用於數學計算的計算器程式.

  • P-型 (實用型) - 這個軟體有多個 程式. 它的定義是什麼程式可以做.在這個軟體中,規範可以被描述,但該溶液是不明顯瞬間。例如,遊戲軟體.

  • E-型(嵌入型) - 該軟體的工作原理密切按照真實世界 環境的要求. 這種軟體具有演化程度高,在現實世界中的情況很多變化都是存在的,例如法律,稅收等。例如,網上交易軟體

E型軟體演化

Lehman 給了八項法律為E型軟體演化 -

  • 不斷變化 - E型軟體系統必須繼續適應現實世界的改變,否則它逐漸變得不太有用

  • 日益複雜 - 作為E型軟體系統的演化,它的複雜性增大的傾向,除非工作完成後,以維持或降低

  • 熟悉的養護 - 必須了解有關該軟體,它是如何開發的,所以它被以這種方式等。在任何成本開發,它必須被保留,以實現系統的變化

  • 持續增長 - 為了使E型系統,旨在解決一些業務問題,實現改變其大小根據業務的生活方式的改變增長

  • 降低品質 - 在品質上E型軟體系統拒絕,除非嚴格管理和適應不斷變化的經營環境

  • 反饋系統 - E型軟體系統構成的多環,多級反饋系統,並且必須被視為這樣可以成功地修改或改進

  • 自我調節 - E型系統的演化過程是自我調節與產品和工藝方法的分布是正常的

  • 組織穩定性 - 在不斷變化的E型系統的平均有效的全球活動率是不變的在產品的生命週期

軟體正規化

軟體範例參考方法和步驟,在設計的軟體,該軟體被執行。有提出許多方法,並在今天的工作,但我們需要看到在軟體工程這些正規化立場。這些可以組合成各種類別,雖然每個這些被包含在彼此:

軟件範式

程式設計模式是軟體設計模式的一個子集是進一步的軟體開發模式的一個子集。

軟體開發正規化

這種模式被稱為軟體工程範例,所有有關軟體開發工程的概念被應用。它包括各種研究和需求收集,這有助於軟體產品來構建。 –

  • 需求收集
  • 設計軟體
  • 程式設計

軟體設計模式

這一模式是軟體開發的一部分,包括 –

  • 設計
  • 保養
  • 程式設計

程式設計正規化

這一模式是密切相關的軟體開發程式設計方面。這包括 –

  • 編碼
  • 測試
  • 整合

軟體工程的需求

軟體工程的需要,因為較高的利率變化的使用者需求及環境上的軟體工作.

  • 大型軟體 - 這是比較容易建立一堵牆,而不是一所房子或建築,同樣,作為軟體的規模變大的工程有步驟,給它一個科學的過程.

  • 可延伸性 - 如果軟體過程中沒有建立在科學和工程的概念,它會更容易重新建立新的軟體,而不是擴大現有的.

  • 成本 - 硬體行業已經顯示出其能力和龐大的製造具有低了下去,他的價格的計算機和電子硬體。但是,軟體的成本仍然很高,如果合適的工藝不適合.

  • 動態性 - 高成長和適應軟體性質取決於在使用者工作環境。如果軟體的性質總是在變化,新的改進需要在現有的進行。這是軟體工程起到了很好的作用.

  • 品質管理 - 更好的軟體開發過程提供更好品質的軟體產品.

優秀的軟體特性

一個軟體產品可以判斷通過其功能和多少使用者友好。  這個軟體必須滿足以下功能:

  • 操作
  • 過渡
  • 保養

一個精心設計和製作的軟體預計將有以下幾個特點:

操作

這告訴我們如何以及軟體的操作工作。它可以在被測定:

  • 財政預算案
  • 可用性
  • 效率
  • 正確性
  • 功能
  • 可靠性
  • 安全
  • 安全性

過渡

這方面是重要的,當軟體從一個平台轉移到另一個:

  • 可移植性
  • 互操作性
  • 可重用性
  • 適應性

保養

這講述一個軟體以及如何有能力維護自己的每一個變化的環境中:

  • 模組化
  • 可維護性
  • 靈活性
  • 可延伸性

總之,軟體工程是電腦科學的一個分支,它使用須出示有效的,持久的,可延伸的,定義良好的工程概念在預算和時間的軟體產品.