庫存狀況
「香港二樓書店」讓您 愛上二樓●愛上書
我的購物車 加入會員 會員中心 常見問題 首頁
「香港二樓書店」邁向第一華人書店
登入 客戶評價 whatsapp 常見問題 加入會員 會員專區 現貨書籍 現貨書籍 購物流程 運費計算 我的購物車 聯絡我們 返回首頁
香港二樓書店 > 今日好書推介
二樓書籍分類
 
軟體工程 Software Engineering

軟體工程

沒有庫存
訂購需時10-14天
9789861575735
李允中 Jonathan Lee
美商麥格羅•希爾
2009年6月01日
160.00  元
HK$ 136  







* 叢書系列:資訊科學叢書
* 規格:精裝 / 340頁 / 16k / 普級 / 單色印刷 / 初版
* 出版地:台灣


資訊科學叢書


[ 尚未分類 ]









  回顧台灣過去約三十年的軟體產業,長久以來一直未能蓬勃發展,目前似乎更已陷入瓶頸。追本溯源,以往台灣的資訊科系教育偏重程式開發技術,而較不重視流程、領域知識、塑模及品質管控,在此教育體制下畢業後進入產業的軟體工程師,大部分依舊著重程式碼的撰寫。相較於歐美日等軟體業成熟之國家,甚或是軟體代工新興國家印度,台灣缺乏應用軟體工程的開發方法,導致所開發出來的軟體品質參差不齊,連帶影響國外大廠對我國軟體產業的信任。

  欲提振台灣的軟體產業,必須要有更寬廣的軟體工程新思維及做法。軟體工程不僅僅是過往大家所只著重的程式開發技術,它還包含了流程、塑模、與品質等軟體開發的重要觀念。做法上則應從四個層面著手:第一是軟體知識,第二是軟體教育,第三是軟體流程,第四則是軟體市場。

  在軟體知識部分,必須將軟體知識與領域知識合一。整體產業的未來發展應該要能結合專業領域知識與軟體知識,這又可分為三個層面來談,其一是國內軟體公司雖然具備相當的專業領域知識,但相對而言,軟體知識以及軟體系統整合的能力則較缺乏,因此必須著力提升其軟體方面的知識與能力,才能與原有的領域知識相加相乘,建立更優越的競爭能力;其次是過去數十年來,台灣擁有相當多紮實優異的傳統產業,雖然隨著科技與時代進步而逐漸式微或外移,但是如果台灣的軟體公司能將專業領域擴展至傳統產業,藉由兩者的結合重新賦予傳統產業全新之生命力,而軟體產品服務亦可隨著傳統產業的外移而向外擴展,發光發熱;最後台灣軟體產業則應與目前在世界占有舉足輕重地位的台灣硬體系統產業結合,藉此提高嵌入式軟體的開發與測試市場,走出原有的市場窠臼。

本書特色

  自1955年開始有了軟體產業以來,軟體成為推動著世界向前邁進的主要動力之一。1993年,全球IT軟體與服務產值首度超過硬體產值,正式宣告了軟體成為資訊科技主軸的時代來臨。時至今日,不論是我們日常生活所及,或在企業與組織內部,或是國防與太空科技,軟體都扮演了不可或缺的角色,主導著各類系統的運作,其對人類影響之深遠與巨大,可說是無遠弗屆。

  談到軟體產業,就不能不談到與其息息相關的軟體工程。全世界軟體業發展成熟的國家如:歐美、日本、及印度等國,不但重視軟體工程,也藉由軟體工程技術與流程改善來發展具有一定品質的系統與產品,使其軟體產業在世界占有一席之地。

  作者撰寫本書的目的在提供完整的軟體工程觀念及範例,引導讀者跳脫以元件的方式來看軟體,而改以系統的方式來看待整個軟體專案。因此在內容的規劃上,可以與教育部顧問室委辦成立之「軟體工程聯盟」所推廣的軟體工程學程互相對應參考。

  在有了軟體產業五十多年後的今天,世界各行各業的需求反過來成為推動著軟體向前邁進的主要動力。面對這樣的潮流趨勢的挑戰,我們絕對不能缺席,也不能一味想要複製與印度相同的模式;而是應該以全新的思維與積極的做法,走出一條不一樣的路:軟體工程應以服務整體產業為目標,而非僅是局限於軟體產業本身。現實的世界裡,軟體已經無所不在,舉凡精密機械、金融、手機系統等各種產業領域,無一不需要軟體。透過軟體工程的全新思維,軟體產業是台灣重新加碼進入全球競爭的新契機。

