課程架構

軟體工程課程架構如下

     

軟體工程課程矩陣如下

軟體工程概論

課程簡介

 
軟體已成為各行各業發展不可或缺的基石,同時,軟體產業也是知識經濟的重要一環。舉凡科學與技術的發展以至於民生上的需求,如電子化政府的建置、基因資料庫的建立、半導體晶片的設計、行動通訊軟體系統、銀行交易系統等,在在都與電腦軟體息息相關,軟體的應用範疇之廣泛與其重要性可見一般。

台灣區電機電子工業同業公會的「 資訊.電機.電子業當前及未來 3 年科技人力調查建言書 」之中,可得知廠商對高級技術人才之需求殷切,主要人力匱乏類別為工程研發人才,其中軟體人才需求平均每年成長率為 6.9% 。在行政院科技顧問組公布的『重點產業科技人才短期供需調查』中也提到,未來三年內,我國四項高科技產業中的人力缺口達一萬六千四百四十一人,其中資訊服務業人才量夠,但質不精,供需無法配合,因此,國內對於軟體開發人才之需求亦與日俱增,對於國內高素質的軟體人才缺乏的問題,有待立即的人才培養,以供應國內軟硬體工業之所需。

為積極培養學生在軟體工程理論與應用方面的認識,本計劃特邀請國內四所大學 ( 中大、中原、慈濟、台北科技大學 ) 進行軟體工程概論改進計劃之設計與規劃。本計劃以籌設大學部軟體工程之基礎與進階課程為主,以系列課程引導學生在學理及應用上的統合能力,進而誘發學生未來在軟體工程相關領域之學習興趣。

課程大綱

   
軟體工程概論
An Overview of Software Engineering
Software Processes
Requirements Engineering
Software Design
Object-oriented Software Development
Software Testing
Software Project Management and Planning
Software Quality Assurance
Software Maintenance
Formal Methods and Software Engineering
Advanced Topics in Software Engineering
 

參與老師

   
軟體工程概論
教授
學校
An Overview of Software Engineering
李允中 教授
留忠賢 教授
中央大學
中原大學
Software Processes
留忠賢 教授
郭忠義 教授
中原大學
輔仁大學
Requirements Engineering
李允中 教授
留忠賢 教授
中央大學
中原大學
Software Design
李允中 教授
郭忠義 教授
中央大學
輔仁大學
Object-oriented Software Development
李允中 教授
郭忠義 教授
中央大學
輔仁大學
Software Testing
潘健一 教授
劉建宏 教授
慈濟大學
台北科技大學
Software Project Management and Planning
留忠賢 教授
潘健一 教授
中原大學
慈濟大學
Software Quality Assurance
李允中 教授
劉建宏 教授
中央大學
台北科技大學
Software Maintenance
郭忠義 教授
潘健一 教授
輔仁大學
慈濟大學
Formal Methods and Software Engineering
潘健一 教授
劉建宏 教授
慈濟大學
台北科技大學
Advanced Topics in Software Engineering
李允中 教授
劉建宏 教授
中央大學
台北科技大學
 

物件導向軟體工程

課程簡介

 
The objective of this course is to explain the special features of object-oriented software engineering, and provide an easy and practical introduction to the important characteristics of object orientation. After taking this course, students will understand

‧ what is object-oriented software engineering;
‧ why object-oriented software engineering is important;
‧ how to develop software and manage a software project by using the Unified Modeling Language in detail;
‧ how to apply the modern development methods to software development; and
‧ how to tailor the development processes introduced in this course for their own project.

Since a “one size fits all” does not apply to a software development. Software development process we introduce in this course is a basic process framework from which customized process could be derived. After taking this course, students will be able to apply the fundamental knowledge of object-oriented technology to their own software development practices.
In this courseware, there are six threads:

‧ A review of the basic software engineering concepts and the concepts of object orientation. These concepts helps the readers to easily understand the chapters followed (Chapter 1 and 2)

‧ Only the frequently used notations of the Unified Modeling Language (UML) are distilled. The UML is the de-facto standard object modeling language. It is already accepted and applied by almost all software developers to their software development (Chapter 3)

‧ Based on the Unified Process, the object-oriented software development process is explained by a case study. Readers may easily learn how to apply the development process to their own projects (Chapter 4)

‧ Patterns exist for almost any software architecture and design problems and may be combined to solve complex problems. We focus on how to use the patterns for software design . We encourage students “thinking in patterns” during software development (Chapter 5) An introduction to a design paradigm, component-based development, provides software reusability technology for software solutions. The Enterprise JavaBean (EJB) is therefore introduced (Chapter 8)

‧ Two new software development methods that are still not included in the conventional text books of object-oriented software engineering today, namely, “Model Driven Development” and “Agile Methods on Object-Oriented Software Development”. The “motivation” we introduce those two methods is that they might show the potential of changing software development radically (Chapter 9 and 10). Content

課程大綱:

   
物件導向軟體工程
Part I: Fundamentals
Chapter 1. Software Engineering Concepts
Chapter 2. The Vocabulary of Object Technology
Chapter 3. Fundamentals of the Unified Modeling Language
Chapter 4. Object-Oriented Development Process
Chapter 5. Pattern-Oriented Software Development
Chapter 6. Object-Oriented Testing
Chapter 7. Object-Oriented Metrics
Part II: Special Topics
Chapter 8. Component-Based Development
Chapter 9. Model Driven Development
Chapter 10. Agile Methods on Object-Oriented Software Development
Resources
Summary of the UML Notations
 

