關於軟體開發程序

從電腦發明,隨這軟體走出實驗室成為商品以來,軟體的規模愈來愈大,也愈來愈複雜。軟體開發除了追求其可用性(正確性、速度、穩定性、安全性),軟體專案管理者必須思考的 ,還有軟體開發的速度、可再使用性、可維護性、整合性、管理性議題等。於是乎軟體開發程序,便成為軟體工程中重要的一支。

軟體開發程序討論如何把一群人(管理人員、設計及開發人員,工程師及客戶),加上使用相關設備與財物組織起來,以某種形式的組織架構、程序及方法論,投入於特定領域的軟體生產工作。這項工作同時受成本及時間的某些限制。目前的軟體開發程序也包含所使用的工具、技術與管理控制方法。

軟體開發程序可以成為組織內部,軟體開發部門的制度及企業文化。有系統的開發團隊、部門或組織 ,對於軟體開發需要有其本身所共同奉行的制度,不管是由上而下的管理,或者是共同創造的意識,務必要讓這個制度,或者開發程序,根據環境因素的發展隨之調整。為使軟體開發程序或制度能夠有效,在學術及實務領域中共同提出了許多發展方法論。簡單的只是提出一些規則,複雜的可能還包括一些應用工具。徒法不足以為訓;如何選擇適合本身的方法論需要檢視本身的規模、使用技術層次、資源及人員水準等的各項因素。而且每一種方法論並不是完全適用 ,需要調整以符合本身條件,各個方法論之間也可以相互擷取可用的部分,相互補強。但是最終的結果仍然有可能不是令人滿意,這需要組織成員不斷的調適以及改善制度。

本頁除了介紹相關文章外,希望也能提出一些議題供大家討論。希望各位賢達能對各項議題提出實務上的應証及看法,各位可透過『點空間』的討論區、留言版上提供意見。

本單元分成三個部分:

  1. 軟體開發程序

  2. XP (eXtreme Programming)

  3. RUP (Rational Unified Process)

這個專欄主要是收集及翻譯中外著名學者專家,針對軟體開發程序所發表的各類精采文章 ,以供各界同好參考 。當然,若其中有所遺漏或不正確之處,也希望提出糾正。這些文章有些是『點空間』的成員所撰寫,或從網友、同好處收集得來,版權所有,故未經同意不得以任何方式被傳送或發行。

軟體開發程序

標題&內容摘要 資料來源&作者 轉譯校稿 發表日期
如何發揮海外軟體開發效益

海外軟體開發的確可以讓企業利用全球多元化的人才、降低固定支
出的行政成本與人力成本; 但一方面也讓企業面臨較高的品質交期
難以掌控的風險, 與因為地理文化或溝通協調的隔閡所造成的損失,
而吃掉原本海外軟體開發應獲得的效益.....

嵌藝創研軟體科技
(登於286期 資訊與電腦 5月號)

 

2004/06/12
Extreme Programming與Unified Process的有效實務作法

Effective Practices for Extreme Programming and the Unified Process

[內容摘要]

Agile ModelingAM)是一種亂中取序、序中求變、應用導向的方法論,能夠有效率地建構軟體系統的模型。AM方法論是一部原理與其價值的指引,內容是軟體開發實務作法的集合,也就是說AM是軟體技術人員日常運用的基本原則指南。AM並不是一種慣用的開發程序,換句話說,它並沒有定義詳細的程序以建立某種特定的模型,反而提供身為塑模人員要如何有效率地工作的指導方針。AM是需要"臨摹體會(touchy-feely)"而非"套招對式 (hard and fast)",要試著把AM當作一門藝術而不是科學。

(未完待續)

Scott W. Ambler 譯者:姚長利  

校稿:Peter Ho、Areca Chen

2004/02/11
軟體專案開發

[內容摘要]

在以專案為主的軟體公司打滾了三年多,對於軟體開發週期的每一個細節都有接觸,雖不能說很專
業,但卻可提出以專案為主的軟體開發,時常會遇到的問題供參考之。

曾培彥 2004/2/11
甚麼是靈活塑模?

What is Agile Modeling (AM)?