作者簡介

李允中教授

  是美國Texas A&M University電腦科學博士,曾任國立中央大學資訊工程系主任及軟體研究中心主任,並於後者任內成立國內第一所軟體工程研究所。

  李教授在國際上軟體工程領域之研究及著作素享盛名,生涯獲邀擔任多種國際期刊的編輯委員及多項國際研討會主席。自其回國任教以來,致力於發展與推動國內軟體工程教育、研究、與產業。歷年來不僅主持政府委託之長期軟體相關計畫(卓越計畫、學界科專、及軟體工程聯盟等),同時也受聘擔任國科會、教育部、經濟部、研考會等部會的審查與評鑑委員,審查各項有關之政府及產學界計畫。目前政府積極推動的服務導向架構(SOA)及能力成熟度整合模式(CMMI),均肇始於李教授對政府的建言及推動。

  基於多年來對軟體工程教育及產業界實務推行的經驗,李教授認為提振我國軟體產業,必須從培育高等軟體工程人才做起,而培育高等軟體工程人才,則須建立其正確的觀念與基礎。有感於目前國內中文軟體工程教科書大多為翻譯之著作,故而萌發其結合本身之教學及研究經驗,撰寫一本適合國內生態之中文軟體工程教科書的想法,乃有此書之誕生





第1章 軟體危機與流程
1.1 軟體危機
1.2 基本的軟體開發活動
1.3 軟體流程模型
1.4 本章總結

第2章 需求工程
2.1 需求的種類
2.2 需求工程
2.3 需求管理
2.4 本章總結

第3章 物件導向軟體開發
3.1 企業塑模
3.2 物件導向分析
3.3 物件導向設計
3.4 物件導向實作
3.5 目標導向使用案例
3.6 本章總結

第4章 軟體設計
4.1 軟體設計概論
4.2 架構設計
4.3 軟體設計策略與方法
4.4 軟體設計規劃
4.5 進階軟體設計
4.6 本章總結

第5章 軟體專案管理與計畫
5.1 專案計畫書
5.2 專案範圍
5.3 專案時間排程
5.4 專案成本管理
5.5 資源管理
5.6 風險
5.7 專案監控
5.8 專案其他計畫
5.9 本章總結

第6章 軟體測試
6.1 軟體測試的基本觀念
6.2 軟體測試規劃
6.3 軟體靜態分析
6.4 軟體動態測試方法
6.5 軟體動態測試策略
6.6 本章總結

第7章 軟體品質保證
7.1 軟體品質管理
7.2 軟體品質保證
7.3 運用品質模型提升軟體品質
7.4 本章總結

第8章 建構管理
8.1 建構管理計畫與建構識別
8.2 軟體基準建置
8.3 軟體建構控制
8.4 軟體建構狀態紀錄
8.5 軟體建構稽核
8.6 本章總結

第9章 軟體正規方法論
9.1 正規方法的基本概念
9.2 正規化規格技術的分類
9.3 軟體工程之數學理論
9.4 正規化規格語言
9.5 正規規格語言與非正規規格語言之整合
9.6 本章總結

第10章 軟體流程改善
10.1 以模式為基礎的流程改善
10.2 能力成熟度整合模式的歷史演變
10.3 能力成熟度整合模式
10.4 流程領域介紹
10.5 本章總結