參與老師:

   
物件導向軟體工程
教授
學校
Software Engineering Concepts
黃為德 教授
李允中 教授
佛光大學
中央大學
The Vocabulary of Object Technology
黃為德 教授
楊鎮華 教授
佛光大學
中央大學
Fundamentals of the Unified Modeling Language
黃為德 教授
陳振炎 教授
佛光大學
中央大學
Object-Oriented Development Process
黃為德 教授
郭忠義 教授
佛光大學
輔仁大學
Pattern-Oriented Software Development
李允中 教授
郭忠義 教授
中央大學
輔仁大學
Component-Based Development
楊鎮華 教授
郭忠義 教授
中央大學
輔仁大學
Object-Oriented Real-Time Systems
楊鎮華 教授
陳振炎 教授
中央大學
中央大學
Object-Oriented Testing
李允中 教授
郭忠義 教授
中央大學
輔仁大學
Object-Oriented Metrics
黃為德 教授
李允中 教授
佛光大學
中央大學
Model Driven Development
黃為德 教授
陳振炎 教授
佛光大學
中央大學
Agile Methods on Object-Oriented Software Development
陳振炎 教授
楊鎮華 教授
中央大學
中央大學
 

能力成熟度整合模式

課程簡介

 
近年來,軟體流程的改善逐漸受到企業重視。高品質之軟體開發流程可幫助企業有效的利用軟體技術、公司人力與企業資源在時程與預算內發展高品質之軟體產品。因此,發展適於台灣軟體企業的軟體開發流程,便成為一個重要的研究課題。

美國卡內基美隆大學( CMU/SEI )所提出之軟體成熟度整合模式( Capability Maturity Model Integration, CMMI )廣泛的被國際軟體開發廠商所採用, SEI 對於企業使用 CMM 模式之改善效益進行調查,發現企業平均生產力提高 35% ,產品上市時間減少 15% ,交貨後發現的缺失數降低 39% 等,顯示出流程改善確實可以有效幫助軟體企業提升軟體產品品質與國際競爭力。

為積極培養學生在軟體流程與 CMMI 的認識,本計劃特邀請國內大學與業界 ( 成大、中大、寶發科技、資策會 ) 進行能力成熟度整合模式課程改進計劃之設計與規劃。本計劃以籌設研究所暨大學部軟體流程之進階課程為主,以系列課程與實驗引導學生在學理及應用上的統合能力,進而誘發學生未來在能力成熟度整合模式相關領域之學習興趣。

課程大綱:

   
能力成熟度整合模式
Introduction
Capability Maturity Model Integration (CMMI) Overview
Maturity Level 2: managed process are
Maturity Level 3: derived process areas
Other Maturity Levels (Level 4 and Level 5)
CMMI Appraisal Overview
Tailoring CMMI Model for Your Own
Applying CMMI to Real World Software Intensive System Development (Case Studying)
The Future of the CMMI
 

參與老師:

   
能力成熟度整合模式
教授
學校
Introduction
洪肇奎 博士
李允中 教授
成功大學
中央大學
Capability Maturity Model Integration (CMMI) Overview
李允中 教授
中央大學
Maturity Level 2: managed process areas
李允中 教授
中央大學
Maturity Level 3: derived process areas
吳裕光 主任
資策會
Other Maturity Levels (Level 4 and Level 5)
洪肇奎 博士
李允中 教授
成功大學
中央大學
CMMI Appraisal Overview
洪肇奎 博士
李允中 教授
成功大學
中央大學
Tailoring CMMI Model for Your Own
洪肇奎 博士
吳裕光 主任
成功大學
資策會
Applying CMMI to Real World Software Intensive System Development (Case Studying)
洪肇奎 博士
吳裕光 主任
成功大學
資策會
The Future of the CMMI
李允中 教授
中央大學
 

軟體度量

課程簡介:

 
提昇國內軟體產業競爭力的作法有許多,除了提升軟體開發技術能力外,亦可從軟體流程改善( Software Process Improvement )著手,例如目前國內軟體廠商正在積極導入 CMMI 模式。然而軟體流程改善模式的導入作業、績效的評估或認證的評鑑等都需要有效地『軟體度量』作業提供客觀資訊的支援。另在 SW-CMM 模式中,『度量與分析( Measurement and Analysis )』原是共同特徵( Common Feature )五個屬性表徵中之一,然而在 CMMI 模式中已成為軟體開發組織第二級管理能力等級中流程領域之一,可見其對軟體開發組織能力成熟度提升的重要程度。

基於『我們無法管控我們無法度量的事物』( We cannot control what we cannot measure )的事實,『軟體指標』( Software Measurement )的主要目的是教導讀者在具備軟體度量知識的基礎下,學習如何收集軟體開發專案中有關開發流程( Process )、產品( Product )與資源( Resource )中的資料,決定欲評估的屬性( Attribute )與採用的度量指標( Software Metrics ),透過資料分析技術來建構評估與預估模式,例如軟體品質評估模式( Software Quality Assessment Model )、軟體流程能力成熟度模式( Software Process Capability Maturity Model )、軟體成本預估模式( Software Cost Estimation Model )等,以提升軟體專案管理的效率,進而達到軟體工程的主要目標:在預定的交付時間與成本內,開發合乎使用者品質要求的軟體系統。

然而國內目前大專院校資訊相關科系卻僅有少數的學校有開授『軟體度量』相關課程,軟體產業也普遍缺乏此領域知識的軟體從業人才,因此本計劃針對『軟體度量』在軟體工程專業學程的重要性,擬邀請國內在此領域之專家學者們進行軟體度量課程之設計與規劃。本計劃以編撰軟體度量之基礎與進階課程為主,以系列課程引導修課學生(資訊相關科系之大學部四年級學生與研究生)在學理及應用上的統合能力,進而培養修課學生具備軟體度量的專業知識,並能實際應用在軟體開發流程中。

