軟件的本質

對於軟件本質就不多說,因爲定義比較多,也不能完全的理解,只能說提出一些問題。

1.軟件開發面臨的問題:

  1. 爲什麼軟件需要如此長的開發時間
  2. 爲什麼開發成本居高不下
  3. 爲什麼在將軟件交付顧客使用之前,我們無法找到所有的錯誤
  4. 爲什麼維護已有的程序要花費如此多的時間和人工
  5. 爲什麼軟件開發和維護的進度仍舊難以度量

2.軟硬件失效圖:
在這裏插入圖片描述
從圖中我們可以看出不斷的變更是軟件退化的根本原因。

3.軟件應用領域:

  1. 系統軟件-一整套服務於其他程序的程序。
  2. 應用軟件-解決特定業務需要的獨立應用程序。
  3. 工程/科學軟件-‘數值計算‘類程序
  4. 嵌入式軟件
  5. 產品線軟件-爲多個不同用戶的使用提供特定功能。
  6. Web/移動App
  7. 人工智能軟件

4.遺留軟件
對於一些老舊的系統。他們不斷的改變適應現在的需求,對於這類軟件維護代價高昂,且系統演化風險較高。同時質量也比較差,可擴展性低。可讀性差等特點讓人十分頭疼。但是又不能簡單的去替換因爲成本高,涉及到核心功能點。
最合理的處理方式就是什麼都不做,至少在其不得不進行重大變更前什麼也不做。如果遺留軟件可以滿足用戶的需求且可靠的運行,那麼他就是合理的。但是由於一些原因導致需要變化。

  1. 軟件需要進行適應性調整,從而可以滿足新的計算環境或者技術的需求
  2. 軟件必須升級以實現新的商業需求
  3. 軟件必須擴展以使之具有與更多新的系統和數據庫互操作能力
  4. 軟件架構必須進行改建以使之能適應不斷演化的計算環境
    當這些變更發生時,就需要再次修改來適應現在的需求。
    當代軟件工程的目標是"修改在進化論理論上建立的方法論"即軟件系統不斷經歷變更,新的系統從舊的系統中建立起來,並且…新舊所有系統都必須具有互操作性和協調性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章