附錄 軟體工程個案研討:需求管理



  自1955 年開始有了軟體產業以來,軟體成為推動世界向前邁進的主要動力之一。1993 年,全球IT 軟體與服務產值首度超過硬體產值,正式宣告了軟體成為資訊科技主軸的時代來臨。時至今日,不論是我們日常生活所及,或是在企業與組織內部,或是國防與太空科技,軟體都扮演了不可或缺的角色,主導著各類系統的運作,其對人類影響之深遠與巨大,可說是無遠弗屆。

  談到軟體產業,就不能不談到與其息息相關的軟體工程。全世界軟體業發展成熟的國家如歐美、日本及印度等國,不但重視軟體工程,也藉由軟體工程技術與流程改善來發展具有一定品質的系統與產品,使其軟體產業在世界占有一席之地。

  回顧台灣過去約三十年的軟體產業,長久以來一直未能蓬勃發展,目前似乎更已陷入瓶頸。追本溯源,以往台灣的資訊科系教育偏重程式開發技術 (Programming Language Skill),而較不重視流程(Process)、領域知識(Domain Knowledge)、塑模(Modeling),以及品質管控(Quality Control)。在此教育體制下畢業後進入產業的軟體工程師,大部分依舊著重程式碼的撰寫,相較於歐、美、日等軟體業成熟之國家,甚或是軟體代工新興國家---印度,台灣顯然缺乏應用軟體工程的開發方法,導致所開發的軟體品質參差不齊,連帶影響國外大廠對我國軟體產業的信任。

  個人認為要提振台灣的軟體產業,必須有更寬廣的軟體工程新思維及做法。軟體工程不僅僅是過往大家所只著重的程式開發技術,它還包含了流程、塑模與品質等軟體開發的重要觀念。做法上應從四個層面著手:第一是軟體知識,第二是軟體教育,第三是軟體流程,第四則是軟體市場。

  在軟體知識部分,必須將軟體知識與領域知識合一。整體產業的未來發展應該要能結合專業領域知識與軟體知識,這又可分為三個層面來談。其一是國內軟體公司雖然具備相當的專業領域知識,但相對而言,軟體知識以及軟體系統整合的能力則較缺乏,因此必須著力於提升其軟體方面的知識與能力,才能與原有的領域知識相加相乘,建立更優越的競爭能力。其次是過去數十年來,台灣擁有相當多紮實優異的傳統產業,雖然隨著科技與時代進步而逐漸式微或外移,但是如果台灣的軟體公司能將專業領域擴展至傳統產業,藉由兩者的結合而重新賦予傳統產業全新之生命力,軟體產品服務亦可隨著傳統產業的外移而向外擴展,發光發熱。最後,台灣軟體產業則應與目前在世界占有舉足輕重地位的台灣硬體系統產業結合,藉此提高嵌入式軟體的開發與測試市場,走出原有的市場窠臼。

  產業的源頭在教育及人才,因此在軟體教育方面,須著重於與產業接軌的人才培育。要強健台灣軟體工程競爭力,除了政府、產業界的投入之外,主要發展的關鍵在於培養全方位的專業人才。過去囿限於偏重程式開發技術的資訊教育,造成從學校出來的學生到了業界無法立即投入生產,或是缺乏足夠的戰力,所開發的產品品質亦是良莠不齊,維護困難。這種現象不但造成高素質人才的斷層,也損耗了業界的生產力與進步動力,連帶影響整個軟體產業的惡性循環,因此軟體人才的培育,實在是刻不容緩的教育大計。個人認為,做法上應該在大學的資訊科系提供完整的軟體工程專業學程,進而成立軟體工程系所與學院,以專業領域為導向,整合各校資源,藉此引導學生在學理及應用上的系統整合能力,提高軟體工程教育的質與量,培育產業界所需的國際水準之人才。

  在軟體流程方面,則強調流程應與組織文化融合。近來政府大力提倡的能力成熟度整合模式(CMMI),其實是軟體工程的一部分,主要著重在流程改善,導入CMMI 將可協助企業以漸進方式來進行流程改善(Incremental Process Improvement),有效地協助企業對專案進行預估和量化管理。組織對CMMI 的推動應該以務實、踏實的態度執行,不能一味要求速成,所以導入CMMI 一定需要時間將它徹底地植入企業文化,融入組織血液裡,如此方能達到真正改善軟體開發流程與品質的目的。

  最後在軟體市場面,則提倡軟體市場與工程技法(Engineering Practice) 合一。台灣本身的軟體市場有限,如果我們的軟體公司想要走出台灣,承接國際的軟體外包計畫,除了提升自己的技術與能力之外,還要與國際要求的工程技法接軌,才能增加合作機會並獲得合作廠商的信賴。在實際做法上,可以透過成立軟體工程技術中心,訓練與提升國際認可之工程技法。

  作者撰寫本書的目的在提供完整的軟體工程觀念及範例,引導讀者跳脫以元件的方式來看軟體,而改以系統的方式看待整個軟體專案。因此在內容的規劃上,可以與教育部顧問室委辦成立之「軟體工程聯盟」所推廣的軟體工程學程互相對應參考。