課程內容編撰計劃將包含與軟體度量有關的國際標準、實務工具及業界應用最佳實務等等(例如: ISO 、 IEEE 標準與 CMMI 模式等)。預計編撰的課程內容 包含有課程教材與實習項目的設計及編撰、業界的試用推行,使本計劃所編撰的課程內容能提供開授『軟體度量』教育訓練的教授們參考使用。另修課的學生能 瞭解如何在軟體開發生命週期中的各階段,透過度量資料的收集與分析,建構軟體產品或流程評估或預估模式,以提供決策制訂所需的資訊。

課程大綱:

   
軟體度量
第一篇:軟體度量基礎
第 1 章 軟體度量簡介
第 2 章 軟體度量模式與標準
第 3 章 軟體度量指標
第二篇:軟體度量指標
第 4 章 產品度量指標
第 5 章 流程度量指標
第 6 章 軟體功能性大小指標
第 7 章 功能點分析
第 8 章 物件導向度量指標
第三篇: 軟體度量流程
第 9 章 軟體度量流程模式
第 10 章 度量流程規劃與建立
第 11 章 度量流程執行與分析
第 12 章 度量流程的評估與改善
第四篇: 軟體產品與流程評估
第 13 章 軟體產品與流程模式
第 14 章 軟體產品品質評估
第 15 章 軟體流程評估
第五篇:軟體專案預估
第 16 章 軟體工作量估算
第 17 章 參數式軟體成本預估
第 18 章 軟體時程預估
 

參與老師:

   
軟體度量
教授
第一篇:軟體度量基礎
第 1 章 軟體度量簡介
黃世禎 教授
第 2 章 軟體度量模式與標準
第 3 章 軟體度量指標
第二篇:軟體度量指標
第 4 章 產品度量指標
王有禮 教授
第 5 章 流程度量指標
第 6 章 軟體功能性大小指標
第 7 章 功能點分析
李漢銘 教授
第 8 章 物件導向度量指標
第三篇: 軟體度量流程
第 9 章 軟體度量流程模式
李漢銘
第 10 章 度量流程規劃與建立
莊柏青 教授
第 11 章 度量流程執行與分析
第 12 章 度量流程的評估與改善
第四篇: 軟體產品與流程評估
第 13 章 軟體產品與流程模式
何煒華
第 14 章 軟體產品品質評估
第 15 章 軟體流程評估
第五篇:軟體專案預估
第 16 章 軟體工作量估算
吳宗成 教授
第 17 章 參數式軟體成本預估
第 18 章 軟體時程預估
 

軟體專案管理

課程簡介

 
全球經濟發展的趨勢中各產業對於科技軟體依賴度越來越緊密且廣泛。此現象突顯出軟體對於現代產業的重要性,並成為現今社會不可或缺的一部份。而在這些軟體系統越來越大且複雜的同時,軟體產業的知識工作者,以軟體工程為核心,提昇軟體品質、生產力 , 並對軟體開發及管理知識的需要性就越顯得更加迫切重要。但軟體專案及軟體產業對高整合度的需求及快速反應環境變化的特性,卻和其它產業有相當差異。所有軟體專案的利害關係人均需具備有相關且一致的觀念及能力 , 才能達到以專案管理的技術方法,配合軟體特性,使軟體專案如期、如值、如預算的完成預定目標。

但可惜的是專案管理在尚未加上軟體高複雜的特性前 , 長久以來應用者雖有認識但即多受誤導 , 內涵及方法莫衷一是;再加上軟體專案的特性後 , 要建立軟體相當人員適切的軟體專案管理觀念及能力,即成為要提昇軟體產業的根本方向之一,所以因應需要亟需統合建立一套適用台灣體系、完整且實用的軟體專案管理課程教材 , 並加以推行 , 以作為建立軟體產業發展茁壯的基礎。

本計劃即針對在軟體專案管理上的需要 , 特邀請並整合國內四所大學 ( 台灣科技、師範、國防大學、德明技術學院 ) 進行軟體專案管理課程之設計與規劃。本計劃以籌設大學部軟體專案管理之基礎與進階課程為主,以系列課程引導學生在學理及應用上的統合能力,進而引導學生在軟體專案管理相關領域之學習興趣。
計劃以二年為期 , 內容中針對軟體專案的需求 , 整合多個面像包括了專案管理、軟體工程、軟體發展技術、國際標準、實務工具及業界應用等;在工作項目中中包含課程教材及實習項目的設計及編撰 , 學界及業界的咨詢及試用推行,使計劃的成果的產出能提供從事軟體專案管理教育訓練的工作者,不但有統一且完整的教材 , 且內容在教學時已具體可直接使用。

課程大綱:

   
軟體專案管理
軟體專案管理的概念
經營環境與軟體專案管理
軟體開發模式與程序
軟體專案整合管理
軟體專案範疇管理
軟體專案時程管理
軟體專案成本管理
軟體專案品質管理
軟體專案與風險管理
軟體專案的監控
軟體專案與型態管理
軟體專案的中止、結束
軟體專案的量度與評估
軟體專案的未來趨勢
軟體專案的外包管理
軟體專案人力與資源管理
軟體專案的採購管理
軟體專案與知識管理
軟體專案管理的標準與發展
軟體專案管理的工具與應用
 

