軟件工程的本質

一 軟件工程的本質

  • 本質:
    • 不一樣抽象層次之間的映射過程。任何軟件系統開發的共同本質在於:從現實空間的需求到計算機空間的軟件代碼之間的映射與轉換。
  • 映射方法:
    • 單步映射與多步映射:在軟件開發過程當中,從需求過程映射到代碼空間採起的方式。顧名思義,單步映射一次性完成,而多步映射須要分紅多布進行。多步映射能夠經過犧牲「時間」來提升「質量」
    • 概念映射與邏輯映射:概念映射是問題空間的概念與解空間的模型化概念之間的的映射;邏輯映射是問題空間的處理邏輯與解空間處理邏輯之間的映射。前者對應與數據結構,後者對應算法。
  • 映射過程:
    • 包括4個部分——需求分析、軟件設計、實現、驗證/肯定。

二 軟件工程所關注的目標

  • 關注對象:
    • 產品:各個抽象層次的產出物;
    • 過程:在各個抽象層次之間進行映射和轉換。
  • 特色:
    • 具備「產品與過程二相性」的特色,即把兩者結合起來去考慮,不能忽略其中任何一方。
  • 關注目標:
    • 功能性需求(FR):軟件所實現的功能達到它的設計規範和知足用戶需求的程度;例如:完備性、正確性、健壯性、可靠性...
    • 非功能性需求(NFR):系統可以完成所指望的工做的性能與質量;例如:效率、可用性、可維護性、可移植性、清晰性、安全性、兼容性、經濟性、商業質量...

三 軟件開發的多角色

  • 顧客企業:
    • 決策者;
    • 終端用戶;
    • 系統管管理員。
  • 軟件開發公司:
    • 決策者;
    • 軟件銷售與市場人員;
    • 諮詢師、需求分析師;
    • 軟件構架師、軟件設計師;
    • 開發人員:開發經理/項目經理、程序員;
    • 維護人員。

四 軟件工程=最佳實踐

  • 緣由:
    • 軟件系統的複雜性、動態性使得高深的軟件理論在軟件開發中變得無用武之地;即便應用理論方法來解決,獲得的結果也每每難以與現實保持一致;所以軟件工程被當作一種時實踐的藝術:
    • 作過越多的軟件項目,犯的錯誤就越少,積累的經驗越多,隨後作項目的成功率就越高;
    • 對新手來講,要經過多實踐、多犯錯來積累經驗,也要多吸取他人的失敗與教訓和成功的經驗。

    當你把全部的錯誤都犯過以後,你就是正確的了。程序員

  • 最佳實踐的例子:
    • 軟件工程的七條原理;
    • 與顧客溝通的最佳實踐原則;
    • IBM RUP最佳實踐原則...

五 軟件工程的四個核心理論概念

  • 複用:
    • 在一個新系統中,大部分的內容是成熟的,只有小部份內容是全新的;
    • 構造新的軟件系統能夠沒必要每次從零開始;
    • 直接使用已經有的軟構體,便可組裝成新的系統;
    • 複用已有的功能模塊,既能夠提升開發效率,也能夠改善新開發過程當中帶來的質量問題。
  • 分治
    • 將複雜問題分解爲若干可獨立解決的簡單子問題,並分別獨立求解,以下降複雜性;以下降複雜性;
    • 而後再將各子問題的解綜合起來,造成最初複雜問題的解。而後再將各子問題的解綜合起來,造成最初複雜問題的解。
  • 折中
    • 不一樣的需求之間每每存在矛盾與衝突,須要經過折中來做出的合理的取捨,找到使雙方均滿意的點。
  • 演化:
    • 軟件系統在其生命週期中面臨各類變化;
    • 核心問題:在設計軟件的初期,就要充分考慮到將來可能的變化,並採用恰當的設計決策,使軟件具備適應變化的能力;
    • 即:可修改性可維護性可擴展性
相關文章
相關標籤/搜索