軟體工程學程
  1.初階課程
  a.軟體工程方法論
  軟體工程概論
  個人軟體流程
  物件導向軟體工程
  b.軟體流程管理
  軟體品質管理
  c.軟體正規方法
  軟體工程數學

  2.中階課程
  a.軟體工程方法論
  軟體工程進階
  元件式軟體發展技術
  軟體架構
  模型驅動導向
  軟體工程環境
  b.軟體流程管理
  團隊軟體流程概論
  能力成熟度整合模式(CMMI)
  c.軟體正規方法
  軟體工程正規方法
  進階軟體工程機率與統計

  3.高階課程
  a.軟體工程方法論
  軟體發展:個案研究
  代理人式軟體工程
  工作流程應用程式軟體工程
  網際服務軟體工程
  b.軟體流程管理
  軟體衡量
  軟體專案管理
  經驗實證軟體工程
  c.軟體正規方法
  計算智慧軟體工程

  在軟體工程聯盟所推廣之「軟體工程學程」中(見上表列),將縱軸的課程分為初階、中階與高階,橫軸則涵蓋了軟體工程方法論、軟體流程管理和軟體正規方法三大知識領域(Knowledge Area),每項知識領域和層級都有相對應的課程,如近年熱門的CMMI 就是被列在中階課程。藉由軟體工程聯盟的推動,希望能有系統地協助國內共五十四所大專院校更新軟體工程相關課程,為國內培育更多具備軟體工程專長的開發人才。

  在有了軟體產業五十多年後的今天,世界上各行各業的需求反過來成為推動軟體向前邁進的主要動力。面對這樣的潮流趨勢的挑戰,我們絕對不能缺席,也不能一味想要複製與印度或中國大陸相同的模式;而是應該以全新的思維與積極的做法,走出一條不一樣的路:軟體工程應以服務整體產業為目標,而非僅是局限於軟體產業本身。現實的世界裡,軟體已經無所不在,舉凡精密機械、金融、手機系統等各種產業領域,無一不需要軟體。透過軟體工程的全新思維,軟體產業是台灣重新加碼進入全球競爭的新契機。

  本書內容共包含十個章節。第1 章介紹軟體危機與流程,軟體產業發展至今超過數十個年頭,其間經歷了不間斷的技術創新與開發過程改善,使得此項產業愈形重要,成為日常生活裡其他產業的重要運作核心或推手。一旦這些軟體發生錯誤而造成的電腦當機或系統失靈,每每引發難以彌補之傷害,不幸的是,這樣的例子處處可見,不曾間斷。本書將以軟體危機引言,把軟體工程的概念帶入軟體發展,目的不是要尋求軟體發展的萬靈丹,而是希望透過本書的內容,能讓讀者對軟體的特性與開發有正確的認知與深刻的體會,並了解在軟體工程領域的歷史是如何與這軟體狼人共舞。接著介紹軟體流程,合適的流程可以有效率地開發系統,不合適的流程則會延宕專案的進行。組織或開發團隊必須依照自己的特性去設計自己的流程,本章所提僅是大架構上的流程模式,組織可以透過定義合適的流程來改善軟體開發的效率與產品的品質,讓軟體開發流程與組織企業文化相融合。

  第2 章認識需求工程。需求工程為軟體開發的第一步,是後續設計、開發、實作的基礎。如果需求定義上出了問題,即使有好的設計與實作能力,終究會產出不合使用者期待的產品或系統。然而,要建立正確的需求並不容易,它需要來自各種不同觀點的分析方法、溝通技巧與專業的領域知識。除此之外,需求的管理更是一門學問,許多的專案因為沒有妥善地管理需求的變異,導致系統不斷地發散擴張而無法收拾結案。本章的主題在闡述需求擷取、建立與管理的方法和技巧。

  第3 章深入了解物件導向軟體開發,物件導向軟體開發方法之主要概念是將真實世界以物件封裝觀念進行塑模。其包含四個階段:企業塑模、物件導向分析、物件導向設計與物件導向實作。企業塑模是針對使用者需求加以分析,建立系統的使用案例模型與領域模型。在物件導向分析階段,即針對每個使用案例進行分析,利用互動圖描述物件之間的訊息交換,以完成使用案例所需求的功能。在物件導向設計階段則依據分析階段之產出,再加以細部設計轉換成具體的軟體系統模型。當細部設計完成後,程式設計師即可使用所建立的設計圖為藍本,實作物件導向軟體系統。

  第4 章闡述軟體設計的基本概念,從軟體設計概念、軟體設計策略與方法、軟體設計規格書撰寫,以及進階設計概念等方面來描述軟體設計的相關知識,期使讀者在學習軟體設計的技術知識時,能夠同時獲得工程化思維方式的訓練。主要內容包含架構設計、介面設計、資料結構設計,以及演算法設計。本章強調軟體系統分析與系統設計的分工與對應,尤其著重於軟體架構設計對於大型軟體系統開發的重要性。

  第5 章主要探討軟體專案的計畫與管理議題。如同軟體系統開發,為了能更有效率地執行軟體專案,軟體專案的計畫與管理引進了流程(Process) 的概念,軟體專案管理流程配合軟體專案管理計畫,對於專案的執行將有莫大的助益。軟體專案的生命週期大致可分成初始(Initial)、計畫 (Planning)、執行(Execution) 與結案(Closure) 四個階段。軟體專案流程的工作,必須考慮專案是否應該進行、如何開始進行,以及有哪些項目應列入考量,進而形成一份計畫書,其後根據此份計畫書進行專案的執行、管理與監控,以利該軟體專案的完成。專案管理工作執行的切實與否,對軟體專案開發之過程能否順利具有相當重要的影響。

  第6 章談軟體測試。在軟體發展過程中,可能因為人為疏失、溝通不良而造成規格不符、設計錯誤或程式撰寫疏漏等問題,這些問題不僅延誤軟體開發時程,更有可能導致軟體開發成本的增加,甚至嚴重影響軟體的品質。為了能找出因上述各種因素所造成的軟體錯誤、瑕疵與損害,便需要經由軟體測試的相關技術來保證軟體系統的品質。在對軟體流程、開發與管理有了基本認識之後,第7 章將軟體品質的觀念帶了進來。在我們的生活周遭,有許多因軟體品質管理缺失而導致非預期事件的發生,例如,與鐵、公路相關的購票系統,曾發生售票出現重複劃位的情況,不僅造成旅客購票很大的困擾,也使得企業的形象受損。由此可知品質的控管對軟體專案的重要性。此章講解軟體品質概念、品質管理工作內容,並介紹提升軟體品質的方法。

  第8 章介紹軟體建構管理及其工作內容。在軟體發展中,管理軟體版本、建立軟體基準與控制軟體變更是不可或缺的。有太多的軟體專案因為軟體變更的管控不當,導致重大的損失,甚至是整個專案的失敗。能實際落實建構識別、建構控制、建構狀態報告與建構稽核等建構管理工作,則變更所造成的影響與損失將可妥善控制。

  第9 章將數學理論與軟體工程方法做了結合,稱之為軟體正規方法論。在許多傳統的工程領域中,例如,電子、電機、土木、機械等,其所發展出來的諸多方法論都有數學理論做為基礎,數學分析的工作在這些產品設計方法中,也成為開發過程中基本的一環。但在軟體工程領域中並非如此地普遍,即使軟體工程的數學理論研究發展至今已有近三十年的歷史,卻沒有廣泛地應用到實際的軟體發展方法論中。在此章中,將討論以數學為基礎之軟體正規方法論在軟體開發之應用,同時也將探討所面臨的挑戰。整體而言,軟體正規方法是值得軟體開發人員學習的主題,對於提供高品質的軟體有相當的助益。此章的主題著重在探討軟體工程與正規方法論的關係,以及如何透過正規方法的應用,提高所開發軟體的品質與可靠性。

  本書的第10 章帶領讀者認識對軟體開發具有重要影響的軟體流程改善方法,尤其針對美國卡內基美隆大學軟體工程研究所所發展出來的能力成熟度整合模式(CMMI) 進行概要式的探討,讓讀者可以了解以CMMI 模式為基礎的流程改善方式。尤其本書先前章節的探討分析,相信讀者十分了解軟體本身有著本質上的問題及困難,而軟體工程的各種工程層面及管理層面之各項技法,便是為了要能夠逐步克服與減緩這些軟體與生俱來的複雜性、易變性、隱藏性及一致性等問題,進而透過有系統性的軟體流程改善,讓開發團隊能循序漸進,階段性地學習如何與這軟體狼人共舞。

  本書最後以一個軟體開發的真實案例,引導讀者體會真實的軟體開發之困難與過程,了解需求管理是如何進行,並期望透過此案例的安排,讓讀者能在理論與實際的對照中感受軟體工程以及其相關的工程技法所帶來的實質好處。至於各章節中的相關關鍵詞彙,本書統一整理彙編成詞彙對照表並附於書後,以方便初步接觸軟體工程的讀者對照參考,幫助理解書中的基本概念與內容。

  最後我希望能對下列人士表達由衷的感謝,郭忠義、薛念林、潘健一、賴聯福、徐國勛、范姜永益、吳佳燐、李文廷、王躍強、鄧煥友、馬 尚彬、李信杰、Carol Lai、Maggie Wu、Ariel Chou、Stella Chang、Mandy Lin、Ariel Hsu 等人為完成本書所做的貢獻。期待本書的付梓能為台灣在軟體工程領域上開啟一扇窗,適時地與國際趨勢潮流接軌,透過軟體工程的全新思維,讓台灣能在這片經濟寒冬當中,重新加碼軟體產業,尋求進入全球競爭的新契機。






其 他 著 作