參與老師:

   
軟體專案管理
教授
學校
軟體專案管理的概念
劉豐豪 教授
朱慧德 教授
國防管理學院
德明技術學院
經營環境與軟體專案管理
黃冠寰 教授
羅乃維 教授
台灣師範大學
台灣科技大學
軟體開發模式與程序
羅乃維 教授
黃世禎 教授
台灣科技大學
台灣科技大學
軟體專案整合管理
朱慧德 教授
黃冠寰 教授
德明技術學院
台灣師範大學
軟體專案範疇管理
朱慧德 教授
黃冠寰 教授
德明技術學院
台灣師範大學
軟體專案時程管理
羅乃維 教授
朱慧德 教授
台灣科技大學
德明技術學院
軟體專案成本管理
黃世禎 教授
羅乃維 教授
台灣科技大學
台灣科技大學
軟體專案品質管理
朱慧德 教授
黃世禎 教授
德明技術學院
台灣科技大學
軟體專案與風險管理
劉豐豪 教授
黃世禎 教授
國防管理學院
台灣科技大學
軟體專案的監控
黃冠寰 教授
朱慧德 教授
台灣師範大學
德明技術學院
軟體專案與型態管理
劉豐豪 教授
羅乃維 教授
國防管理學院
台灣科技大學
軟體專案的中止、結束
羅乃維 教授
黃冠寰 教授
台灣科技大學
台灣師範大學
軟體專案的量度與評估
黃世禎 教授
羅乃維 教授
台灣科技大學
台灣科技大學
軟體專案的未來趨勢
黃冠寰 教授
劉豐豪 教授
台灣師範大學
國防管理學院
軟體專案的外包管理
黃冠寰 教授
劉豐豪 教授
台灣師範大學
國防管理學院
軟體專案人力與資源管理
羅乃維 教授
劉豐豪 教授
台灣科技大學
國防管理學院
軟體專案的採購管理
朱慧德 教授
黃冠寰 教授
德明技術學院
台灣師範大學
軟體專案與知識管理
劉豐豪 教授
朱慧德 教授
國防管理學院
德明技術學院
軟體專案管理的標準與發展
黃冠寰 教授
劉豐豪 教授
台灣師範大學
國防管理學院
軟體專案管理的工具與應用
劉豐豪 教授
羅乃維 教授
國防管理學院
台灣科技大學
 

軟體架構

課程簡介

 
在國外,『軟體架構』這項技術已被導入軟體工業,故開發一套系統的思維,必須透過嚴謹的系統需求 (Requirement) 、分析 (Analysis) 、設計 (Design) 以及執行 (Implementation) ,除此之外,團隊的分工合作亦是不可或缺的,是以,在相關的研究領域,『軟體架構』之課程扮演著相當重要的角色。

國外之 SA (Software Architecture) 課程,主要分為以下幾個授課階段:第一階段, SA 之原則 (Principles) 與實作 (Practices) 。第二階段,對於 SA 作文件化 (Documenting) 。第三階段, SA 之設計 (Design) 及分析 (Analysis) 。第四階段,軟體之生產線 (Product Lines) 。最後的第五及第六階段則是 ATAM SM Evaluator Training 與 ATAM SM Facilitator Training 。

藉由介紹 SA 的基本概念來開啟這門領域的學習之門,由於 SA 是針對軟體系統,以抽象化的觀點來加以描述,故需求、分析、設計及執行的細節部分並不是這門課程的重點,相對的, SA 針對設計方面所應有決策,給予一些基本的定義,另外,建立有效率的工作結構以及軟體生產線,也是該門課程的重點。

以上的國外課程的部分,在範圍上與整個軟體工程的教學過於類似,對於整個 Process 均有涉及。但是在特殊化上,缺乏精闢的介紹,故學生在學習效果上較難深入。本文除了將國內外既有的課程去蕪存菁,並針對軟體架構的特殊化,配合開發環境的限制與需求,導入 Design pattern 的觀念,予以詳盡的說明,來提昇教學的品質。

課程大綱:

   
軟體架構
Overview of software Process and Model
Introduction to Software Architecture
Architectural Style (1)
Architectural Style (2)
Architecture-Based Development
Software Architecture Analysis Method
Quality Attributes and software Architecture
From Architecture to Implementation
Architecture-Based Testing
Architecture Description Language (1)
Architecture Description Language (2)
Case Study
       

參與老師:

   
軟體架構
教授
學校
Overview of software Process and Model
周忠信 教授
東海大學
Introduction to Software Architecture
王豐堅 教授
交通大學
Architectural Style (1)
薛念林 教授
逢甲大學
Architectural Style (2)
Architecture-Based Development
張文貴 教授
東海大學
Software Architecture Analysis Method
劉立頌 教授
中正大學
Quality Attributes and software Architecture
張文貴 教授
東海大學
From Architecture to Implementation
薛念林 教授
逢甲大學
Architecture-Based Testing
張文貴 教授
東海大學
Architecture Description Language (1)
朱延平 教授
中興大學
Architecture Description Language (2)
朱正忠 教授
東海大學
Case Study
周忠信 教授
東海大學
 

元件式軟體發展技術

課程簡介

 
從 90 年代末期,電腦的發展即已黑馬的姿態迅速竄升起來,從早期的 Mainframe 的主機,到現在個人 PC 的時期,其影響的範圍不再是侷限於特殊人員身上,相對的,電腦的使用幾乎是每人所應該有的基本能力之一,如此看來,依附於硬體之上的軟體,其應用亦佔有ㄧ定程度上的角色。

軟體的發展直至目前為止已經發展到相到成熟的程度了,從傳統的 Procedure Call 到 90 年代末期物件導向 (Object-Oriented) 程式語言的興起,其開發軟體的念不斷的創新與進步,端看 Java 物件導向的程式語言即可知道物件導向軟體的開發概念與 Procedure Call 開發之不同, Java 物件導向程式語言的特性,具有資料封裝、物件繼承、又或是訊息傳遞 … 等等,這些特性強化了物件導向程式語言的設計能力,也縮短的程式設計師開發系統的時間,這些優點是傳統 Procedure Call 所不及的,這也是為什麼物件導向程式語言之所以會興起,且發展優於 Procedure Call 的原因所在。

雖然物件導向的程式語言有這些優勢,但是目前企業間所用的卻不是單單只使用這些技術,反而基於這些基本技術之上,更高階的設計技術:元件式軟體,這種設計方式加強了軟體的再利用的特性,也加強了軟體的分割性,目前國外眾多軟體外包商即是基於這個特性之上,來從其中獲取利潤,如 Commercial off-the-shelf(COTS) 就是最顯著的例子;依此看來,國外軟體商已將這些概念運用在軟體上,國內軟體產業勢必也要加緊腳步將這些概念落實在企業之上,當然這些概念必須從學生時期就開始灌輸這種觀念,推廣這些觀念在學生之上,國內的企業方可一起提升水準,也才有夠水準的競爭力與國外競爭。