[內容摘要]

靈活塑模是一種以實務為基礎的方法論,它可以應用在以軟體為基礎的系統上,提供有效的塑模及文件紀錄。簡單的說,靈活塑模是塑模的相關價值觀原理、及實務作法,這些價值觀、原理及實務作法應用在軟體專案的開發,以提供價值塑模基礎有效及輕量的手法。

Scott W. Ambler

Areca Chen

2003/3/6
讓軟體軟下去

原文:Keeping Software Soft()

[內容摘要]

Martin Fowler 以程式設計的觀點,告知我們軟體設計的重點,在於「」,並且能夠「擁抱改變」。要能擁抱改變,軟體設計就必須做到能「」。所謂的「」,就是程式必須具有彈性(flexible),然而過於考量設計有伸縮能力的程式,也會造成成本的浪費及維護的困難。因此,如何拿捏,就必須時時詢問自己,「把一個簡單方案,變成一個我需要的靈活方案有多難?」,同時掌握住「簡單的設計」這個要訣。

 

Martin Fowler
Chief Scientist, ThoughtWorks

劉焱 譯作

朱子 編校

2002/7/23
Is Design Dead?

[內容摘要]

軟體工程近來頗受重視,UML 語言、RUP 方法、CMM 規範、以致於 XP、以及其後的 Agile Method 等等,各有擁護者,也各有優缺點。譯者總是抱著這些方法都是外國人根據當地的環境所制定的方法,台灣不可能也不可以不假思索直接套用。必須在了解這些方法的精神之後 ,挑選或者拼湊,甚至修改這些方法,而成為每個公司或是產業之中最有效率的流程方法。當然,做事的方法或步驟都只是幫助事情能夠以比較有效率的方式發展,無論如何,Domain Knowledge 的累積與運用、團隊的合作等等,更是成敗的關鍵。

 

Martin Fowler
Chief Scientist, ThoughtWorks

Daimler Huang 譯作

朱子 校稿

