軟件工程 概述

2021-10-23 10:17 更新

讓我們先了解一下軟件工程的含義。該術語是由兩個詞語組成的,軟件工程。

軟件 不僅僅是一個程序代碼。程序是一個可執(zhí)行的代碼,它提供了一些計算的目的。 軟件被認為是集合可執(zhí)行的程序代碼,相關庫和文檔的軟件。當滿足一個特定的要求,就被稱為軟件產(chǎn)品。

工程?是所有有關開發(fā)的產(chǎn)品,使用良好定義的,科學的原理和方法。

軟件工程?是一門工程分支使用定義良好的科學原理,方法和程序開發(fā)軟件產(chǎn)品。軟件工程的成果是一個高效,可靠的軟件產(chǎn)品。

定義

IEEE對于軟件工程的定義:

(1) 將系統(tǒng)、規(guī)范、可量化的方法應用于軟件的開發(fā)、運行和維護;也就是說,工程在軟件中的應用。
(2) 研究方法如上陳述。

Fritz Bauer(德國計算機科學家)對軟件工程的定義:

軟件工程是建立和使用合理的工程原理,以便經(jīng)濟地獲得可靠且在真是機器上有效工作的軟件。

軟件演化

運用軟件工程的原理和方法開發(fā)軟件產(chǎn)品的過程被稱為軟件演化。此處包含的軟件的初始開發(fā)及維護和更新,直到所需的軟件產(chǎn)品的開發(fā),其滿足預期需求。

演化從需求收集過程開始。之后,開發(fā)人員創(chuàng)建預期軟件的原型,并將其展示給用戶,以便在軟件產(chǎn)品開發(fā)的早期階段獲得他們的反饋意見。用戶提出的建議,在這幾個連續(xù)的更新和維護不斷變化太大。這個過程改變了原來的軟件,直到所需的軟件來完成。

即使用戶手中已有所需的軟件,先進的技術和不斷變化的需求迫使軟件產(chǎn)品做出相應的改變。從頭開始重新創(chuàng)建軟件并與需求一對一是不可行的。唯一可行且經(jīng)濟的解決方案是更新現(xiàn)有的軟件,使其符合最新要求。

軟件演化規(guī)律

Lehman 給了軟件演化規(guī)律。他把軟件分為三個不同的類別:

  • S型(靜態(tài)型):?這是一款嚴格按照定義的規(guī)范和解決方案工作的軟件。解決方法和實現(xiàn)它的方法,都在編碼之前立即被理解。S型軟件至少受到的更高最少,因此這是最簡單的。例如,用于數(shù)學計算的計算器程序。
  • P-型 (實用型): 這是一個程序集合的軟件。這是由程序可以做什么來定義的。在這個軟件中,規(guī)范可以描述,但解決方案并不明顯。例如,游戲軟件。
  • E-型(嵌入型):?該軟件緊密配合實際環(huán)境的要求。這種軟件具有高度的進化,因為在現(xiàn)實世界的情況下,法律,稅收等會發(fā)生各種變化。例如,網(wǎng)上交易軟件。

E型軟件演化

Lehman 給了八項法律為E型軟件演化:

  • 不斷變化 -?E型軟件系統(tǒng)必須不斷適應現(xiàn)實世界的變換,否則它逐漸變得不那么有用。
  • 日益復雜 -?隨著 E 類軟件系統(tǒng)的發(fā)展,其復雜性往往會增加,除非進行維護或減少工作。
  • 維護熟悉度 -?必須不惜任何代價保留對軟件的熟悉或關于它是如何開發(fā)的、為什么以這種特定方式開發(fā)等的知識,以便在系統(tǒng)中實施更改。
  • 持續(xù)增長 -?為了使E型系統(tǒng)旨在解決某些業(yè)務問題,其實施變化的規(guī)模根據(jù)業(yè)務生活方式的變幻而增長。
  • 降低質量 -?除非嚴格維護并適應不斷變化的操作環(huán)境,否則 E 類軟件系統(tǒng)的質量會下降。
  • 反饋系統(tǒng) -?E型軟件系統(tǒng)構成多環(huán)回路,多級反饋系統(tǒng),必須如此對待才能成功修改或改進。
  • 自我調節(jié) -?E型系統(tǒng)的演化過程是自我調節(jié),產(chǎn)品分布和過程措施接近正常。
  • 組織穩(wěn)定性 -?在不斷變化的 E 型系統(tǒng)中,平均有效的全球活動率在產(chǎn)品的整個生命周期內(nèi)是不變的。

軟件范式

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

編程模式是軟件設計模式的一個子集是進一步的軟件開發(fā)模式的一個子集。

軟件開發(fā)范式

這種模式被稱為軟件工程范例,所有有關軟件開發(fā)工程的概念被應用。它包括各種研究和需求收集,這有助于軟件產(chǎn)品來構建。

  • 需求收集
  • 設計軟件
  • 編程

軟件設計模式

這一模式是軟件開發(fā)的一部分,包括:

  • 設計
  • 維護
  • 編程

編程范式

這一模式是密切相關的軟件開發(fā)編程方面。這包括:

  • 編碼測試
  • 整合

軟件工程的需求

軟件工程的需要,因為較高的利率變化的用戶需求及環(huán)境上的軟件工作。

  • 大型軟件 -?建造一堵墻比建造房屋或建筑物更容易,同樣,隨著軟件的規(guī)模變大,工程必須采取措施為其提供科學的過程。
  • 可擴展性 -?如果軟件過程不是基于科學和工程概念,那么重新創(chuàng)建軟件比擴展現(xiàn)有軟件更容易。
  • 成本 -?由于硬件行業(yè)已經(jīng)展示了它的技能和龐大的制造業(yè),降低了計算機和電子硬件的價格。但是,如果不采用適當?shù)牧鞒?,軟件成本仍然很高?/li>
  • 動態(tài)性 -?軟件的不斷發(fā)展和適應在很大程度上取決于用戶工作的環(huán)境。如果軟件的性質總是在變化,則需要在現(xiàn)有軟件中進行新的增強。這就是軟件工程發(fā)揮良好作用的地方。
  • 質量管理 -?更好的軟件開發(fā)過程提供更好質量的軟件產(chǎn)品。

優(yōu)秀的軟件特性

一個軟件產(chǎn)品可以判斷通過其功能和多少用戶友好。這個軟件必須滿足以下功能:

  • 操作
  • 過渡
  • 維護

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

操作

這告訴我們?nèi)绾我约败浖牟僮鞴ぷ?。它可以在被測定:

  • 預算
  • 可用性
  • 正確性
  • 功能
  • 可靠性
  • 安全
  • 安全性

過渡

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

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

保養(yǎng)

這講述一個軟件以及如何有能力維護自己的每一個變化的環(huán)境中:

  • 模塊化
  • 可維護性
  • 靈活性
  • 可擴展性

總之,軟件工程是計算機科學的一個分支,它使用定義明確的工程概念來產(chǎn)生高效、持久、可擴展、預算內(nèi)和準時的軟件產(chǎn)品。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號