本計劃特邀請國內幾所大學 ( 中正、彰師大、逢甲 ) 進行元件式軟體發展技術課程改進計劃之設計與規劃,一起培養學生在軟體工程理論與應用方面的認識。本計劃以籌設大學部軟體工程之基礎與進階課程為主,以系列課程引導學生在學理及應用上的統合能力,進而誘發學生未來在軟體發展技術相關領域之學習興趣。

課程大綱:

   
元件式軟體發展技術
Base Object Oriented Programming
Design Pattern
Unit testing of Object Code
Component Design and Implementation
Distributed Object Programming
Mobile Object
Servlets
Java Server Pages (JSP)
Enterprise Java Bean (EJB)
       

參與老師:

   
元件式軟體發展技術
教授
學校
Base Object Oriented Programming
王豐堅 教授
交通大學
Design Pattern
朱正忠 教授
東海大學
Unit testing of Object Code
廖珗洲 教授
朝陽科技大學
Component Design and Implementation
Distributed Object Programming
王豐堅 教授
交通大學
Mobile Object
劉立頌 教授
中正大學
Servlets
賴聯福 教授
彰化師範大學
Java Server Pages (JSP)
Enterprise Java Bean (EJB)
薛念林 教授
逢甲大學
 

個人軟體程序程式

課程簡介

 
軟體已成為各行各業發展不可或缺的基石,同時,軟體產業也是知識經濟的重要一環。舉凡科學與技術的發展以至於民生上的需求,如電子化政府的建置、基因資料庫的建立、半導體晶片的設計、行動通訊軟體系統、銀行交易系統等,在在都與電腦軟體息息相關,軟體的應用範疇之廣泛與其重要性可見一般。

台灣區電機電子工業同業公會的「 資訊.電機.電子業當前及未來 3 年科技人力調查建言書 」之中,可得知廠商對高級技術人才之需求殷切,主要人力匱乏類別為工程研發人才,其中軟體人才需求平均每年成長率為 6.9% 。在行政院科技顧問組公布的『重點產業科技人才短期供需調查』中也提到,未來三年內,我國四項高科技產業中的人力缺口達一萬六千四百四十一人,其中資訊服務業人才量夠,但質不精,供需無法配合,因此,國內對於軟體開發人才之需求亦與日俱增,對於國內高素質的軟體人才缺乏的問題,有待立即的人才培養,以供應國內軟硬體工業之所需。

然而軟體發展約有 70% 的成本是花費在人力成本上,所以軟體發展過程中個人的技術、經驗、效率與習慣深深影響整體軟體發展的成果,個人軟體程序程式課程之設計與規劃是以軟體工程的理論來訓練軟體發展中的個人具備正確的開發技術、方法與程序,並藉由實作的訓練來實際學習個人軟體流程與校正開發過程中不正確的發展程序,以提昇軟體發展之品質與效率。

為積極培養學生在軟體工程理論與應用方面的認識,本計劃特邀請國內四所大學 ( 成大、中正、長榮、南台科技大學 ) 進行個人軟體程序程式課程改進計劃之設計與規劃,引導學生在學理及應用上的統合能力,進而誘發學生未來在軟體工程相關領域之學習興趣。

課程大綱:

   
個人軟體程序程式
Topic1 The Personal Process Strategy
Topic2 The Baseline Personal Process
Topic3 Planning I – The Planning Process
Topic4 Planning II – Measuring Software Size
Topic5 Planning III – Estimating Software Size
Topic6 Planning IV – Resource and Schedule Estimating
Topic8 Design and Code Reviews
Topic9 Software Quality Management
Topic10 Software Quality Management
Topic11 Scaling Up the Personal Software Proce
Topic12 Design Verification
Topic13 Defining the Software Process
Topic14 Using the Personal Software Process
 

參與老師:

   
個人軟體程序程式
教授
學校
Topic1 The Personal Process Strategy
郭耀煌 教授
郭淑美 教授
吳清色 教授
成功大學
成功大學
空軍官校
Topic2 The Baseline Personal Process
Topic3 Planning I – The Planning Process
Topic4 Planning II – Measuring Software Size
Topic5 Planning III – Estimating Software Size
郭耀煌 教授
郭淑美 教授
陳炳文 教授
成功大學
成功大學
南台科技大學
Topic6 Planning IV – Resource and Schedule Estimating
Topic7 Measurements in the PSP
Topic8 Design and Code Reviews
郭耀煌 教授
郭淑美 教授
柯仁松 教授
成功大學
成功大學
中正大學
Topic9 Software Quality Management
Topic10 Software Quality Management
Topic11 Scaling Up the Personal Software Proce
郭耀煌 教授
郭淑美 教授
陳逸昌 教授
成功大學
成功大學
長榮大學
Topic12 Design Verification
Topic13 Defining the Software Process
Topic14 Using the Personal Software Process
 

軟體品質管理

課程簡介

 
本課程計畫主要在探討全面軟體品質管理 (Total Software Quality Management) 的觀念與技術,訓練學生如何進行軟體品質一系列的規劃、執行與控制的活動;其主要目的是在提升軟體品質水準以滿足最終用戶的期望需求,並將軟體的缺點與軟體專案失敗的風險減至最低程度。

在核心內容方面,軟體品質管理的重要工作項目包括:建立品質目標與品質保證制度、整合品質保證活動與專案的執行等,特別是認證制度的推行、標準制度的建立、獨立驗證與確認、定期實施稽核、品質保證與評估的工作等,本課程將強調前述 工作項目的訓練與實作,研究如何建立一個整合性的品質管理模式,融合全面品管管理的理念、品質制度與標準、品質評估的技術方法,以培養學生在改善軟體專案品質方面的能力。