2001/12/4
推薦連結  RUP及XP—part I:找尋共同點 Khawar Ahmed (Technical Marketing Engineer / Rational Software)
Loic Julien (Software Engineer / Rational Software
SOS 747

劉昌憫

李潛瑞

2001/06/13

推薦連結  RUP及XP—part II:差異評估 Gary Pollice
Evangelist(福音書著作者), The Rational Unified Process/Rational Software
SOS 747

夏靜凝

李潛瑞

2001/06/21

XP(eXtreme programming)

標題&內容摘要 資料來源&作者 轉譯校稿 發表日期
Extreme Programming Explained》譯序

[內容摘要]

這是一本刺激的書,它披露許許多多驚人而反傳統的觀點,對正規的軟體工程最具挑戰味道的,莫過於『軟體改變成本不隨時間大幅增加』的看法。要知道,軟體最大的敵人在於變動,甚至可以說,若能提出成功對抗變動的軟體方法,就算還稱不上是『銀製子彈』,最少也可以讓專案風險『暫時停止呼吸』好一陣了。

李潛瑞 李潛瑞 2002/5/27
CMM視角看終極編程

Extreme Programming from a CMM Perspective

[內容摘要]

終極編程(XP)近來已被當作一種適應快速多變的網際網路世界和網路軟體開發的程式設計方法而受到倡導。本文從軟體能力成熟度模式(簡稱CMM,是為軟體機構規定開發程序改進優先的五級模式)的觀點重新檢視這一廣受歡迎的方法論,概述XPCMM,並從軟體CMM角度對XP作出評論。結論是:一些羽量級的方法論,如XP,倡導了許多良好的軟體工程慣例,但是一些慣例尚有爭論,且如果在使用的時候超出其狹窄的適用範圍後,使用起來的效果則適得其反。由於XP可以被用來處理很多CMM第二級和第三級的慣例,對開發程序改進有興趣者應仔細考慮後方能採用XP中的觀念,將其應用於軟體機構的商業環境中。反言之,使用XP的機構也應仔細考慮CMM描述的管理和基礎結構問題。

 

Mark C. Paulk

軟體工程研究所

卡內基` 梅隆大學

 


沈蘇南

朱斌

朱子

 

2002/4/15
瞄準、射擊(Aim, Fire)

原文

[內容摘要]

很多人批評XP是『先射擊、再瞄準』,XP的創始人Kent Beck也曾經在其著作當中說明XP的確是『先射擊、再瞄準』,而且是比『先射擊、再瞄準』的好。不管是先瞄準還是後瞄準主要的重點是所謂的的瞄準所指的就是『設計』。XP不使用一般開發方式使用『前置設計』預先對系統架構作設計。

在本文中Kent Beck提出了一個新的觀念,也就是在舊有的理論中『先寫測試(test-first)』也就是代表了『設計』的概念。因為先寫測試迫使程式設計師對系統架構必須有鮮明的了解,其結果也就是『設計』的概念。 所以XP也可以說是『先瞄準、在射擊』

Kent Beck
(本文已獲Kent Beck的授權翻譯並公布於網頁。)
Areca Chen 2002/1/15
與Kent Beck對談實錄

原文

[內容摘要]

由UML China於2001年12月7日舉辦與XP創始人Kent Beck對談實錄之內容整理及翻譯。

UML China

本文已獲UMLChina同意刊登。

Areca Chen 2001/12/17
XP:抄近路的詭計
Doug Rosenberg及Kendall Scott對於XP的質疑

原文

Pdf 版本(793KB)

Zipped版本 (599KB)

[內容摘要]

XP是新興的一個軟體開發程序的方法論。其中值得質疑的地方相信還是蠻多的。以不同的角度來看XP對於想採用XP方法論的人而言,這篇文章提供相對的角度來看XP。雖然作者所持的論證可能有些偏頗也未能深入論證XP的問題點。但是這篇文章值得我們閱讀之處乃在於對於任何事物的質疑是不可避免的。任何方法論都有其優缺點,我們如何採用其優點而避開其缺點。同時我們應該學習的是在批評別人時如何把自己的論證做的讓人信服;個人認為這才是重點。

Thanks for visiting us
Doug Rosenberg,
Kendall Scott

(本文已獲Mark Collins-Cope的授權翻譯並公布於網頁。)

 

Areca Chen

 

2001/12/12
分析:「XP」能否進行大規模軟體發展

發佈時間:2001-07-04 15:51:56

日經BP 朱子提供 2001/11/5
與作者Robert C. Martin深度技術訪談關於終極製程

In-depth technical interview with author Robert C. Martin on eXtreme Programming

原文:

Pdf 版本(669KB)

Zipped版本 (458KB)

[內容摘要]

Robert C. Martin是ObjectMentor總裁, 物件導師(Object Guru), 『 C++ Report 』的編輯及『 Designing Object-Oriented C++ Applications using the Booch Method』的作者。本文是由Mark Collins-Cope詢問Robert C. Martin回答。Robert C. Martin在實務上採用XP開發軟體的經驗與理論上的映證經由Mark Collins-Cope一針見血的詢問得以一一闡述的淋漓盡致。XP的發展時間不長,實證上的例子不多,這篇文章提供愛好XP而對XP有所懷疑的讀者一個相當好的映證的機會。

Thanks for visiting us

Mark Collins-Cope

(本文已獲Mark Collins-Cope的授權翻譯並公布於網頁。)

本譯文亦穫RATIO公布於其技術圖書館的網頁上

 

Areca Chen 2001/10/31
如何規劃XP專案

Planning Extreme Programming: The XP Series

[內容摘要]

這本書是The XP Series其中之一。這是一本有關規劃軟體專案的書。主要是為專案管理者所寫;他們必須規劃及監督實際的相關規劃工作。當然這本書也提供程式設計師及客戶;他們是扮演規劃及開發軟體的實體的角色。

(本文因未取得原著者授權僅限進偕會員閱讀,一般會員及網友只限一至三章。)

Kent Beck

Martin Fowler

Areca Chen 2001/10/10

 

解析XP(XP Distilled)

[內容摘要]

去年夏天在同事的影響下開始接觸軟體工程的資訊,UML、RUP、方法論... 一切都是那麼新鮮。偶然間看到 XP 這樣的名詞,參考了 XP Distilled 這篇文章之後感覺到,RUP 以及 UML 的入門檻似乎高了點,而且那麼多規範、做法,如何能夠在短時間消化
之後,進而選擇、安排適合工作環境的流程做法呢?而 XP 卻能夠抓住 Internet 時代軟體研發的快速和變化等精神,提出令人躍躍欲試的技巧,這就像是在慌亂的登山步道看見山友留下的指引一般,指點我們一條出路。就讓我幫大家節省一點時間,將XP Distilled 這篇文章翻譯成中文,並取得作者之一 Roy Miller 的授權,而得以和大家分享這樣的資訊。這篇文章尚未經過仔細校稿,如果有任何建議,歡迎寫信給我指教。

Chris Collins(Senior Software Developer, RoleModel Software, Inc.)

Roy Miller(Software Developer, RoleModel Software, Inc.)

Daimler Huang

[徵求校稿]

初稿2001/09/26
推薦連結 李潛瑞的XP網站 李潛瑞 李潛瑞 2001/09/26
終極製程eXtreme Programming(XP)

[內容摘要]

      XP是目前相當熱門的話題。XP是由Kent Beck於1996年代初期提出。他與Ward Cunningham共同工作一段時間,由於軟體開發的經驗希望提出一個比較簡單並有效率的方法。當初Kent思考什麼是讓軟體容易建構的因素;什麼是讓軟體困難件夠的因素。1996年Kent接受 DaimlerChrysler的專案並開始使用新的概念開發軟體。以而誕生了XP的方法論。

      Kent所認知的要改善軟體專案有四的方向,你需要改善溝通,你必須找尋簡化的途徑,你需要獲得回饋以讓你做的更好,你需堅持勇敢的去做。『溝通』『簡化』『回饋』及『勇氣』是XP四個主要精神所在。

    XP在規劃、設計、編寫程式及測試四個階段共提出了28條簡單的規則及實務作法。並對於如何導入XP提出了一些說明。這些規則、實務作法也應用了一些軟體工程的理論如單元測試、可接受測試、整合程式碼等等,但未深入說明其實際內容。所以這一部份需要讀者自行再另行研究,也就是說原作者認為讀者應該已了解相關知識,但這並不影響對於本文的了解,後續我們也希望整理相關的軟體工程技術。 

  (檔案較大請耐心等候)

J. Donovan Wells

(本文已獲原作者Don Wells的授權翻譯並公布於網頁。)

Areca Chen

感謝趙光正校稿

初稿2001/08/17

第一次校稿2001/08/22

第二次校稿2001/09/25

RUP(Rational Unified Process)

標題&內容摘要 資料來源&作者 轉譯校稿 發表日期
活學活用 UML 與樣式:物件導向分析與設計與統一流程入門第二版(第一至 二十章)

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd Edition)

[內容摘要]

「在這一版中,Larman 維持他一貫精準、細心的寫作風格。這是一本非常好的書,而且第二版更好。」 - 使用案例最佳實務 - 寫作指南、秘訣與範本(Writing Effective Use Cases)與 Surviving OO Projects 兩本書的作者:Alistair Cockburn。

「有辦法把東西解釋清楚的人不多,這些人當中還會物件導向分析與設計的人更珍貴了,而 Craig Larman 身兼兩者。」 - Design Patterns 與 Pattern Hatching 兩本書的作者:John Vlissides。

《活學活用 UML 與樣式:物件導向分析與設計與統一流程入門第二版》是全世界介紹物件導向分析與設計、反覆式開發方式與 UML 的書當中,銷售量最好的一本書,現在已經完全更新過了!活學活用 UML 與樣式第二版將可幫助任何開發人員,或學生精通物件導向分析與設計的核心開發原則與最佳實務經驗,讓大家不只是畫畫 UML 而已,而是真的能把它活用在軟體設計情境中。著名的物件技術與反覆式開發方法先驅 Craig Larman 在本書中用單一、有一致性的個案研究,具體呈現開發過程中的三個反覆。透過這三個反覆,逐步介紹物件導向分析與設計中的關鍵技能,並且點出最必要的開發活動、開發原則與樣式。

本書內容涵蓋了:

  • 需求與使用案例:發掘需求並記錄它
     
  • 產生領域物件模型:理解領域中「有興趣的物件」、它們的屬性以及它們之間的關係
     
  • 架構:為了讓應用程式具有最大的彈性、強固性與可維護性,採用分層式架構設計系統
     
  • 必要的物件設計技巧:專精一些關鍵技能,其中包括分配物件責任以及根據一些開發原則設計物件間的合作關係-例如資訊專家樣式、間接性樣式與預防變異樣式
     
  • 設計樣式:用很流行、常用的樣式產生強固的物件與框架-例如策略樣式、工廠樣式、轉接器樣式、觀察者樣式、範本方法樣式與命令樣式
     
  • 反覆式開發方式與「敏捷式統一流程」:用 UP(一種很風行的反覆式流程)中簡單、不可或缺的開發活動與最佳實務經驗組織建立模型與開發系統的流程

這個新版本是經過慎重考慮過的更新版,裡面有新的個案問題,也更新了樣式、使用案例、UP、架構分析等部份。活學活用 UML 與樣式第二版對如何思考物件、設計物件做了透徹而實際的介紹。

作者簡介 Craig Larman 是 Valtech 公司在開發流程與方法論方面的主管, Valtech 是一家居領先地位的國際電子商務顧問團隊。在國際軟體社群中,作者是物件技術、樣式、 UML 、建模型與反覆式開發方式方面廣為人知的專家。Larman 從 1980 年代開始就協助人們學習物件與反覆式開發方式,他曾親身教過數千位開發人員。此外,他也是 Java 2 Performance and Idiom Guilde 一書的協同作者,並且擁有加拿大不列顛哥倫比亞省 Vancouver市 Simon Fraser 大學的計算機科學學士、碩士學位。

(;2,374,695 bytes)

Craig Larman

Valtech 公司在開發流程與方法論方面的主管

趙光正

本書譯者(目前這本書台灣培生出版社發行)

2002/9/18
Rational 統一流程入門第二版(第一至三章)

The Rational Unified Process An Introduction Second Edition

[內容摘要]

這本書非常簡潔,裡面快速介紹Rational 統一流程(Rational Unified Process,RUP)的一些概念、結構、內容和動機。RUP 是一個具備網際網路功能的軟體工程流程,它強化團隊的生產力並提供成員最好的軟體實務經驗。RUP非常特別,開發團隊可以透過它了解統一模型語言(Unified Modeling Language,UML)、軟體自動化和業界最佳實務經驗的所有優點。Rational 統一流程統一整個軟體開發團隊的工作,並且讓每位成員達到最高生產力,因為它為大家帶來了成千上萬個專案與頂尖業界領導者的經驗。想在可預期時程內、用合理預算、輕易完成高品質軟體嗎?快拿本書當作你的指導手冊吧!本書作者與你分享他最深層的流程相關知識,並且把焦點放在RUP 的關鍵點,讓你很快就能專精RUP 這個已被證實過、確實可行的軟體開發解決方案。

本書第二版主要根據最新版的Rational 統一流程更新以符合最新內容。事實上,完整的RUP 2000 裡,還包括:
更多的e-開發指引
一份學習地圖,教你如何把流程應用到各式各樣的專案和技術上
擴充過的測試分析,現在它會橫跨整個產品生命週期改良過的應用程式介面設計範圍-特別針對如何開發有效的網際網路應用程式
針對及時與互動系統,提供更詳盡的說明
深入淺出介紹如何用樣式和框架來設計系統

Philippe Kruchten 是Rational 統一流程產品的首席架構設計師。他有超過25年的大型、軟體密集式系統開發經驗,這些系統的領域包括通訊、安全防禦、太空、交通和軟體開發工具。他並擁有Ecole Centrale de Lyon(法國)的機械工程學位和French Institute of Telecommunications 的電腦科學博士學位。

(;1,027,607 bytes)

Philippe Kruchten

Ecole Centrale de Lyon

趙光正

2001/10/12

2008年08月23日 星期六