軟體工程概念

Software Engineering Concepts, Fall 2005

2005秋季
這是一個關於軟體系統工程和軟體開發專案設計議題的閱讀與研討課程。包括軟體工程當前所處的狀態以及過去做了哪些嘗試、哪些是可行或不可行的以及其原因。課程所涉及的內容可能因為每期課程而不同,但主要圍繞這幾方面展開:軟體流程和生命週期;軟體需求和軟體規格;軟體設計原理;軟體測試、正規分析和復查;軟體品質管制和評估;產品和流程控制;COTS和軟體複用;軟體的演進與維護;團隊組織與人員...

指定教科書

課綱與詳述事項

課程重點

本課程重點是課堂講稿和閱讀書目。

 

教學大綱 課程目標

目前,大部分複雜的系統由大量的軟體和數位元件組成,而且今後的比重會越來越大。同時,軟體也成為大型綜合系統發展的關鍵:至少有一半以上的軟體專案因此被取消,或遭受重大的延誤與相關問題。系統工程師和專案經理都未做好應對這項新技術的準備。本課程目標是瞭解建立這樣的系統的難處,以及提供系統工程師、專案經理和軟體工程師工具以及避免這些問題的方法。課程結束後,在需要為一個專案選擇方法時,你可以根據你對目前所執行與軟體工程相關的工作、過去做了哪些嘗試、哪些是可行或不可行的、以及為什麼等因素的瞭解而做出專業的判斷。注意:本課程是講授軟體系統工程的課程,並不是一個標準的軟體工程課程,所以不提供有關程式編輯和開發軟體所需特殊工具等的基礎練習。

 

必須的背景知識

本課程不需要相關的背景知識或必須具備的先決條件。但是,如果有一些基本的程式編輯知識或具備一些系統工程專案經驗將會非常有用。你在課程中學習到的知識可以一起運用到你個人的目標與判斷上。每位同學在學習完本課程之後都會有不同的收穫。

 

閱讀

本課程沒有教科書,但要求的閱讀會是一些仔細挑選出來的材料,包括一些過去發表的重要基礎性論文,此外,還有一些反映最新觀點的近期論文。一些論文是技術性質,另一些則是觀點或評論。由於文獻非常的多,因此在選擇論文時會以它們過去對此領域發展的關聯性或是可以幫助你對目前軟體工程準則下的假設提出看法的能力為遴選根據。

 

作業

沒有程式編輯的作業。我的目標是要提高你們的專業判斷能力而不是如何使用軟體工程的工具和方法,所以,大多數的作業圍繞著評價和闡述展開,而不是特殊技術和工具的使用方法。本課程有兩類作業:每節課開始之前,就每週佈置的論文提交一份簡短(大概半頁到一頁)的摘要,還要寫一份評論(查看以下說明),偶爾需要回答一些與論文主題相關的問題。因為我們在課堂上將會涉及許多關於讀物的討論,不可遲交摘要。沒有考試。以每週摘要的完成情況作為衡量課堂學習的標準。 上課課堂包括講授和討論,有些概念不需要我進行解釋說明,你就可以從閱讀這些材料中得到很好的理解。少數的概念要自己理解比較困難,或者我又找不到與主題相關的良好引導論文,我們就在課堂中解決。所以,參與課堂討論將會讓你受益良多。

 

評分

以每週作業的完成情況確定成績。

 

進度

軟體工程這個主題涉獵的東西很多,很難在一個學期之內就把它學完。因此我會隨時挑選一些特定主題且可能在未來的課程中進行修改。進度和閱讀書目分別列明在課程網頁的「教學時程」和「相關閱讀資料」中。你也可以從網頁上找到「課堂講稿」。

 

有關閱讀作業的說明

在每節課開始之前,你們要就每週佈置的論文提交一份簡短(大概半頁到一頁)的摘要,以及對以下一般性的問題進行回答: ·         

論文的主要概念或主題是什麼?(例如:一段關於論文的簡短摘要) ·         

客觀的論文評價:論文中,是否有哪些東西你很喜歡或者贊同;哪些東西你不贊同?有沒跟你經驗相符的東西? ·         

閱讀過程中,有哪些心得和想法?

顯然在第一堂課上沒有指派閱讀(因為還沒分發),所以閱讀論文摘要的繳交日期將會在教學時程中另外指定。此外,本學期將會安排一些小作業,這會在課堂上做具體佈置。

相關連結

講者介紹

Prof. Nancy Leveson

翻譯工作人員

翻譯人員陈凤

繁體編輯劉契良

簡體編輯陈盈

檔案後製處理劉契良