本計劃特邀請國內四所大學 ( 成大、中正、中山、東海大學 ) 進行軟體品質管理課程改進計劃之設計與規劃,導引學生在學理及應用上的統合能力,進而誘發學生未來在軟體工程相關領域之學習興趣。

課程大綱:

   
軟體品質管理
Introduction to Software Engineering
Software Process Models
Software economics
Software Quality Management
Software Quality Concepts
Activities and Techniques for V and V
Planning for SQM
Software Quality Measurements
Related Software Quality Standards
Roadmap of Software Quality Management for a Software Organization
Guidelines for Compliance among Related Interpretational Standards
       

參與老師

   
軟體品質管理
教授
學校
Introduction to Software Engineering
鄭炳強 教授
中山大學
Software Process Models
林迺衛 教授
中正大學
Software economics
熊博安 教授
中正大學
Software Quality Management
Software Quality Concepts
林迺衛 教授
中正大學
Activities and Techniques for V and V
鄭炳強 教授
中山大學
Planning for SQM
熊博安 教授
中正大學
Software Quality Measurements
張文貴 教授
東海大學
Related Software Quality Standards
朱治平 教授
成功大學
Roadmap of Software Quality Management for a Software Organization
張文貴 教授
東海大學
Guidelines for Compliance among Related Interpretational Standards
 

正規方法:

課程簡介

 
面對國際經濟分工合作的新趨勢,台灣如何能夠尋找新的定位,對工程人員進行尖端訓練,俾能發揮特殊優勢,將台灣的繁榮置於穩固磐石之上,一直是國內產、學、官三界諸位先進們,所積極思索的課題。面對中國大陸逐漸成為世界代工廠,又野心勃勃的發展高科技產業的同時,台灣產業界只有朝提昇高附加價值的獨特產品設計方向發展。而在這條險峻艱難的道路上,台灣唯有善用電腦的強大計算功能,才能設計出高性能的獨特尖端產品,以擴大並長保領先優勢。而這也就是國內軟體工程產業發展的迫切動機。台灣若能掌握獨特的軟體工程技術,不但可以在產品設計的上游層次,立於不敗之地,更可以輔助國內產業開發獨特的工業產品。但是軟體工程產業的發展,需要什麼樣的環境背景呢?

軟體工程產業的發展,需要最高程度軟體工程師,因為這些工程師必須對特定軟體工具之設計目標基礎數學模型有透徹的瞭解,並且能在這樣的數學模型中進行因果推導,並將這樣的推導過程抽象化、實體化,進而製作為可以被推廣使用的工具軟體。而在這些要求條件中,最基本的就是對數學模型的掌握能力。世界上在軟硬體相關的產業中,各種狀況常透過數學的某種模型假設發展出來,包括對軟體或硬體狀態和行為的描述與模擬,均是如此。唯有透過這類數學模型的假設,工程師才能在適當的抽象層次,執簡御繁,便利團隊溝通,提昇計畫值行效能。更有甚者,只有在使用此類嚴謹的數學模型後,才有可能發展出各種電腦分析的演算法與工具。

本前瞻課程規劃擬從學生撰寫正規模型( formal model )的能力開始培養,由淺入深、由基本到複雜,從基礎的語法、語意上的特徵,如 atomicity 、 interleaving semantics 、 fairness 、再介紹工業界實際運用的語言,例如 Sugar 、 ForSpec 。然後再以未來國內通訊產業、與智慧型系統等軟體所使用的驗證技術,繼續講課。譬如,嵌入式系統與軟體 non-Zeno 假設、嵌入式系統的數學模型、驗證分析技術、與符號式驗證所需的 coverage 估算技術、等等基礎模型假設,一路講到工業界實際運用的語言案例(如 MSC 、 SDL )所使用的驗證技術等等。並配合國內 VLSI 工業的未來需求,及各種硬體模型的定義語應用範例,進一步探討有關軟硬體模型自動建構和尖端自動驗證技術等議題。

課程大綱:

   
正規方法
Introduction
Logics (mathematic logic)
Transition System
Temporal logics and Model checking
Theorem proving and Program verification
Process Algebra
Embedded Systems (T.A. 、 H.A.)
VDM 、 Z 、 B 、 SDL
UML and State Chart
HDL/PVS
Red and Uppall( 含實例解說 )
CUDD/SMV/NuSMV
Statemate Rapsody
 

參與老師:

   
正規方法
教授
學校
Introduction
王凡 教授
台灣大學
Logics (mathematic logic)
雷欽隆 教授
顏嗣鈞 教授
Transition System
蔡益坤 教授
王勝德 教授
Temporal logics and Model checking
雷欽隆 教授
Theorem proving and Program verification
顏嗣鈞 教授
Process Algebra
雷欽隆 教授
Embedded Systems (T.A. 、 H.A.)
王勝德 教授
VDM 、 Z 、 B 、 SDL
蔡益坤 教授
UML and State Chart
HDL/PVS
顏嗣鈞 教授
Red and Uppall( 含實例解說 )
王凡 教授
CUDD/SMV/NuSMV
雷欽隆 教授
Statemate Rapsody
王勝德 教授
 

網際服務軟體工程

課程簡介

 
隨著網際網路技術的快速發展,著重於「網路應用軟體」 (Web-based Applications) 開發特性的軟體工程課程正逐漸形成中。國外許多知名大學已開始在基礎的軟體工程課程之後,提供進階的「網際服務軟體工程」 (Web-based Software Engineering ) ,以引導學生有效統合軟體工程學理,應用於 網路應用軟體 開發流程中。 MIT(EECS 6.916) 、 Harvard (CS 7295) 、 Carnegie Mellon(CS 15393) 、 Stanford(CS 349 ) 等校所開設的課程便是其中的例子。

