2013年7月16日 星期二

軟體工程 Chapter 1

第一章 導論

  軟體是一種抽象而且無形的東西,它不受物質的限制、也不會受到物理定律或製造程序的控管。
  軟體的潛力不會受到實體的限制,但很容易變得極度複雜。
  開發資訊系統、儀器控制器、電腦遊戲的做法完全不同,但是都需要軟體工程,而不是同一種工程技術
  軟體故障(software failure)的形成因素:要求越來越多、低估。
   低估:不使用軟體工程方法和技術來撰寫電腦程式是較容易,但開發出來經常是成本高又不可靠。

1.1 專業軟體的開發(圖1.1、圖1.2重要)
  本意:為了支援專業軟體的開發,而不是個人的程式設計。
  專業的軟體是設計給其他人而不是給開發它的人使用的,通常是由團隊而非個人來開發;而且在整個生命週期過程中會持續進行維護和修改。
  軟體:包括程式本身、讓程式正常運作所需的相關說明文件和組態設定資料。
  通用產品:由軟體公司所生產的獨立系統,公開銷售給市場上的任何顧客。
  客製化產品:專門為某個客戶特別訂做的系統。

  上課筆記:
   軟體包含三部份:Code、文件(程式規格)、資料結構(含資料庫)
   軟體分兩大類:客製化產品、通用產品(非客製化)
   客製化因有修改需求,須繳交上項三部份,非客製化則不須。

 1.1.1 何謂軟體工程?
  是一門著重在生產軟體各方面知識的工程學科,範圍從最開始的系統規格制訂,到系統上線後的維護階段都包括在內。
   工程學科:受組織與財務的限制,應用適當的理論、方法和工具,提出問題的解決方案,即使沒有適當的理論和方法也會嘗試找出問題的解決方案。
   生產軟體的各方面:包含技術性過程、軟體的專案管理、生產的開發工具、方法和理論。
  軟體工程的重要性:
   1.需要能夠經濟而快速的生產出可靠且值得信任的系統。
   2.使用軟體工程方法和技術來開發軟體系統,通常會比把它當作個人的程式設計專案直接寫程式來得便宜
  在軟體工程中使用的系統化方法有時稱之為軟體程序
  軟體程序:生產軟體產品的一連串活動與相關的成果。
   1.軟體規格制訂:由客戶和工程師共同定義軟體的功能以及運作的限制。
   2.軟體開發
   3.軟體確認(補充:V & V 確認與驗證)
   4.軟體演進:持續修訂軟體。
  以下議題對許多類型的軟體都有影響:
   1.異質性的挑戰:該用何種開發技術來建立值得信賴而又具有彈性能夠處理這些異質問題的軟體。
   2.企業與社會改變的挑戰:讓軟體的推出到客戶面前所需的時間儘量縮短。
   3.保全性與信任度的挑戰:必須確保惡意使用者無法成功攻擊軟體,而且裡面的資訊安全有完整的保障。

 1.1.2 軟體工程多樣性
  對於不同種類的系統要使用不同的軟體工程技術,因為軟體的特性大有不同。
  應用程式種類:
   1.單機應用程式
   2.交談式異動應用程式:經常具有大型的資料儲存區,每次異動都可能存取或更新資料。
   3.嵌入式控制系統
   4.批次處理系統:處理大量的個別輸入,並產生相對應的輸出。
   5.娛樂系統:主要是個人使用,目的是娛樂使用者。
   6.塑模和模擬用的系統:目的是描述自然程序或情況。需要大量計算,而且需要高效能平行系統來執行。
   7.資料收集系統:必須與感應器互動,經常被安裝在不太方便的環境中。
   8.由系統組成的系統
  適用在所有類型的軟體系統上的軟體工程基本概念:
   1.使用某種能被掌控且理解的開發程序。
   2.不管是哪一種系統,可信賴度和效能都是很重要的。
   3.瞭解和管理軟體規格和需求是很重要的。
   4.對現有資源應該儘可能做最有效率的利用。

 1.1.3 軟體工程與Web
  軟體架構的根本變化,已經導Web系統製作方式的改變:
   1.軟體再利用已變成建構Web系統的主要方法。
   2.Web系統應以遞增方式開發和交付。
   3.使用者介面會受限於Web瀏覽器的功能。

1.2 軟體工程的道德議題
  無法律規範,純粹是職業道德:
   1.保密
   2.稱職:不接受無法勝任的工作。
   3.智慧財產權
   4.濫用電腦

1.3 本書案例簡介
  以三種系統當作案例:

 1.3.1 胰島素幫浦控制系統
  嵌入式系統:由軟體控制硬體裝置,且軟體是嵌入在該裝置中。
  議題:實體大小、回應速度、電源管理。
  這是一個安全關鍵(safety-critical)系統,有兩個必要的高階需求一定要達成:
   1.在病患需要時,系統必須能夠傳送胰島素給病患。
   2.系統必須根據目前的血糖程度可靠的傳送正確劑量的胰島素給病患。

 1.3.2 心理保健病患資訊系統
  資訊系統:主要目的在管理資料庫和提供對資料庫的存取。
  議題:保全性、有用程度、隱私、維護資料完整性。
  整體目標:
   1.產生行政管理方面的資訊,讓衛生服務人員可評估其成效是否達到政府的目標。
   2.提供醫療人員適時資訊協助治療病患。
  重要功能:
   1.個人保健管理:系統提供資料摘要功能,可以快速知道他的主要問題,以及之前做過什麼治療。
   2.病患監控:定期監視病患的治療紀錄;追蹤那些已經被隔離的病患,確認有在正確的時間進行法律上要求的檢查。
   3.行政管理報表
  系統的整體設計必須考慮隱私和安全需求。為了確保連不上伺服器時,系統還可以使用,因此需要維護多份資料副本。

 1.3.3 荒野測候站
  以感應器為主的資料收集系統:從一組感應器收集資料,並以某種方式處理資料。
  關鍵需求:可靠性、可維護性。
  系統:
   1.氣象站系統:負責收集天氣資料,並將資料處理的結果傳到資料管理系統中。
    (1)發生故障要回報給管理系統。
    (2)管理系統電力,在有危險的天氣條件下要關閉發電機。
    (3)軟體部分升級時可動態調整組態,故障時可將備用設備切換到系統中。
   2.資料管理與封存系統:從所有測候站收集資料,進行資料處理及分析,並以某個格式封存。
   3.氣象站維護系統:監控測候站系統的運作情況,並提供問題報告。

2013/7/16 12:10 完成編輯

沒有留言:

張貼留言