軟件開(kāi)發(fā)一個(gè)復(fù)雜的活動(dòng), 它包含了需求調(diào)研, 系統(tǒng)設(shè)計(jì), 開(kāi)發(fā), 部署, 維護(hù)等活動(dòng). 而且現(xiàn)有規(guī)范和流程目的并不是讓你去完成文檔, 而是通過(guò)這些文檔, 讓軟件的質(zhì)量更能得到保證。組成軟件開(kāi)發(fā)和系統(tǒng)演化的活動(dòng)有著各種模型(軟件生存周期,軟件開(kāi)發(fā)模型,軟件過(guò)程),但是典型地都包含了以下的過(guò)程或活動(dòng):分析、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)(測(cè)試驗(yàn)收)、產(chǎn)品化、維護(hù)。
軟件開(kāi)發(fā)方法的一般要求:當(dāng)提出一種軟件開(kāi)發(fā)方法時(shí),應(yīng)該考慮許多因素,包括:
① 覆蓋開(kāi)發(fā)全過(guò)程,并且便于在各階段間的過(guò)渡;
② 便于在開(kāi)發(fā)各階段中有關(guān)人員之間的通信;
③ 支持有效的解決問(wèn)題的技術(shù)
④ 支持系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)的各種不同途徑
⑤ 在開(kāi)發(fā)過(guò)程中支持軟件正確性的校驗(yàn)和驗(yàn)證;
⑥ 便于在系統(tǒng)需求中列入設(shè)計(jì)、實(shí)際和性能的約束;
⑦ 支持設(shè)計(jì)師和其他技術(shù)人員的智力勞動(dòng);
⑧ 在系統(tǒng)的整個(gè)生存周期都支持它的演化;
⑨受自動(dòng)化工具的支持。
一個(gè)項(xiàng)目的成功與否跟人員、技術(shù)、資源、測(cè)試、架構(gòu)、需求、領(lǐng)導(dǎo)、組織等因素有關(guān)系。把以上內(nèi)容我們劃分為生命周期、人員、方法、工件、組織。而我們的軟件過(guò)程就針對(duì)這些方面討論解決方案,目前的有Rup、AP、MP、HP、CMMI、Psp、Tsp等。這里將介紹一些方法的思想與指導(dǎo)原則。
一、軟件過(guò)程模型
分類(lèi):
1.慣例過(guò)程模型。
2.瀑布模型(又叫作生命周期模型)。
3.增量過(guò)程模型: 包括 增量模型、RAD模型。
4.演化過(guò)程模型: 包括 原型開(kāi)發(fā)模型、螺旋模型、協(xié)同開(kāi)發(fā)模型。
5.專(zhuān)用過(guò)程模型: 包括 基于構(gòu)件的開(kāi)發(fā)模型、形式化方法模型、面向方面的軟件開(kāi)發(fā)模型。
過(guò)程模型圖:
二、常見(jiàn)軟件過(guò)程開(kāi)發(fā)方法(Rup、AP、MP、HP)
1、RUP
RUP(Rational Unified Process,統(tǒng)一軟件開(kāi)發(fā)過(guò)程,統(tǒng)一軟件過(guò)程)是一個(gè)面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開(kāi)發(fā)方法論。以用例驅(qū)動(dòng)、架構(gòu)為中心、迭代增量開(kāi)發(fā)方法。
主要內(nèi)容:
1)六大經(jīng)驗(yàn):迭代式開(kāi)發(fā)、管理需求、基于組件的體系結(jié)構(gòu)、可視化建模、驗(yàn)證軟件質(zhì)量、控制軟件變更。
2)統(tǒng)一軟件開(kāi)發(fā)過(guò)程RUP的二維開(kāi)發(fā)模型
RUP軟件開(kāi)發(fā)生命周期是一個(gè)二維的軟件開(kāi)發(fā)模型。橫軸通過(guò)時(shí)間組織,是過(guò)程展開(kāi)的生命周期特征,體現(xiàn)開(kāi)發(fā)過(guò)程的動(dòng)態(tài)結(jié)構(gòu),用來(lái)描述它的術(shù)語(yǔ)主要包括周期(Cycle)、階段(Phase)、迭代(Iteration)和里程碑(Milestone);縱軸以?xún)?nèi)容來(lái)組織為自然的邏輯活動(dòng),體現(xiàn)開(kāi)發(fā)過(guò)程的靜態(tài)結(jié)構(gòu),用來(lái)描述它的術(shù)語(yǔ)主要包括活動(dòng)(Activity)、產(chǎn)物(Artifact)、工作者(Worker)和工作流(Workflow)。如圖:
3)開(kāi)發(fā)過(guò)程中的各個(gè)階段和里程碑
RUP中的軟件生命周期在時(shí)間上被分解為四個(gè)順序的階段,分別是:初始階段(Inception)、細(xì)化階段(Elaboration)、構(gòu)造階段(Construction)和交付階段(Transition)。每個(gè)階段結(jié)束于一個(gè)主要的里程碑(Major Milestones);每個(gè)階段本質(zhì)上是兩個(gè)里程碑之間的時(shí)間跨度。在每個(gè)階段的結(jié)尾執(zhí)行一次評(píng)估以確定這個(gè)階段的目標(biāo)是否已經(jīng)滿(mǎn)足。如果評(píng)估結(jié)果令人滿(mǎn)意的話,可以允許項(xiàng)目進(jìn)入下一個(gè)階段。
?。?/span>1). 初始階段
初始階段的目標(biāo)是為系統(tǒng)建立商業(yè)案例并確定項(xiàng)目的邊界。為了達(dá)到該目的必須識(shí)別所有與系統(tǒng)交互的外部實(shí)體,在較高層次上定義交互的特性。本階段具有非常重要的意義,在這個(gè)階段中所關(guān)注的是整個(gè)項(xiàng)目進(jìn)行中的業(yè)務(wù)和需求方面的主要風(fēng)險(xiǎn)。對(duì)于建立在原有系統(tǒng)基礎(chǔ)上的開(kāi)發(fā)項(xiàng)目來(lái)講,初始階段可能很短。 初始階段結(jié)束時(shí)是第一個(gè)重要的里程碑:生命周期目標(biāo)(Lifecycle Objective)里程碑。生命周期目標(biāo)里程碑評(píng)價(jià)項(xiàng)目基本的生存能力。
?。?/span>2). 細(xì)化階段
細(xì)化階段的目標(biāo)是分析問(wèn)題領(lǐng)域,建立健全的體系結(jié)構(gòu)基礎(chǔ),編制項(xiàng)目計(jì)劃,淘汰項(xiàng)目中最高風(fēng)險(xiǎn)的元素。為了達(dá)到該目的,必須在理解整個(gè)系統(tǒng)的基礎(chǔ)上,對(duì)體系結(jié)構(gòu)作出決策,包括其范圍、主要功能和諸如性能等非功能需求。同時(shí)為項(xiàng)目建立支持環(huán)境,包括創(chuàng)建開(kāi)發(fā)案例,創(chuàng)建模板、準(zhǔn)則并準(zhǔn)備工具。 細(xì)化階段結(jié)束時(shí)第二個(gè)重要的里程碑:生命周期結(jié)構(gòu)(Lifecycle Architecture)里程碑。生命周期結(jié)構(gòu)里程碑為系統(tǒng)的結(jié)構(gòu)建立了管理基準(zhǔn)并使項(xiàng)目小組能夠在構(gòu)建階段中進(jìn)行衡量。此刻,要檢驗(yàn)詳細(xì)的系統(tǒng)目標(biāo)和范圍、結(jié)構(gòu)的選擇以及主要風(fēng)險(xiǎn)的解決方案。
?。?/span>3). 構(gòu)造階段
在構(gòu)建階段,所有剩余的構(gòu)件和應(yīng)用程序功能被開(kāi)發(fā)并集成為產(chǎn)品,所有的功能被詳細(xì)測(cè)試。從某種意義上說(shuō),構(gòu)建階段是一個(gè)制造過(guò)程,其重點(diǎn)放在管理資源及控制運(yùn)作以?xún)?yōu)化成本、進(jìn)度和質(zhì)量。 構(gòu)建階段結(jié)束時(shí)是第三個(gè)重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑決定了產(chǎn)品是否可以在測(cè)試環(huán)境中進(jìn)行部署。此刻,要確定軟件、環(huán)境、用戶(hù)是否可以開(kāi)始系統(tǒng)的運(yùn)作。此時(shí)的產(chǎn)品版本也常被稱(chēng)為“beta”版。
?。?/span>4). 交付階段
交付階段的重點(diǎn)是確保軟件對(duì)最終用戶(hù)是可用的。交付階段可以跨越幾次迭代,包括為發(fā)布做準(zhǔn)備的產(chǎn)品測(cè)試,基于用戶(hù)反饋的少量的調(diào)整。在生命周期的這一點(diǎn)上,用戶(hù)反饋應(yīng)主要集中在產(chǎn)品調(diào)整,設(shè)置、安裝和可用性問(wèn)題,所有主要的結(jié)構(gòu)問(wèn)題應(yīng)該已經(jīng)在項(xiàng)目生命周期的早期階段解決了。 在交付階段的終點(diǎn)是第四個(gè)里程碑:產(chǎn)品發(fā)布(Product Release)里程碑。此時(shí),要確定目標(biāo)是否實(shí)現(xiàn),是否應(yīng)該開(kāi)始另一個(gè)開(kāi)發(fā)周期。在一些情況下這個(gè)里程碑可能與下一個(gè)周期的初始階段的結(jié)束重合。
4)RUP的核心工作流(Core Workflows)
RUP中有9個(gè)核心工作流,分為6個(gè)核心過(guò)程工作流(Core Process Workflows)和3個(gè)核心支持工作流(Core Supporting Workflows)。盡管6個(gè)核心過(guò)程工作流可能使人想起傳統(tǒng)瀑布模型中的幾個(gè)階段,但應(yīng)注意迭代過(guò)程中的階段是完全不同的,這些工作流在整個(gè)生命周期中一次又一次被訪問(wèn)。9個(gè)核心工作流在項(xiàng)目中輪流被使用,在每一次迭代中以不同的重點(diǎn)和強(qiáng)度重復(fù)。
?。?/span>1). 商業(yè)建模(Business Modeling)
商業(yè)建模工作流描述了如何為新的目標(biāo)組織開(kāi)發(fā)一個(gè)構(gòu)想,并基于這個(gè)構(gòu)想在商業(yè)用例模型和商業(yè)對(duì)象模型中定義組織的過(guò)程,角色和責(zé)任。
?。?/span>2). 需求(Requirements)
需求工作流的目標(biāo)是描述系統(tǒng)應(yīng)該做什么,并使開(kāi)發(fā)人員和用戶(hù)就這一描述達(dá)成共識(shí)。為了達(dá)到該目標(biāo),要對(duì)需要的功能和約束進(jìn)行提取、組織、文檔化;最重要的是理解系統(tǒng)所解決問(wèn)題的定義和范圍。
(3). 分析和設(shè)計(jì)(Analysis & Design)
分析和設(shè)計(jì)工作流將需求轉(zhuǎn)化成未來(lái)系統(tǒng)的設(shè)計(jì),為系統(tǒng)開(kāi)發(fā)一個(gè)健壯的結(jié)構(gòu)并調(diào)整設(shè)計(jì)使其與實(shí)現(xiàn)環(huán)境相匹配,優(yōu)化其性能。分析設(shè)計(jì)的結(jié)果是一個(gè)設(shè)計(jì)模型和一個(gè)可選的分析模型。設(shè)計(jì)模型是源代碼的抽象,由設(shè)計(jì)類(lèi)和一些描述組成。設(shè)計(jì)類(lèi)被組織成具有良好接口的設(shè)計(jì)包(Package)和設(shè)計(jì)子系統(tǒng)(Subsystem),而描述則體現(xiàn)了類(lèi)的對(duì)象如何協(xié)同工作實(shí)現(xiàn)用例的功能。 設(shè)計(jì)活動(dòng)以體系結(jié)構(gòu)設(shè)計(jì)為中心,體系結(jié)構(gòu)由若干結(jié)構(gòu)視圖來(lái)表達(dá),結(jié)構(gòu)視圖是整個(gè)設(shè)計(jì)的抽象和簡(jiǎn)化,該視圖中省略了一些細(xì)節(jié),使重要的特點(diǎn)體現(xiàn)得更加清晰。體系結(jié)構(gòu)不僅僅是良好設(shè)計(jì)模型的承載媒介,而且在系統(tǒng)的開(kāi)發(fā)中能提高被創(chuàng)建模型的質(zhì)量。
?。?/span>4). 實(shí)現(xiàn)(Implementation)
實(shí)現(xiàn)工作流的目的包括以層次化的子系統(tǒng)形式定義代碼的組織結(jié)構(gòu);以組件的形式(源文件、二進(jìn)制文件、可執(zhí)行文件)實(shí)現(xiàn)類(lèi)和對(duì)象;將開(kāi)發(fā)出的組件作為單元進(jìn)行測(cè)試以及集成由單個(gè)開(kāi)發(fā)者(或小組)所產(chǎn)生的結(jié)果,使其成為可執(zhí)行的系統(tǒng)。
?。?/span>5). 測(cè)試(Test)
測(cè)試工作流要驗(yàn)證對(duì)象間的交互作用,驗(yàn)證軟件中所有組件的正確集成,檢驗(yàn)所有的需求已被正確的實(shí)現(xiàn), 識(shí)別并確 認(rèn)缺陷在軟件部署之前被提出并處理。RUP提出了迭代的方法,意味著在整個(gè)項(xiàng)目中進(jìn)行測(cè)試,從而盡可能早地發(fā)現(xiàn)缺陷,從根本上降低了修改缺陷的成本。測(cè)試類(lèi)似于三維模型,分別從可靠性、功能性和系統(tǒng)性能來(lái)進(jìn)行。
?。?/span>6). 部署(Deployment)
部署工作流的目的是成功的生成版本并將軟件分發(fā)給最終用戶(hù)。部署工作流描述了那些與確保軟件產(chǎn)品對(duì)最終用戶(hù)具有可用性相關(guān)的活動(dòng),包括:軟件打包、生成軟件本身以外的產(chǎn)品、安裝軟件、為用戶(hù)提供幫助。在有些情況下,還可能包括計(jì)劃和進(jìn)行beta測(cè)試版、移植現(xiàn)有的軟件和數(shù)據(jù)以及正式驗(yàn)收。
?。?/span>7). 配置和變更管理(Configuration & Change Management)
配置和變更管理工作流描繪了如何在多個(gè)成員組成的項(xiàng)目中控制大量的產(chǎn)物。配置和變更管理工作流提供了準(zhǔn)則來(lái)管理演化系統(tǒng)中的多個(gè)變體,跟蹤軟件創(chuàng)建過(guò)程中的版本。工作流描述了如何管理并行開(kāi)發(fā)、分布式開(kāi)發(fā)、如何自動(dòng)化創(chuàng)建工程。同時(shí)也闡述了對(duì)產(chǎn)品修改原因、時(shí)間、人員保持審計(jì)記錄。
?。?/span>8). 項(xiàng)目管理(Project Management)
軟件項(xiàng)目管理平衡各種可能產(chǎn)生沖突的目標(biāo),管理風(fēng)險(xiǎn),克服各種約束并成功交付使用戶(hù)滿(mǎn)意的產(chǎn)品。其目標(biāo)包括:為項(xiàng)目的管理提供框架,為計(jì)劃、人員配備、執(zhí)行和監(jiān)控項(xiàng)目提供實(shí)用的準(zhǔn)則,為管理風(fēng)險(xiǎn)提供框架等。
(9). 環(huán)境(Environment)
環(huán)境工作流的目的是向軟件開(kāi)發(fā)組織提供軟件開(kāi)發(fā)環(huán)境,包括過(guò)程和工具。環(huán)境工作流集中于配置項(xiàng)目過(guò)程中所需要的活動(dòng),同樣也支持開(kāi)發(fā)項(xiàng)目規(guī)范的活動(dòng),提供了逐步的指導(dǎo)手冊(cè)并介紹了如何在組織中實(shí)現(xiàn)過(guò)程。
5)RUP的十大要素
?。?/span>1). 開(kāi)發(fā)前景
?。?/span>2.) 達(dá)成計(jì)劃
?。?/span>3.) 標(biāo)識(shí)和減小風(fēng)險(xiǎn)
?。?/span>4). 分配和跟蹤任務(wù)。。
?。?/span>5). 檢查商業(yè)理由
(6.) 設(shè)計(jì)組件構(gòu)架
?。?/span>7). 對(duì)產(chǎn)品進(jìn)行增量式的構(gòu)建和測(cè)試
?。?/span>8). 驗(yàn)證和評(píng)價(jià)結(jié)果
(9). 管理和控制變化
?。?/span>10). 提供用戶(hù)支持
讓我們逐一的審視這些要素,看一看它們什么地方適合RUP,找出它們能夠成為十大要素的理由。
?。?/span>1). 開(kāi)發(fā)一個(gè)前景
有一個(gè)清晰的前景是開(kāi)發(fā)一個(gè)滿(mǎn)足涉眾真正需求的產(chǎn)品的關(guān)鍵。 前景抓住了RUP需求流程的要點(diǎn):分析問(wèn)題,理解涉眾需求,定義系統(tǒng),當(dāng)需求變化時(shí)管理需求。 前景給更詳細(xì)的技術(shù)需求提供了一個(gè)高層的、有時(shí)候是合同式的基礎(chǔ)。正像這個(gè)術(shù)語(yǔ)隱含的那樣,它是軟件項(xiàng)目的一個(gè)清晰的、通常是高層的視圖,能被過(guò)程中任何決策者或者實(shí)施者借用。它捕獲了非常高層的需求和設(shè)計(jì)約束,讓前景的讀者能理解將要開(kāi)發(fā)的系統(tǒng)。它還提供了項(xiàng)目審批流程的輸入,因此就與商業(yè)理由密切相關(guān)。最后,由于前景構(gòu)成了“項(xiàng)目是什么?”和“為什么要進(jìn)行這個(gè)項(xiàng)目?”,所以可以把前景作為驗(yàn)證將來(lái)決策的方式之一。 對(duì)前景的陳述應(yīng)該能回答以下問(wèn)題,需要的話這些問(wèn)題還可以分成更小、更詳細(xì)的問(wèn)題: ? 關(guān)鍵術(shù)語(yǔ)是什么?(詞匯表) ? 我們嘗試解決的問(wèn)題是什么?(問(wèn)題陳述) ? 涉眾是誰(shuí)?用戶(hù)是誰(shuí)?他們各自的需求是什么? ? 產(chǎn)品的特性是什么? ? 功能性需求是什么?(Use Cases) ? 非功能性需求是什么? ? 設(shè)計(jì)約束是什么?
(2). 達(dá)成計(jì)劃
“產(chǎn)品的質(zhì)量只會(huì)和產(chǎn)品的計(jì)劃一樣好。” (2) 在RUP中,軟件開(kāi)發(fā)計(jì)劃(SDP)綜合了管理項(xiàng)目所需的各種信息,也許會(huì)包括一些在先啟階段開(kāi)發(fā)的單獨(dú)的內(nèi)容。SDP必須在整個(gè)項(xiàng)目中被維護(hù)和更新。 SDP定義了項(xiàng)目時(shí)間表(包括項(xiàng)目計(jì)劃和迭代計(jì)劃)和資源需求(資源和工具),可以根據(jù)項(xiàng)目進(jìn)度表來(lái)跟蹤項(xiàng)目進(jìn)展。同時(shí)也指導(dǎo)了其他過(guò)程內(nèi)容(原文:process components)的計(jì)劃:項(xiàng)目組織、需求管理計(jì)劃、配置管理計(jì)劃、問(wèn)題解決計(jì)劃、QA計(jì)劃、測(cè)試計(jì)劃、評(píng)估計(jì)劃以及產(chǎn)品驗(yàn)收計(jì)劃。
在較簡(jiǎn)單的項(xiàng)目中,對(duì)這些計(jì)劃的陳述可能只有一兩句話。比如,配置管理計(jì)劃可以簡(jiǎn)單的這樣陳述:每天結(jié)束時(shí),項(xiàng)目目錄的內(nèi)容將會(huì)被壓縮成ZIP包,拷貝到一個(gè)ZIP磁盤(pán)中,加上日期和版本標(biāo)簽,放到中央檔案柜中。 軟件開(kāi)發(fā)計(jì)劃的格式遠(yuǎn)遠(yuǎn)沒(méi)有計(jì)劃活動(dòng)本身以及驅(qū)動(dòng)這些活動(dòng)的思想重要。正如Dwight D.Eisenhower所說(shuō):“plan什么也不是,planning才是一切。” “達(dá)成計(jì)劃”—和列表中第3、4、5、8條一起—抓住了RUP中項(xiàng)目管理流程的要點(diǎn)。項(xiàng)目管理流程包括以下活動(dòng):構(gòu)思項(xiàng)目、評(píng)估項(xiàng)目規(guī)模和風(fēng)險(xiǎn)、監(jiān)測(cè)與控制項(xiàng)目、計(jì)劃和評(píng)估每個(gè)迭代和階段。
?。?/span>3). 標(biāo)識(shí)和減小風(fēng)險(xiǎn)
RUP的要點(diǎn)之一是在項(xiàng)目早期就標(biāo)識(shí)并處理最大的風(fēng)險(xiǎn)。項(xiàng)目組標(biāo)識(shí)的每一個(gè)風(fēng)險(xiǎn)都應(yīng)該有一個(gè)相應(yīng)的緩解或解決計(jì)劃。風(fēng)險(xiǎn)列表應(yīng)該既作為項(xiàng)目活動(dòng)的計(jì)劃工具,又作為確定迭代的基礎(chǔ)。
?。?/span>4). 分配和跟蹤任務(wù)
有一點(diǎn)在任何項(xiàng)目中都是重要的,即連續(xù)的分析來(lái)源于正在進(jìn)行的活動(dòng)和進(jìn)化的產(chǎn)品的客觀數(shù)據(jù)。在RUP中,定期的項(xiàng)目狀態(tài)評(píng)估提供了講述、交流和解決管理問(wèn)題、技術(shù)問(wèn)題以及項(xiàng)目風(fēng)險(xiǎn)的機(jī)制。團(tuán)隊(duì)一旦發(fā)現(xiàn)了這些障礙物(籬笆),他們就把所有這些問(wèn)題都指定一個(gè)負(fù)責(zé)人,并指定解決日期。進(jìn)度應(yīng)該定期跟蹤,如有必要,更新應(yīng)該被發(fā)布。(原文:updates should be issued as necessary。) 這些項(xiàng)目“快照”突出了需要引起管理注意的問(wèn)題。隨著時(shí)間的變化/雖然周期可能會(huì)變化(原文:While the period may vary。),定期的評(píng)估使經(jīng)理能捕獲項(xiàng)目的歷史,并且消除任何限制進(jìn)度的障礙或瓶頸。
?。?/span>5). 檢查商業(yè)理由
商業(yè)理由從商業(yè)的角度提供了必要的信息,以決定一個(gè)項(xiàng)目是否值得投資。商業(yè)理由還可以幫助開(kāi)發(fā)一個(gè)實(shí)現(xiàn)項(xiàng)目前景所需的經(jīng)濟(jì)計(jì)劃。它提供了進(jìn)行項(xiàng)目的理由,并建立經(jīng)濟(jì)約束。當(dāng)項(xiàng)目繼續(xù)時(shí),分析人員用商業(yè)理由來(lái)正確的估算投資回報(bào)率(ROI,即return on investment)。 商業(yè)理由應(yīng)該給項(xiàng)目創(chuàng)建一個(gè)簡(jiǎn)短但是引人注目的理由,而不是深入研究問(wèn)題的細(xì)節(jié),以使所有項(xiàng)目成員容易理解和記住它。在關(guān)鍵里程碑處,經(jīng)理應(yīng)該回顧商業(yè)理由,計(jì)算實(shí)際的花費(fèi)、預(yù)計(jì)的回報(bào),決定項(xiàng)目是否繼續(xù)進(jìn)行。
?。?/span>6). 設(shè)計(jì)組件構(gòu)架
在RUP中,件系統(tǒng)的構(gòu)架是指一個(gè)系統(tǒng)關(guān)鍵部件的組織或結(jié)構(gòu),部件之間通過(guò)接口交互,而部件是由一些更小的部件和接口組成的。即主要的部分是什么?他們又是怎樣結(jié)合在一起的? RUP提供了一種設(shè)計(jì)、開(kāi)發(fā)、驗(yàn)證構(gòu)架的很系統(tǒng)的方法。在分析和設(shè)計(jì)流程中包括以下步驟:定義候選構(gòu)架、精化構(gòu)架、分析行為(用例分析)、設(shè)計(jì)組件。 要陳述和討論軟件構(gòu)架,你必須先創(chuàng)建一個(gè)構(gòu)架表示方式,以便描述構(gòu)架的重要方面。在RUP中,構(gòu)架表示由軟件構(gòu)架文檔捕獲,它給構(gòu)架提供了多個(gè)視圖。每個(gè)視圖都描述了某一組涉眾所關(guān)心的正在進(jìn)行的系統(tǒng)的某個(gè)方面。涉眾有最終用戶(hù)、設(shè)計(jì)人員、經(jīng)理、系統(tǒng)工程師、系統(tǒng)管理員,等等。這個(gè)文檔使系統(tǒng)構(gòu)架師和其他項(xiàng)目組成員能就與構(gòu)架相關(guān)的重大決策進(jìn)行有效的交流。
?。?/span>7). 對(duì)產(chǎn)品進(jìn)行增量式的構(gòu)建和測(cè)試
在RUP中實(shí)現(xiàn)和測(cè)試流程的要點(diǎn)是在整個(gè)項(xiàng)目生命周期中增量的編碼、構(gòu)建、測(cè)試系統(tǒng)組件,在先啟之后每個(gè)迭代結(jié)束時(shí)生成可執(zhí)行版本。在精化階段后期,已經(jīng)有了一個(gè)可用于評(píng)估的構(gòu)架原型;如有必 要,它可以包括一個(gè)用戶(hù)界面原型。然后,在構(gòu)建階段的每次迭代中,組件不斷的被集成到可執(zhí)行、經(jīng)過(guò)測(cè)試的版本中,不斷地向最終產(chǎn)品進(jìn)化。動(dòng)態(tài)及時(shí)的配置管理和復(fù)審活動(dòng)也是這個(gè)基本過(guò)程元素(原文:essential process element)的關(guān)鍵。
(8). 驗(yàn)證和評(píng)價(jià)結(jié)果
顧名思義,RUP的迭代評(píng)估捕獲了迭代的結(jié)果。評(píng)估決定了迭代滿(mǎn)足評(píng)價(jià)標(biāo)準(zhǔn)的程度,還包括學(xué)到的教訓(xùn)和實(shí)施的過(guò)程改進(jìn)。 根據(jù)項(xiàng)目的規(guī)模和風(fēng)險(xiǎn)以及迭代的特點(diǎn),評(píng)估可以是對(duì)演示及其結(jié)果的一條簡(jiǎn)單的紀(jì)錄,也可能是一個(gè)完整的、正式的測(cè)試復(fù)審記錄。 這兒的關(guān)鍵是既關(guān)注過(guò)程問(wèn)題又關(guān)注產(chǎn)品問(wèn)題。越早發(fā)現(xiàn)問(wèn)題,就越?jīng)]有問(wèn)題。(原文:The sooner you fall behind, the more time you will have to catch up.)
(9). 管理和控制變化
RUP的配置和變更管理流程的要點(diǎn)是當(dāng)變化發(fā)生時(shí)管理和控制項(xiàng)目的規(guī)模,并且貫穿整個(gè)生命周期。其目的是考慮所有的涉眾需求,盡可能的滿(mǎn)足,同時(shí)仍能及時(shí)的交付合格的產(chǎn)品。 用戶(hù)拿到產(chǎn)品的第一個(gè)原型后(往往在這之前就會(huì)要求變更),他們會(huì)要求變更。重要的是,變更的提出和管理過(guò)程始終保持一致。 在RUP中,變更請(qǐng)求通常用于記錄和跟蹤缺陷和增強(qiáng)功能的要求,或者對(duì)產(chǎn)品提出的任何其他類(lèi)型的變更請(qǐng)求。變更請(qǐng)求提供了相應(yīng)的手段來(lái)評(píng)估一個(gè)變更的潛在影響,同時(shí)記錄就這些變更所作出的決策。他們也幫助確保所有的項(xiàng)目組成員都能理解變更的潛在影響。
?。?/span>10). 提供用戶(hù)支持
在RUP中,部署流程的要點(diǎn)是包裝和交付產(chǎn)品,同時(shí)交付有助于最終用戶(hù)學(xué)習(xí)、使用和維護(hù)產(chǎn)品的任何必要的材料。 項(xiàng)目組至少要給用戶(hù)提供一個(gè)用戶(hù)指南(也許是通過(guò)聯(lián)機(jī)幫助的方式提供),可能還有一個(gè)安裝指南和版本發(fā)布說(shuō)明。 根據(jù)產(chǎn)品的復(fù)雜度,用戶(hù)也許還需要相應(yīng)的培訓(xùn)材料。最后,通過(guò)一個(gè)材料清單(BOM表,即Bill of Materials)清楚地記錄應(yīng)該和產(chǎn)品一起交付哪些材料。 關(guān)于需求 有人看了我的要素清單后,可能會(huì)非常不同意我的選擇。例如,他會(huì)問(wèn),需求在哪兒呢?他們不重要嗎?我會(huì)告訴他我為什么沒(méi)有把它們包括進(jìn)來(lái)。有時(shí),我會(huì)問(wèn)一個(gè)項(xiàng)目組(特別是內(nèi)部項(xiàng)目的項(xiàng)目組):“你們的需求是什么?”,而得到的回答卻是:“我們的確沒(méi)有什么需求。” 剛開(kāi)始我對(duì)此非常驚訝(我有軍方的宇航開(kāi)發(fā)背景)。他們?cè)趺磿?huì)沒(méi)有需求呢?當(dāng)我進(jìn)一步詢(xún)問(wèn)時(shí),我發(fā)現(xiàn),對(duì)他們來(lái)說(shuō),需求意味著一套外部提出的強(qiáng)制性的陳述,要求他們必須怎么樣,否則項(xiàng)目驗(yàn)收就不能通過(guò)。但是他們的確沒(méi)有得到這樣的陳述。尤其是當(dāng)項(xiàng)目組陷入了邊研究邊開(kāi)發(fā)的境地時(shí),產(chǎn)品需求從頭到尾都在演化。 因此,我接著問(wèn)他們另外一個(gè)問(wèn)題:“好的,那么你們的產(chǎn)品的前景是什么呢?”。這時(shí)他們的眼睛亮了起來(lái)。然后,我們非常順利的就第一個(gè)要素(“開(kāi)發(fā)一個(gè)前景”)中列出的問(wèn)題進(jìn)行了溝通,需求也自然而然的流動(dòng)著(原文:and the requirements just flow naturally.)。 也許只有對(duì)于按照有明確需求的合同工作的項(xiàng)目組,在要素列表中加入“滿(mǎn)足需求”才是有用的。請(qǐng)記住,我的清單僅僅意味著進(jìn)行進(jìn)一步討論的一個(gè)起點(diǎn)。
RUP的生命周期模型與傳統(tǒng)的瀑布模型、演化模型、螺旋模型、噴泉模型不同的是在先啟、精化、構(gòu)建、產(chǎn)品化階段每個(gè)過(guò)程可以有迭代和增量,而迭代以里程碑確定,在具體的過(guò)程中工作流程的側(cè)重點(diǎn)是不同的,還有就是各個(gè)工作流程是可以并行的,提高開(kāi)發(fā)效率。方法上采用用例驅(qū)動(dòng);人員上有相關(guān)角色和個(gè)體的劃分,對(duì)于產(chǎn)品,主要是要以架構(gòu)為中心,設(shè)計(jì)出具有高重用性、安全性、可擴(kuò)展性等的系統(tǒng)。
2、AP
敏捷開(kāi)發(fā)(agile development)是一種以人為核心、迭代、循序漸進(jìn)的開(kāi)發(fā)方法。在敏捷開(kāi)發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過(guò)測(cè)試,具備集成和可運(yùn)行的特征。簡(jiǎn)言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過(guò)程中軟件一直處于可使用狀態(tài)。但敏捷開(kāi)發(fā)并不是一種創(chuàng)新,敏捷開(kāi)發(fā)可理解為在原有軟件開(kāi)發(fā)方法基礎(chǔ)上的整合——取其精華,去其糟粕。因此敏捷開(kāi)發(fā)繼承了不少原有方法的優(yōu)勢(shì)。然而,我們不得不面對(duì)的現(xiàn)實(shí)卻是,敏捷中模式與方法的優(yōu)化并不意味著問(wèn)題的終結(jié)。作為一種開(kāi)發(fā)模式,敏捷開(kāi)發(fā)同樣需要面對(duì)眾多挑戰(zhàn)。
敏捷開(kāi)發(fā)是由一些業(yè)界專(zhuān)家針對(duì)一些企業(yè)現(xiàn)狀提出了一些讓軟件開(kāi)發(fā)團(tuán)隊(duì)具有快速工作、響應(yīng)變化能力的價(jià)值觀和原則,并于2001初成立了敏捷聯(lián)盟。他們正在通過(guò)親身實(shí)踐以及幫助他人實(shí)踐,揭示更好的軟件開(kāi)發(fā)方法。
主要內(nèi)容:
1) 敏捷是“一個(gè)”過(guò)程
敏捷不是一個(gè)過(guò)程,是一類(lèi)過(guò)程的統(tǒng)稱(chēng),它們有一個(gè)共性,就是符合敏捷宣言,遵循敏捷的原則。
敏捷宣言如下:
個(gè)體和交互 勝過(guò) 過(guò)程和工具
可以工作的軟件 勝過(guò) 面面俱到的文檔
客戶(hù)合作 勝過(guò) 合同談判
響應(yīng)變化 勝過(guò) 遵循計(jì)劃
由價(jià)值觀引出的12條敏捷原則:
我們最優(yōu)先要做的是通過(guò)盡早的、持續(xù)的交付有價(jià)值的軟件來(lái)使客戶(hù)滿(mǎn)意。
即使到了開(kāi)發(fā)的后期,也歡迎改變需求。敏捷過(guò)程利用變化來(lái)為客戶(hù)創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)。
經(jīng)常性地交付可以工作的軟件,交付的間隔可以從幾個(gè)星期到幾個(gè)月,交付的時(shí)間間隔越短越好。
在整個(gè)項(xiàng)目開(kāi)發(fā)期間,業(yè)務(wù)人員和開(kāi)發(fā)人員必須天天都在一起工作。
圍繞被激勵(lì)起來(lái)的個(gè)體來(lái)構(gòu)建項(xiàng)目。給他們提供所需的環(huán)境和支持,并且信任他們能夠完成工作。
在團(tuán)隊(duì)內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對(duì)面的交談。
工作的軟件是首要的進(jìn)度度量標(biāo)準(zhǔn)。
敏捷過(guò)程提倡可持續(xù)的開(kāi)發(fā)速度。責(zé)任人、開(kāi)發(fā)者和用戶(hù)應(yīng)該能夠保持一個(gè)長(zhǎng)期的、恒定的開(kāi)發(fā)速度。
不斷地關(guān)注優(yōu)秀的技能和好的設(shè)計(jì)會(huì)增強(qiáng)敏捷能力。
簡(jiǎn)單——使未完成的工作最大化的藝術(shù)——是根本的。
最好的構(gòu)架、需求和設(shè)計(jì)出自于自組織的團(tuán)隊(duì)。
每隔一定時(shí)間,團(tuán)隊(duì)會(huì)在如何才能更有效地工作方面進(jìn)行反省,然后相應(yīng)地對(duì)自己的行為進(jìn)行調(diào)整。
建立敏捷聯(lián)盟的17位大師所創(chuàng)立的敏捷方法包括:極限編程,Scrum,特征驅(qū)動(dòng)開(kāi)發(fā),動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法,自適應(yīng)軟件開(kāi)發(fā),水晶方法,實(shí)用編程方法。這些方法統(tǒng)稱(chēng)為敏捷方法。
其實(shí)每個(gè)人都可以從敏捷宣言和原則出發(fā),明確問(wèn)題,找出一些解決方法,形成自己的過(guò)程。
2)敏捷開(kāi)發(fā)的設(shè)計(jì)原則
關(guān)于敏捷開(kāi)發(fā)的設(shè)計(jì)原則:
單一職責(zé)原則SRP:Single Responsibility Principle
開(kāi)放封閉原則OCP:Open-Close Principle
Liskov替換原則LSP:Liskov Substitution Principle
依賴(lài)倒置原則DIP:Dependency Invertion Principle
接口隔離原則ISP:Interface Separate Principle
關(guān)于包的設(shè)計(jì)原則:
重用發(fā)布等價(jià)原則REP:Reuse Equivalence Principle
共同重用原則CRP:Common Resue Principle
共同封閉原則CCP:Common Close Principle
無(wú)環(huán)依賴(lài)原則ADP:Acyclic Dependency Principle
穩(wěn)定依賴(lài)原則SDP:Stabilization Dependency Principle
穩(wěn)定性度量公式:I=Ce/(Ca+Ce) (I:不穩(wěn)定度,Ce:輸入耦合度,Ca:輸出耦合度)
I取值范圍在【0,1】,I=0表示具有最大穩(wěn)定度;iI=1標(biāo)識(shí)具有最大不穩(wěn)定度
穩(wěn)定抽象原則SAP:Stabilization Abstract Principle
AP主要有XP流派,當(dāng)然還有很多的流派,包括極限編程,SCRUM,動(dòng)態(tài)系統(tǒng)開(kāi)發(fā),特征驅(qū)動(dòng)開(kāi)發(fā)等,但是這里主要探討的是XP,AP中有4個(gè)思想,12條原則,主要在開(kāi)發(fā)中強(qiáng)調(diào)人員的重要性和可操作性軟件的重要性,在方法上我們強(qiáng)調(diào)簡(jiǎn)單,在人員上強(qiáng)調(diào)人員和交互高于環(huán)境和工具,產(chǎn)品上強(qiáng)調(diào)最早交付,迭代歡迎需求的變化,直到項(xiàng)目后期依舊歡迎需求的變更,最大化的包含需求為客戶(hù)提高競(jìng)爭(zhēng)力。所以在AP中,由于是方法學(xué)家提出來(lái)的,所以是比較激進(jìn)的,適合小型的項(xiàng)目開(kāi)發(fā),以及在資源等有要求的情況下快速開(kāi)發(fā)。
Extreme Programming(XP,極限編程) 是一種輕量級(jí)的軟件開(kāi)發(fā)方法,它使用快速的反饋,大量而迅速的交流,經(jīng)過(guò)保證的測(cè)試來(lái)最大限度的滿(mǎn)足用戶(hù)的需求。XP強(qiáng)調(diào)用戶(hù)滿(mǎn)意,開(kāi)發(fā)人員可以對(duì)需求的變化作出快速的反應(yīng)。XP強(qiáng)調(diào)team work。項(xiàng)目管理者,用戶(hù),開(kāi)發(fā)人員都處于同一個(gè)項(xiàng)目中,他們之間的關(guān)系不是對(duì)立的,而是互相協(xié)作的,具有共同的目標(biāo):提交正確的軟件。XP強(qiáng)調(diào)4個(gè)因素:
交流(communication),XP要求程序員之間以及和用戶(hù)之間有大量而迅速的交流
簡(jiǎn)單(simplicity),XP要求設(shè)計(jì)和實(shí)現(xiàn)簡(jiǎn)單和干凈
反饋(feedback)通過(guò)測(cè)試得到反饋,盡快提交軟件并根據(jù)反饋修改
勇氣(courage)。勇敢的面對(duì)需求和技術(shù)上的變化
XP特別適用于需求經(jīng)常改變的領(lǐng)域,客戶(hù)可能并系統(tǒng)的功能并沒(méi)有清晰的認(rèn)識(shí),可能系統(tǒng)的需求經(jīng)常需要變動(dòng)。
XP也適用于風(fēng)險(xiǎn)比較高的項(xiàng)目,當(dāng)開(kāi)發(fā)人員面對(duì)一個(gè)新的領(lǐng)域或技術(shù)時(shí),XP可以幫助減低風(fēng)險(xiǎn)
XP適用于小的項(xiàng)目(人員上),人員在2-12人之間,XP不適用于人員太多的項(xiàng)目,事實(shí)上,在需求經(jīng)常變化或風(fēng)險(xiǎn)比較高的項(xiàng)目中,少量而有效的XP開(kāi)發(fā)人員效率要遠(yuǎn)遠(yuǎn)高于大量的開(kāi)發(fā)人員。
3、MP
MP主要是微軟依靠自己的開(kāi)發(fā)經(jīng)驗(yàn)建立的軟件過(guò)程,作為全球最大、最成功的軟件公司,MP有自己的體系。當(dāng)然在人員上主要摒棄了傳統(tǒng)的項(xiàng)目經(jīng)理職務(wù),取而代之的是產(chǎn)品經(jīng)理和程序經(jīng)理,這里我要說(shuō)明的是這個(gè)舉措是相當(dāng)?shù)暮?,可以使得?xiàng)目經(jīng)理的職責(zé)細(xì)化,使得任務(wù)明確,產(chǎn)品經(jīng)理對(duì)外滿(mǎn)足用戶(hù)需求而程序經(jīng)理對(duì)內(nèi)組織團(tuán)隊(duì)開(kāi)發(fā)。方法上:Mp采用每日編譯,和AP中的持續(xù)集成是一樣的,需求是提出遠(yuǎn)景范圍文檔,提出遠(yuǎn)期和近期的目標(biāo),而且把整個(gè)生命周期劃分為5個(gè)階段。當(dāng)然MP主要提出均衡三角形的模型,使得人員、進(jìn)
度、功能&性能三者達(dá)到平衡。
微軟過(guò)程原則:
1) 制定計(jì)劃時(shí)兼顧未來(lái)不確定因素
2) 通過(guò)有效的風(fēng)險(xiǎn)管理減少不確定因素的影響
3) 經(jīng)常生成過(guò)渡性的版本并快速測(cè)試來(lái)提高產(chǎn)品的穩(wěn)定性及可測(cè)性
4) 快速循環(huán)遞進(jìn)的開(kāi)發(fā)過(guò)程
5) 從產(chǎn)品特性和成本控制出發(fā)創(chuàng)造性地工作
6) 創(chuàng)建確定的進(jìn)度表
7) 使用小型項(xiàng)目組并發(fā)完成工作,并設(shè)置多個(gè)同步
8) 將大型項(xiàng)目分解成多個(gè)可管理的單元,以便更快地發(fā)布產(chǎn)品
9) 用產(chǎn)品的前景目標(biāo)和概要說(shuō)明指導(dǎo)項(xiàng)目開(kāi)發(fā)工作-先基線后凍結(jié)
10)避免產(chǎn)品走形
11)使用原型驗(yàn)證概念,進(jìn)行開(kāi)發(fā)前的測(cè)試
12) 零缺陷概念
13) 非責(zé)難式的里程碑評(píng)審會(huì)
微軟開(kāi)發(fā)產(chǎn)品的每個(gè)生命周期分五個(gè)階段
1) 構(gòu)想階段
2) 計(jì)劃階段
3) 開(kāi)發(fā)階段
4) 穩(wěn)定階段
5) 發(fā)布階段
4、HP和諧軟件過(guò)程
在新的發(fā)展階段繼續(xù)全面快速地發(fā)展IT,必須堅(jiān)持以和諧軟件過(guò)程為指導(dǎo),和諧軟件過(guò)程是軟件工程在中國(guó)的新發(fā)展,是對(duì)軟件生命周期、軟件項(xiàng)目管理、系統(tǒng)架構(gòu)、系統(tǒng)分析的重要指導(dǎo)方針,是企業(yè)進(jìn)行信息化建設(shè)的重大戰(zhàn)略思想。和諧軟件過(guò)程第一次科學(xué)地回答了什么是軟件、如何保證并提高軟件品質(zhì)、如何展開(kāi)軟件工程各環(huán)節(jié)等軟件基本問(wèn)題,認(rèn)為品質(zhì)低下不是軟件、操作不便不是軟件、非人性化不是軟件、存在較多bug不是軟件、效率低下(研發(fā)效率和運(yùn)行效率)不是軟件、業(yè)務(wù)錯(cuò)亂不是軟件、團(tuán)隊(duì)不穩(wěn)不是軟件、管理混亂不是軟件、難以擴(kuò)展和維護(hù)不是軟件、不能共享軟件成果不肯共擔(dān)軟件責(zé)任不是軟件、研發(fā)維護(hù)過(guò)于繁瑣不是軟件等實(shí)際問(wèn)題。
和諧軟件過(guò)程,是立足中國(guó)當(dāng)前基本國(guó)情和行業(yè)發(fā)展背景,是在總結(jié)我國(guó)實(shí)踐經(jīng)驗(yàn)和借鑒國(guó)外發(fā)展經(jīng)驗(yàn)基礎(chǔ)上,為適應(yīng)新的軟件發(fā)展要求提出來(lái)的。進(jìn)入新世紀(jì)新階段,我國(guó)軟件行業(yè)發(fā)展呈現(xiàn)出了一系列新的階段性特征,主要是:企業(yè)對(duì)軟件需求與日俱增,同時(shí)軟件研發(fā)不規(guī)范、漏洞多、性能差,技術(shù)思想大多依靠外國(guó),自主創(chuàng)新能力不強(qiáng),長(zhǎng)期形成的需求誤解、返工率高、效率低下、系統(tǒng)不穩(wěn)定等問(wèn)題尚未根本改變;從業(yè)人員的收入水平參差不齊、加班福利得不到根本保障,客戶(hù)、企業(yè)、員工三者利益沖突此伏彼起,要想統(tǒng)籌兼顧各方面利益難度加大。
行業(yè)軟件建設(shè)發(fā)展不平衡,企業(yè)霸占市場(chǎng),信息化建設(shè)的難以分割性,導(dǎo)致公開(kāi)招標(biāo)不可能,因而只能漫天要價(jià)議標(biāo);IT從業(yè)人員的與日俱增,導(dǎo)致企業(yè)可以選擇職員范圍更廣,因而員工的薪資待遇得不到合理的價(jià)位保證;另一方面,IT企業(yè)的迅速擴(kuò)建,導(dǎo)致IT從業(yè)人員有了更多的選擇,通過(guò)頻繁的跳槽來(lái)快速提升薪資待遇成為有實(shí)力一族的經(jīng)驗(yàn)技巧,從而使得企業(yè)的項(xiàng)目風(fēng)險(xiǎn)與日俱增;企業(yè)的速增,客戶(hù)也有了更多的選擇,一些新項(xiàng)目或者老項(xiàng)目改造擴(kuò)建等,通過(guò)惡意招標(biāo)使得企業(yè)利潤(rùn)大幅降低;在企業(yè)利潤(rùn)得不到保證時(shí),加班成了家常便飯,得不到加班補(bǔ)貼,使得降低軟件品質(zhì)成為了一線職員的自救措施,軟件品質(zhì)得不到保障又反過(guò)來(lái)影響了公司的業(yè)務(wù)業(yè)績(jī)形象,從而進(jìn)一步影響了員工的薪資福利;同時(shí)更多人對(duì)信息技術(shù)的掌握,以及對(duì)軟件要求、軟件文化需求、薪資待遇、職業(yè)規(guī)劃日趨旺盛,企業(yè)、員工的選擇性、多變性、差異性明顯增強(qiáng),對(duì)企業(yè)信息化建設(shè)提出了更高要求;軟件活力顯著增強(qiáng),同時(shí)社會(huì)結(jié)構(gòu)、公司項(xiàng)目組織形式、社會(huì)利益格局發(fā)生深刻變化,軟件工程、系統(tǒng)架構(gòu)和項(xiàng)目管理面臨諸多新課題;對(duì)外開(kāi)放日益擴(kuò)大,同時(shí)面臨的國(guó)際競(jìng)爭(zhēng)日趨激烈,歐美國(guó)家的語(yǔ)言壓力長(zhǎng)期存在,可以預(yù)見(jiàn)和難以預(yù)見(jiàn)的風(fēng)險(xiǎn)與困難將不斷增多,統(tǒng)籌國(guó)內(nèi)發(fā)展和對(duì)外開(kāi)放要求更高。
我們要強(qiáng)調(diào)認(rèn)清國(guó)內(nèi)軟件行業(yè)的基本國(guó)情,不是要妄自菲薄、自甘落后,也不是要脫離實(shí)際、急于求成,更不能閉門(mén)自鎖,而是要堅(jiān)持把它作為推進(jìn)改革、謀劃發(fā)展的根本依據(jù)。我們必須始終保持清醒的頭腦,立足當(dāng)前情況這個(gè)最大的實(shí)際,科學(xué)分析我國(guó)全面參與軟件全球化的新機(jī)遇新挑戰(zhàn),全面認(rèn)識(shí)軟件工業(yè)化、信息化、城鎮(zhèn)化、市場(chǎng)化、國(guó)際化深入發(fā)展的新形勢(shì)新任務(wù),深刻把握我國(guó)軟件發(fā)展面臨的新課題新矛盾,更加自覺(jué)地走和諧軟件道路,奮力開(kāi)拓中國(guó)特色軟件工程更為廣闊的發(fā)展前景。
和諧軟件過(guò)程,第一要義是平衡,核心是以人為本,基本要求是涉眾共同承擔(dān)軟件義務(wù)共享軟件成果,根本指導(dǎo)思想與實(shí)施方法是簡(jiǎn)易法則,實(shí)踐要求是全面協(xié)調(diào)。
必須堅(jiān)持把平衡作為和諧軟件工程的第一要義。平衡,對(duì)于整個(gè)軟件生命周期,具有決定性意義。和諧的目的在于永續(xù),平衡是永續(xù)的根本保證。平衡,包括了各方利益(軟件權(quán)利和軟件義務(wù))的平衡,對(duì)于員工則更體現(xiàn)了工作績(jī)效與薪資待遇的平衡,例如加班必須給予補(bǔ)貼,這直接體現(xiàn)了勞動(dòng)法第44條和民法通則的補(bǔ)償原則,是和諧軟件過(guò)程對(duì)自然法原則的應(yīng)用,也是牛頓力學(xué)的受力平衡與熱平衡、心理平衡等自然法則在和諧軟件過(guò)程中的具體應(yīng)用。我們要牢牢把握好平衡這個(gè)中心,堅(jiān)持聚精會(huì)神搞信息化建設(shè)、一心一意做項(xiàng)目,不斷解放和發(fā)展軟件生產(chǎn)力。更好地實(shí)施軟件興國(guó)策略、軟件強(qiáng)國(guó)戰(zhàn)略,著力把握軟件發(fā)展規(guī)律、創(chuàng)新軟件發(fā)展理念、轉(zhuǎn)變軟件研發(fā)模式、破解軟件難題,提高軟件品質(zhì)和軟件效益,實(shí)現(xiàn)又好又快地永續(xù)研發(fā)軟件。努力實(shí)現(xiàn)以人為本、涉眾共同承擔(dān)軟件義務(wù)共享軟件成果,實(shí)現(xiàn)各方面的有機(jī)統(tǒng)一、員工企業(yè)客戶(hù)團(tuán)結(jié)和睦的和諧發(fā)展,實(shí)現(xiàn)通過(guò)維護(hù)軟件平衡、發(fā)展員工和企業(yè)、提升客戶(hù)競(jìng)爭(zhēng)力。
和諧軟件過(guò)程必須堅(jiān)持簡(jiǎn)易法則。簡(jiǎn)易的目的在于務(wù)實(shí)、實(shí)用,在于提高效率、政通人和。乾以易知,坤以簡(jiǎn)能;易則易知,簡(jiǎn)則易從;易知?jiǎng)t有親,易從則有功;有親則可久,有功則可大;可久則賢人之德,可大則賢人之業(yè);易簡(jiǎn)而天下之理得矣;天下之理得,而成位乎其中矣。系統(tǒng)架構(gòu)、項(xiàng)目研發(fā)不能舍近求遠(yuǎn)、舍簡(jiǎn)求繁,不能以為了騙取高額的項(xiàng)目費(fèi)而故意采用繁瑣的方法,騙取較多的工時(shí);也不能以本來(lái)就有簡(jiǎn)易快速的方法、成熟的技術(shù)方案可以借鑒參考,卻故意采用其他方法;當(dāng)現(xiàn)有方法或者新技術(shù)不足以提高效率甚者會(huì)影響效率時(shí),是否存在重復(fù)設(shè)計(jì)時(shí),我們務(wù)必考慮如何優(yōu)化,使之可以多塊好省地進(jìn)行。務(wù)必堅(jiān)持信息向上集中、服務(wù)向下延伸為基本理念,以信息集成化為原則,不要不斷建立一個(gè)又一個(gè)的信息孤島。軟件至簡(jiǎn),不教而用!
和諧軟件過(guò)程必須始終堅(jiān)持以人為本。軟件最終是給人用過(guò)的,研發(fā)過(guò)程也離不開(kāi)人的積極努力,全心全意為客戶(hù)創(chuàng)造最好的軟件是和諧軟件過(guò)程的根本宗旨,企業(yè)和員工的一切奮斗和工作都是為了服務(wù)客戶(hù)。要始終把實(shí)現(xiàn)好、維護(hù)好、升級(jí)發(fā)展好最廣泛客戶(hù)的軟件需求作為企業(yè)和員工一切工作的出發(fā)點(diǎn)和落腳點(diǎn),尊重客戶(hù)、員工的主體地位,發(fā)揮員工的首創(chuàng)精神,保障員工的各項(xiàng)權(quán)益,走利益共贏的軟件道路,促進(jìn)三者的全面發(fā)展,做到軟件為了人、研發(fā)依靠人、軟件成果由人共享(企業(yè)即企業(yè)法人)。
和諧軟件過(guò)程必須堅(jiān)持全面協(xié)調(diào)。要按照軟件需求進(jìn)行系統(tǒng)總體分析和系統(tǒng)架構(gòu),全面做好需求調(diào)研、設(shè)計(jì)、研發(fā)、測(cè)試、上線實(shí)施、配置管理、數(shù)據(jù)庫(kù)DBA、網(wǎng)絡(luò)管理,各個(gè)環(huán)節(jié)、各個(gè)方面相協(xié)調(diào),促進(jìn)客戶(hù)與企業(yè)、績(jī)效與薪資福利相協(xié)調(diào)。
和諧軟件過(guò)程必須堅(jiān)持統(tǒng)籌兼顧。要正確認(rèn)識(shí)和妥善處理軟件研發(fā)過(guò)程中的各項(xiàng)重大關(guān)系,務(wù)必統(tǒng)籌兼顧利益、質(zhì)量、時(shí)間、成本、范圍、員工與企業(yè)和客戶(hù)和諧永續(xù)地發(fā)展、國(guó)內(nèi)創(chuàng)新發(fā)展和借鑒吸取國(guó)外成功優(yōu)秀經(jīng)驗(yàn)、實(shí)行軟件對(duì)外開(kāi)放政策,統(tǒng)籌員工、企業(yè)與客戶(hù)的關(guān)系,統(tǒng)籌員工利益和企業(yè)利益、企業(yè)利益和客戶(hù)利益、公司業(yè)績(jī)和軟件品質(zhì),充分調(diào)動(dòng)各方面積極性。統(tǒng)籌三方利益、把握軟件品質(zhì)大局,樹(shù)立世界眼光,加強(qiáng)戰(zhàn)略思維,善于從國(guó)際形勢(shì)發(fā)展變化和充分借鑒祖國(guó)傳統(tǒng)哲學(xué)中各類(lèi)有效經(jīng)驗(yàn),把握發(fā)展機(jī)遇、應(yīng)對(duì)風(fēng)險(xiǎn)挑戰(zhàn),營(yíng)造良好的軟件開(kāi)發(fā)環(huán)境。既要總攬全局、統(tǒng)籌規(guī)劃,又要抓住牽動(dòng)全局的主要工作、事關(guān)多方利益的突出問(wèn)題,著力推進(jìn)、重點(diǎn)突破。
深入貫徹落實(shí)和諧軟件過(guò)程,要求我們始終堅(jiān)持“平衡、簡(jiǎn)易、統(tǒng)籌”的基本觀點(diǎn)和方法。軟件過(guò)程的基本政策路線是企業(yè)、員工、客戶(hù)的生命線,是實(shí)現(xiàn)和諧永續(xù)研發(fā)的根本保證。以平衡為第一要義是軟件過(guò)程得以正常開(kāi)展的基本前提,是員工、企業(yè)、客戶(hù)基本要求得以實(shí)現(xiàn)的根本要求;簡(jiǎn)易法則是展開(kāi)具體工作之本,是實(shí)現(xiàn)員工、企業(yè)、客戶(hù)利益最大化的現(xiàn)實(shí)基礎(chǔ);總結(jié)、吸收和創(chuàng)新是不斷提高工作效率、提高各方利益的活力源泉。要堅(jiān)持把以促進(jìn)利益平衡、以簡(jiǎn)易法則提高效率、保證軟件品質(zhì)三個(gè)基本點(diǎn)統(tǒng)一于共享軟件成果共擔(dān)軟件義務(wù)之中,不斷促進(jìn)和發(fā)展具有中國(guó)特色的和諧軟件過(guò)程的偉大實(shí)踐之中,任何時(shí)候都決不能動(dòng)搖。
深入貫徹落實(shí)和諧軟件過(guò)程,要求我們繼續(xù)深化改善軟件過(guò)程。要把改善創(chuàng)新精神貫徹到軟件工程的各個(gè)環(huán)節(jié),毫不動(dòng)搖地堅(jiān)持改善方向,提高改善決策的科學(xué)性,增強(qiáng)改善措施的協(xié)調(diào)性。要完善和諧的軟件權(quán)力義務(wù)體制,推進(jìn)各方面體制改善創(chuàng)新,加快重要過(guò)程和關(guān)鍵環(huán)節(jié)的改善步伐,全面提高開(kāi)放總結(jié)反思吸收借鑒創(chuàng)新水平,著力構(gòu)建充滿(mǎn)活力、富有效率、更加開(kāi)放、有利于軟件研發(fā)的體制機(jī)制,為發(fā)展中國(guó)特色軟件事業(yè)提供強(qiáng)大動(dòng)力和體制保障。要堅(jiān)持把改善各方權(quán)力義務(wù)平衡作為正確處理改善研發(fā)過(guò)程和發(fā)展穩(wěn)定團(tuán)隊(duì)的結(jié)合點(diǎn),使改善始終得到多方軟件人民的擁護(hù)和支持。
深入貫徹落實(shí)和諧軟件過(guò)程,要求我們切實(shí)加強(qiáng)和改進(jìn)團(tuán)隊(duì)建設(shè)。企業(yè)要站在完成為客戶(hù)提高工作效率使命的高度,要把提高軟件項(xiàng)目系統(tǒng)架構(gòu)能力、保持和提高軟件品質(zhì)能力,體現(xiàn)到項(xiàng)目管理、系統(tǒng)分析、促進(jìn)軟件過(guò)程的和諧上來(lái),要落實(shí)到引領(lǐng)軟件過(guò)程發(fā)展進(jìn)步、擔(dān)任起創(chuàng)新的重要使命,要更好地代表和實(shí)現(xiàn)最廣大軟件人民的根本利益上來(lái),使軟件工程的各項(xiàng)工作更加符合和諧軟件過(guò)程的要求,為和諧軟件過(guò)程提供可靠的體制和組織保障。
和諧軟件過(guò)程,在思想理念和實(shí)踐方法上,要充分借鑒中國(guó)先秦諸子百家中法家、儒家、兵家、道家、醫(yī)家、史家、墨家、縱橫家、易家等一切優(yōu)秀的思想理念和有效的方法論,尤其是法家的變通和效率思想、儒家的人性關(guān)懷、墨家的人才觀、縱橫家的心理學(xué)談判技巧解釋溝通、兵家的靈活創(chuàng)新、醫(yī)家的防范思想和整體辯證觀念、道家全面協(xié)調(diào)和諧永續(xù)思想、史家的反思總結(jié)借鑒方法論、和易經(jīng)(遠(yuǎn)勝于西方所謂的系統(tǒng)工程)的系統(tǒng)觀念,是由工作在軟件一線的客戶(hù)代表、企業(yè)領(lǐng)導(dǎo)、系統(tǒng)分析師、系統(tǒng)架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)程序員根據(jù)實(shí)踐經(jīng)驗(yàn)、教訓(xùn)和理論的不斷反思總結(jié)所得出的,具有很強(qiáng)的理論基礎(chǔ)和切實(shí)的實(shí)際可操作可行性。同時(shí)和諧軟件過(guò)程在吸收借鑒方面始終堅(jiān)持泰山不讓土壤、河海不擇細(xì)流、王者不卻眾庶、有容乃大、海納百川的博大胸懷與思想境界以及不期修古、不法???、論世之事、因?yàn)橹畟涞姆椒ㄕ?。和諧軟件過(guò)程雖然是軟件工程在中國(guó)發(fā)展的新發(fā)展、新成果,但是和諧軟件過(guò)程同樣很強(qiáng)調(diào)應(yīng)當(dāng)根據(jù)不同文化、不同信仰的民族特點(diǎn)、國(guó)家國(guó)情來(lái)做出裁減和調(diào)整。
深入貫徹落實(shí)和諧軟件過(guò)程,要求我們積極構(gòu)建和諧的軟件文化。和諧軟件過(guò)程是中國(guó)特色軟件工程的本質(zhì)屬性,和諧軟件過(guò)程是軟件工程在中國(guó)發(fā)展的新成果,是和黨的科學(xué)發(fā)展是內(nèi)在統(tǒng)一的,也是黨所一貫主張的自主創(chuàng)新理念和自主知識(shí)產(chǎn)權(quán)在軟件工程中的應(yīng)用。沒(méi)有和諧軟件過(guò)程就沒(méi)有軟件工程,沒(méi)有和諧軟件過(guò)程也不可能持續(xù)永續(xù)地研發(fā)出具備完美軟件品質(zhì)的軟件產(chǎn)品。實(shí)施和諧軟件過(guò)程是貫穿于中國(guó)特色軟件工程全過(guò)程的長(zhǎng)期歷史任務(wù),是在軟件研發(fā)的基礎(chǔ)上正確處理各種軟件矛盾的歷史過(guò)程和社會(huì)結(jié)果。要通過(guò)發(fā)展不斷促進(jìn)增加各方利益、不斷改善人的軟件生活,又要通過(guò)軟件研發(fā)保障軟件公平正義、不斷促進(jìn)過(guò)程和諧。實(shí)現(xiàn)軟件過(guò)程的公平正義是涉眾的一貫主張,是中國(guó)軟件事業(yè)走向世界并引領(lǐng)世界軟件產(chǎn)業(yè)發(fā)展方向的重大任務(wù)。在軟件過(guò)程中要始終按照民主法治、公平正義、誠(chéng)信友愛(ài)、充滿(mǎn)活力、安定有序、員工企業(yè)客戶(hù)和諧相處的總要求和共同建設(shè)、共同享有的原則,著力解決三方最關(guān)心、最直接、最現(xiàn)實(shí)的利益問(wèn)題,努力形成軟件人民各盡其能、各得其所而又和諧相處的局面,為發(fā)展軟件提供良好的軟件文化環(huán)境。
全體IT從業(yè)人員、所有軟件人民要全面把握和諧軟件過(guò)程的科學(xué)內(nèi)涵和精神實(shí)質(zhì),增強(qiáng)貫徹落實(shí)和諧軟件過(guò)程的自覺(jué)性和堅(jiān)定性,著力轉(zhuǎn)變不適應(yīng)不符合和諧軟件過(guò)程的思想觀念,著力解決影響和制約和諧軟件過(guò)程的突出問(wèn)題,把軟件社會(huì)的發(fā)展積極性引導(dǎo)到和諧過(guò)程上來(lái),把和諧軟件過(guò)程貫徹落實(shí)到軟件工程的各個(gè)方面。
總之,我們要不斷堅(jiān)持和諧軟件過(guò)程,根據(jù)軟件、行業(yè)、人文等各類(lèi)因素,不斷地落實(shí)和深化和諧軟件過(guò)程的理念,不斷反思總結(jié)吸收借鑒改善創(chuàng)新,把黨所一貫主張的自主創(chuàng)新、自主知識(shí)產(chǎn)權(quán)要求通過(guò)和諧軟件過(guò)程真正得到體現(xiàn),使中國(guó)軟件能夠趕上并超過(guò)美國(guó)甚至領(lǐng)先世界。
和諧軟件過(guò)程是以人為核心,堅(jiān)持“平衡、簡(jiǎn)易、統(tǒng)籌”的基本觀點(diǎn)和方法。軟件過(guò)程的基本政策路線是企業(yè)、員工、客戶(hù)的生命線,是實(shí)現(xiàn)和諧永續(xù)研發(fā)的根本保證。以平衡為第一要義是軟件過(guò)程得以正常開(kāi)展的基本前提,是員工、企業(yè)、客戶(hù)基本要求得以實(shí)現(xiàn)的根本要求;簡(jiǎn)易法則是展開(kāi)具體工作之本,是實(shí)現(xiàn)員工、企業(yè)、客戶(hù)利益最大化的現(xiàn)實(shí)基礎(chǔ);總結(jié)、吸收和創(chuàng)新是不斷提高工作效率、提高各方利益的活力源泉。要堅(jiān)持把以促進(jìn)利益平衡、以簡(jiǎn)易法則提高效率、保證軟件品質(zhì)三個(gè)基本點(diǎn)統(tǒng)一于共享軟件成果共擔(dān)軟件義務(wù)之中。
總結(jié):軟件過(guò)程方法沒(méi)有最好的方法,只有最適合的方法。由于每個(gè)公司文化和項(xiàng)目背景不同,最適合公司文化和項(xiàng)目特點(diǎn)的方法就是最佳、最好的開(kāi)法。
聯(lián)系客服