在此背景下,台北科技大學資訊工程系擬結合五位「軟體工程」及「 Web 技術」專長領域同仁,依據軟體工程聯盟學程規劃,進行「網際服務軟體工程」 (Web-based Software Engineering ) 課程編撰計畫,以提供 推動軟體工程學程的聯盟成員, 開授 「網際服務軟體工程」 課程之 參考教材,並協助推廣至業界,厚實台灣 軟體 產業總體競爭力 。

網際服務軟體工程」相較於一般軟體開發程序,存在著許多不同的特性,例如,分散式架構 (distributed framework) 、並行處理 (concurrency) 、互動模式 (interaction) 、交易導向 (transaction-oriented) 、負載不易預期 (unpredictable load) 等特性。針對此特性,並參酌國外知名大學相關課程標準,我們計劃以 4 個教學階段, 10 大單元教材,及 7 項實習專案來建構此課程內容,詳如下表。期望能透過原理與實作的結合,使學生充分明瞭如何在軟體開發生命週期中的各階段,包括 (1) 需求訪談 -Customer communication 、 (2) 規劃 -Planning 、 (3) 模型化 -Modeling 、 (4) 建構 -Construction 、 (5) 部署 -Deployment 等階段,建立適用於「網路應用系統」的網際服務軟體工程程序 (Web-based software engineering process) ,並能實際應用在軟體開發流程中。

此教材編撰計畫為期一年,前期 (94/1-6) 將著重於內容製作與教學,後半 (94/7-12) 則是進行修訂與推廣。我們期望藉由本課程教案編撰的過程,積極與各夥伴學校密切交流,形成群聚 (cluster) 效應,共同致力於追求「軟體工程教學品質」的卓越,進而推廣成效至產業界,為深化台灣軟體工程教育、及提昇軟體產業競爭力,略盡綿薄之力。
     

課程大綱:

   
網際服務軟體工程
Introduction to Web-based Software Engineering
第 1 單元:
網際服務軟體工程概論
(研究所、大學、技職必教)
網路應用程式建立在主從式的模式上,比一般軟體程式多了傳送可靠度、傳輸安全性及多人存取的要求,這些特性將影響網路應用程式的開發程序。本教學單元的目的在藉由分析網路的一般屬性與品質屬性,提供學習者對網路應用開發環境有一個基本的認識。
1.1 網路應用 屬 性 Characteristics of web-based applications
1.2 一般 屬 性 General attributes
1.3 品質 屬 性 Quality attributes
1.4 網路應用技術 Web Technologies
The Structure of Web-based Systems
第 2 單元:
網路應用系統架構
(研究所、大學、技職必教)
本教學單元探討網路應用環境中表現層、邏輯層與資料層間的元件配置架構。課程重點包括:如何提高元件的重用性、如何 設計 中介軟體、以及如何整合外部系統。
2.1 網路應用軟體元件 Software components for web-based systems
2.2 軟體元件配置 The distribution of software components
2.3 次系統連結 Linking subsystems
2.4 中介軟體與架構設計 Middleware and their architectures
The Software Process for Web-based Applications
第 3 單元:
網路應用軟體開發程序
(研究所、大學、技職必教)
軟體程序是建置軟體產品的流程 ,常見的開發程序有 Incremental Model 、 Waterfall Model 、 RUP 等 。網路應用開發與一般的軟體工程開發方式有著不同的特性,其適用的軟體程序也不同 。如果網路應用系統希望達到高延展性的目的,那麼 敏捷程序模式將是較好的選擇,而如果需要較長的開發時程,則建議使用漸增程序模式 。
3.1 軟體開發程序的演進 An evolutionary software process
3.2 敏捷程序模式 Agile process model
3.3 漸增程序模式 Incremental process model
The General Process Framework for Web-based Applications
第 4 單元:
網路應用軟體程序框架
(研究所、大學、技職必教)
隨著網路應用程式由靜態內容導向的資訊處理方式,演進到動態使用者導向的方式,系統對於管理的穩固性與軟體工程原則的要求也隨之提高。本單元探討如何透過嚴謹的軟體程序框架活動,來滿足網路應用軟體在穩固性上的需求 。
4.1 框架活動與執行任務 Framework activities and work tasks
4.2 需求詳述與分析 Requirements specification and analysis
4.3 網路應用系統開發 Web based system developments
4.4 既有系統整合 Integration with legacy system
4.5 測試、驗證與確認 Testing, verification and validation
Formulating and Analyzing Web-based Systems
第 5 單元:
網路應用系統規劃與分析
(研究所、大學、技職必)
規劃與分析模型表現了網路應用軟體開發過程中,各個活動 (activity) 與任務 (task) 的進行。本單元詳細討論每個分析模型的具體內容。
5.1 內容分析 Content analysis
5.2 資料模型 Data modeling
5.3 互動分析 Interaction analysis
5.4 功能分析 Functional analysis
5.5 組態分析 Configuration analysis
Design of Web-based Applications
第 6 單元:
網路應用設計
(研究所、大學、技職必教)
網路應用設計乃依據系統架構分析模型的藍圖進行開發,設計時如能引用良好的設計樣式將能幫助我們設計出良好的系統。本單元探討網路應用 設計樣式如何協助我們進行網路應用系統設計。
6.1 架構設計 Architectural design
6.2 設計樣式 Design patterns
6.3 常見的軟體設計方式 Conventional design approaches for application software
6.4 資料庫設計 Database design
6.5 導覽設計 Navigation design
6.6 介面設計 Interface design
6.7 內容設計 Content design
Testing of Web-based Applications
第 7 單元:
網路應用測試
(研究所、大學、技職必))
本單元探討網路應用系統的測試策略,並詳細解說各種不同的網路應用測試方法。
7.1 基本測試原則 Basic principles adopted for testing
7.2 測試策略概論 Overall testing strategy and tactics
7.3 應用程式功能測試 Application function tests
7.4 伺服器測試 Server tests
7.5 資料庫測試 Database tests
7.6 交易測試 Transaction tests
7.7 網路通信測試 Network communication tests
Management Issues of Web-based Applications
第 8 單元:
網路應用管理
(研究所、大學、技職必教)
網際服務軟體工程包含許多複雜的技術整合,為了降低風險,事前的規劃與管理是相當重要的。另外,整體專案的進度可利用時程表來追蹤與控制。
8.1 網路應用開發團隊 The web engineering team
8.2 專案管理 Project management
8.3 軟體組態管理 Issues of software configuration management
Component-Based Web Application Development Approach
第 9 單元:
元件式網路應用開發
(研究所必教,大學與技職選教)
隨著網路應用系統的發展,元件化的開發技術也隨之成為焦點。本單元介紹元件式網路應用開發的各項技術。
9.1 元件檢定 Component qualification
9.2 調適性與構成 Adaptation and composition
9.3 元件開發工程 Component engineering
9.4 重用性設計與分析 Analysis and design for reuse
9.5 開發環境 Development environments
Service-Oriented Web Application Development Approach
第 10 單元:
服務導向式網路應用開發
(研究所必教,大學與技職選)
服務導向是一種新興的系統架構。服務導向模型在分散式網路環境中提供了鬆散偶合的整合方式。本單元探討服務導向應用系統的開發程序,包括服務模型、設計模型、架構模型、服務開發、部署、複合、開發等基本程序。
10.1 服務導向應用軟體結構 The structure of service-oriented web applications
10.2 服務導向應用軟體程序框架 The Process framework for building service-oriented web applications
10.3 服務導向應用軟體開發環境 The existing environments for building service-oriented web applications
Summary of the UML Notations
 

參與老師:

   
網際服務軟體工程
教授
學校
Introduction to Web-based Software Engineering
陳英一 副教授
鄭有進 副教授
陳偉凱 副教授
王英宏 副教授
丁培毅 副教授
台北科技大學
台北科技大學
台北科技大學
淡江大學
台灣海洋大學
Software Process for Web-based Applications
鄭有進 副教授
台北科技大學
Requirements Engineering for Web-based Systems
Analysis Modeling for Web-based Systems
Design Engineering for Web-based Applications
陳偉凱 副教授
台北科技大學
Component-Based Web Application Development Approach
Testing Techniques for Web-based Applications
王英宏 副教授
淡江大學
Service-Oriented Web Application Development Approach
Agile Methods on Object-Oriented Software Development
陳英一 副教授
台北科技大學
Security in Service-Oriented Systems
丁培毅 副教授
台灣海洋大學
 

工作流程應用程式軟體工程

課程簡介

 
流程導向應用軟體出現好些年,流程導向軟體開發技術隨著硬體與程式發展有階段式的演進,最近一期澎勃研發熱是 1990 年代,此時推出一些高階模型、其語言的編譯與執行環境。但是政府與公司組織對新的技術之軟體大量引入卻是這幾年才開始的。隨著各種組織內部自動化、部門工作交流與相對工作流程自動化,這方面軟體開發是與日俱增的。應用的例子如在金融系統方面應用、物料流量控管系統,產品製造系統與病患監護系統、等等。一個典型的例子是,英國政府一直在推動它的電子服務與組織內或組織間者資訊的軟體,必需藉由高階模型工作流程軟體來製做。當然,這類的系統可能被一種較低階的語言如 C 處理,也可以用物件導向語言如 C++ 來處理,更可以由一組高級模型及其語言處理的編譯環境處理。

工作流程軟體基於高階模型開發。 在課程上,這些模型的特性被分別討論。現在已經商品化的一些高階模型,他們各自有自己的執行平台。 不過,這些模型基本的考量仍是過程 (process) 、流動 (flow) 、資料 (data) 以及組織 (organization) 。 在這門課程上,我們首先引進軟體工程,因為這是發展計畫的必要的部分。 然後,介紹工作流程管理環境 WFMS 、工作流程發展聯盟 WFMC 及其提出的模型。 下一步,課程介紹怎樣在工作流程管理與發展環境 (WFMS) 編程應用程式。最後,討論在基於工作流程的軟體的發展期間之軟體工程的問題。

本計畫提議聯合幾所大學 ( 交通、中原、朝陽 ) 合作並且基於工作流程軟體開發設計一門相關軟體工程的課程。課程被用於幫助學生理解有關的工作流程應用軟體,以及程式發展的軟體工程技術。課程為懂得一點軟體工程和物件導向的程式設計的大學或技術學院本科生設計。希望能導引學生提升組織內合作軟體發展技術和更進一步深造的興趣。

課程大綱:

   
工作流程應用程式軟體工程
第 1 單元:
Software engineering and software development methodology
‧ Software development
‧ Software management
‧ Software development methodology

第 2 單元:

Workflow Management System (WFMS)
‧ WFMS introduction and its application
‧ The importance of WFMS in the enterprise applications
‧ Modeling application in WFMS
第 3 單元:
Implementing applications in WFMS tools (I)
‧ Implementing WFMS applications
‧ Workflow Graph and the programming
‧ Advanced workflow graph handling by interacting with the routing engine
‧ Organization
第 4 單元:
Implementing applications in WFMS tools (II)
‧ E-Form and artifacts
‧ Advanced eForm topic
‧ Techniques to smooth the development cycle
‧ Program testing
‧ Reuse
第 5 單元:
Software Engineering Practices for WFMS
‧ Practice from a real WFMC application to have hand-on experiences on software engineering issues
‧ Other software issues for current Workflow programs