本書(shū)展示了系統(tǒng)設(shè)計(jì)和項(xiàng)目設(shè)計(jì)的結(jié)構(gòu)化工程方法。本書(shū)的結(jié)構(gòu)反映了方法論的兩個(gè)部分:系統(tǒng)設(shè)計(jì)(通常稱(chēng)為架構(gòu))和項(xiàng)目設(shè)計(jì)。這兩部分相輔相成,是成功的必要條件。附錄提供了一些補(bǔ)充內(nèi)容。
在大多數(shù)技術(shù)書(shū)籍中,每一章只針對(duì)一個(gè)主題并深入探討,這樣更容易編寫(xiě),但這通常不是人們學(xué)習(xí)的方式。相比之下,在這本書(shū)中,講解是螺旋式的。本書(shū)的兩大部分中的每一
章都重申了前幾章的觀點(diǎn),通過(guò)多方面的洞察來(lái)進(jìn)行更深入的研究或觀點(diǎn)的演進(jìn)。這模仿了自然的學(xué)習(xí)過(guò)程,每一章都依賴(lài)于前面的章節(jié),所以你應(yīng)該按順序閱讀這些章節(jié)。本書(shū)的兩大部分均包含了詳細(xì)的案例研究,以展示這些觀點(diǎn)以及其他方面。同時(shí),為了保持迭代的簡(jiǎn)潔性,作為一般規(guī)則,我通常避免內(nèi)容重復(fù),因此即使是關(guān)鍵知識(shí)點(diǎn),也只討論一次。
以下是對(duì)各章和附錄的簡(jiǎn)單介紹:
第1章 元設(shè)計(jì)方法
本章介紹了下列關(guān)鍵思想:要想成功,必須同時(shí)設(shè)計(jì)系統(tǒng)和用來(lái)構(gòu)建系統(tǒng)的項(xiàng)目。這兩種設(shè)計(jì)對(duì)于終成功都是不可或缺的。沒(méi)有架構(gòu)就無(wú)法設(shè)計(jì)項(xiàng)目,設(shè)計(jì)一個(gè)無(wú)法構(gòu)建的系統(tǒng)是毫無(wú)意義的。
第2章 分解
本章致力于將系統(tǒng)分解為組成其架構(gòu)的組件。大多數(shù)人以壞的方式來(lái)分解系統(tǒng),所以本章首先解釋了不該做什么。一旦這個(gè)觀念建立起來(lái),你將學(xué)會(huì)如何正確地分解系統(tǒng),在該過(guò)程中掌握一組有用的、簡(jiǎn)單的分析工具并獲得觀察結(jié)果。
第3章 結(jié)構(gòu)
本章提升了第2章的思想,引入了結(jié)構(gòu)。你將看到如何捕獲需求、如何對(duì)架構(gòu)分層、架構(gòu)組件的分類(lèi)及相互關(guān)系、特定的分類(lèi)指導(dǎo)原則以及一些相關(guān)的問(wèn)題,如子系統(tǒng)設(shè)計(jì)。
第4章 組合
本章說(shuō)明如何將系統(tǒng)組件組裝成滿(mǎn)足需求的有效組合。這簡(jiǎn)短的一章包含了本書(shū)的幾個(gè)關(guān)鍵設(shè)計(jì)原則,并將前兩章的內(nèi)容轉(zhuǎn)化為將在每個(gè)系統(tǒng)中使用的強(qiáng)大的思維工具。
第5章 系統(tǒng)設(shè)計(jì)示例
本章是一個(gè)廣泛的案例研究,展示了迄今為止所討論的系統(tǒng)設(shè)計(jì)思想。系統(tǒng)設(shè)計(jì)螺旋結(jié)構(gòu)的后迭代提供了一個(gè)實(shí)際的系統(tǒng),使系統(tǒng)設(shè)計(jì)與業(yè)務(wù)保持一致,并展示了如何生成架構(gòu)并對(duì)其進(jìn)行驗(yàn)證。
第6章 動(dòng)機(jī)
由于大多數(shù)人從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)項(xiàng)目設(shè)計(jì)(更不用說(shuō)實(shí)踐了),本章介紹了項(xiàng)目設(shè)計(jì)的概念和參與項(xiàng)目設(shè)計(jì)的動(dòng)機(jī)。這是項(xiàng)目設(shè)計(jì)螺旋的第0次迭代。
第7章 項(xiàng)目設(shè)計(jì)綜述
本章概述了如何設(shè)計(jì)一個(gè)項(xiàng)目,首先定義了軟件研發(fā)的成功,然后介紹了明智的決定、項(xiàng)目人員配備、項(xiàng)目網(wǎng)絡(luò)圖、關(guān)鍵路徑、安排活動(dòng)和項(xiàng)目費(fèi)用等關(guān)鍵概念。本章涵蓋了隨后各章中使用的大多數(shù)思想和技術(shù),后重點(diǎn)討論了角色和責(zé)任。
第8章 網(wǎng)絡(luò)和浮動(dòng)時(shí)間
本章介紹了項(xiàng)目網(wǎng)絡(luò)及其作為設(shè)計(jì)工具的使用。你將看到如何將項(xiàng)目建模為一個(gè)網(wǎng)絡(luò)圖,學(xué)習(xí)浮動(dòng)時(shí)間的關(guān)鍵概念,了解如何在人員配備和調(diào)度中使用浮動(dòng)時(shí)間,并了解浮動(dòng)時(shí)間與風(fēng)險(xiǎn)的關(guān)系。
第9章 時(shí)間和成本
本章定義了在所有項(xiàng)目中時(shí)間和成本之間可能的權(quán)衡,并討論了通過(guò)正確工作來(lái)加速所有項(xiàng)目的方法。除此之外,你還將學(xué)習(xí)壓縮的關(guān)鍵概念、時(shí)間-成本曲線(xiàn)和成本要素。
第10章 風(fēng)險(xiǎn)
本章介紹了大多數(shù)項(xiàng)目中缺少的要素:量化風(fēng)險(xiǎn)。你將看到如何度量風(fēng)險(xiǎn)并將其映射到上一章的時(shí)間和成本概念中,以及如何基于網(wǎng)絡(luò)計(jì)算風(fēng)險(xiǎn)。風(fēng)險(xiǎn)通常是評(píng)估選項(xiàng)的方式,也是一流的規(guī)劃工具。
第11章 實(shí)踐中的項(xiàng)目設(shè)計(jì)
本章通過(guò)對(duì)設(shè)計(jì)一個(gè)項(xiàng)目所涉及的步驟進(jìn)行系統(tǒng)的演練,將前幾章的所有概念付諸使用。其目標(biāo)是演示設(shè)計(jì)項(xiàng)目時(shí)使用的思維過(guò)程,以及如何為業(yè)務(wù)決策者審查做準(zhǔn)備。
第12章 高級(jí)技巧
遵循螺旋式學(xué)習(xí)模型,本章介紹了高級(jí)技巧和概念。這些技巧在各種復(fù)雜程度(從簡(jiǎn)單到具挑戰(zhàn)性)的項(xiàng)目中都很有用,是對(duì)前幾章的補(bǔ)充,而且經(jīng)常會(huì)結(jié)合起來(lái)使用。
第13章 項(xiàng)目設(shè)計(jì)示例
本章是與第5章的系統(tǒng)設(shè)計(jì)示例相對(duì)應(yīng)的項(xiàng)目設(shè)計(jì)示例。它也是一個(gè)案例研究,展示了設(shè)計(jì)項(xiàng)目端到端的過(guò)程。本章的重點(diǎn)是案例研究,而不是技巧。
第14章 總結(jié)
后一章從設(shè)計(jì)的技術(shù)方面進(jìn)行了回顧,提供了一系列的指導(dǎo)、技巧、視角和開(kāi)發(fā)過(guò)程思想。它從回答何時(shí)設(shè)計(jì)項(xiàng)目這個(gè)重要問(wèn)題開(kāi)始,以項(xiàng)目設(shè)計(jì)對(duì)質(zhì)量的影響結(jié)束。
附錄A 項(xiàng)目跟蹤
附錄A展示了如何在計(jì)劃方面跟蹤項(xiàng)目的進(jìn)度,以及如何在需要時(shí)采取糾正措施。項(xiàng)目跟蹤更多的是關(guān)于項(xiàng)目管理,而不是項(xiàng)目設(shè)計(jì),但它對(duì)于確保你在工作開(kāi)始后履行承諾至關(guān)重要。
附錄B 服務(wù)契約設(shè)計(jì)
架構(gòu)本身是粗略的,你必須設(shè)計(jì)其每個(gè)組件的細(xì)節(jié),而這些細(xì)節(jié)中重要的是服務(wù)契約。附錄B指出了設(shè)計(jì)服務(wù)契約的正確方法。此外,關(guān)于模塊化、規(guī)模和成本的討論也很好地契合了本書(shū)大多數(shù)章節(jié)的內(nèi)容。
附錄C 設(shè)計(jì)標(biāo)準(zhǔn)
附錄C匯總了本書(shū)中提到的關(guān)鍵原則、指南和禁忌事項(xiàng)。該標(biāo)準(zhǔn)是簡(jiǎn)潔的,是關(guān)于什么,而不是為什么。這個(gè)標(biāo)準(zhǔn)背后的原理可以在本書(shū)的其余部分找到。
【前 言】
幾乎沒(méi)有人是被逼著進(jìn)入軟件開(kāi)發(fā)行業(yè)的。相反,許多人愛(ài)上了編程并決定以此謀生。然而,大多數(shù)人所希望的職業(yè)生涯與軟件開(kāi)發(fā)那黑暗且令人沮喪的現(xiàn)實(shí)之間存在著巨大的差距。整個(gè)軟件行業(yè)正處于一場(chǎng)深刻的危機(jī)之中。因?yàn)檐浖_(kāi)發(fā)是多維的,所以導(dǎo)致了非常嚴(yán)重的危機(jī),而軟件開(kāi)發(fā)的每個(gè)方面都被打破了:
成本。一個(gè)項(xiàng)目的預(yù)算與實(shí)際開(kāi)發(fā)該系統(tǒng)的成本之間的相關(guān)性很弱。許多組織甚至不愿意解決成本問(wèn)題,可能是因?yàn)樗鼈兏静恢廊绾谓鉀Q,也可能是因?yàn)樗鼈冋J(rèn)識(shí)到根本承擔(dān)不起系統(tǒng)的高昂成本。即使新系統(tǒng)的個(gè)版本的成本是合理的,但由于設(shè)計(jì)不當(dāng)和無(wú)法適應(yīng)變化,整個(gè)生命周期的系統(tǒng)成本也往往會(huì)遠(yuǎn)高于預(yù)期。隨著時(shí)間的推移,維護(hù)成本變得非常高,以至于公司通常會(huì)決定從頭開(kāi)始,新系統(tǒng)很快就會(huì)像之前一樣陷入同樣甚至更糟糕的局面。而其他任何行業(yè)都不會(huì)選擇定期從頭開(kāi)始,因?yàn)檫@樣做沒(méi)有經(jīng)濟(jì)意義。航空公司維護(hù)大型噴氣式飛機(jī)幾十年,而一棟房子可能維護(hù)整整一個(gè)世紀(jì)。
進(jìn)度。后期限(deadline)的設(shè)定通常是武斷的、無(wú)法實(shí)現(xiàn)的,因?yàn)樗c實(shí)際開(kāi)發(fā)系統(tǒng)所需的時(shí)間幾乎沒(méi)有關(guān)系。對(duì)于大多數(shù)開(kāi)發(fā)人員來(lái)說(shuō),后期限是無(wú)用的東西,它會(huì)在團(tuán)隊(duì)努力工作的時(shí)候呼嘯而過(guò)。如果開(kāi)發(fā)團(tuán)隊(duì)確實(shí)在后期限之前完成了任務(wù),那么每個(gè)人都會(huì)感到驚訝,因?yàn)闆](méi)有人指望它能按時(shí)完成。這也是一個(gè)糟糕的系統(tǒng)設(shè)計(jì)的直接結(jié)果,它會(huì)導(dǎo)致系統(tǒng)的變更和新工作的連鎖反應(yīng),并使以前完成的工作失效。而且,這是一個(gè)非常低效的開(kāi)發(fā)過(guò)程的結(jié)果,它忽略了活動(dòng)之間的依賴(lài)關(guān)系和構(gòu)建系統(tǒng)的快、安全的方式。不僅整個(gè)系統(tǒng)的上市時(shí)間相當(dāng)長(zhǎng),而且單個(gè)功能的上市時(shí)間也可能很夸張。當(dāng)項(xiàng)目的進(jìn)度出現(xiàn)延誤時(shí),情況已經(jīng)很糟了;當(dāng)管理層和客戶(hù)都不知道這個(gè)延誤時(shí),情況就更糟了,因?yàn)闆](méi)有人知道這個(gè)項(xiàng)目的真實(shí)狀況。
需求。開(kāi)發(fā)人員往往終解決了錯(cuò)誤的問(wèn)題。終端客戶(hù)或其內(nèi)部環(huán)節(jié)參與者(如市場(chǎng)營(yíng)銷(xiāo)人員)與開(kāi)發(fā)團(tuán)隊(duì)之間的溝通始終存在問(wèn)題。大多數(shù)開(kāi)發(fā)人員也無(wú)法適應(yīng)他們未能捕獲需求的情況。即使需求被完美地傳達(dá)下去,它們也可能隨著時(shí)間的推移而改變。此變更將使設(shè)計(jì)無(wú)效,并破壞團(tuán)隊(duì)試圖構(gòu)建的所有內(nèi)容。
人員配備。即使是普通的軟件系統(tǒng)也非常復(fù)雜,超出了人腦的理解能力。內(nèi)部和外部的復(fù)雜性是系統(tǒng)架構(gòu)不良的直接結(jié)果,這反過(guò)來(lái)又導(dǎo)致復(fù)雜的系統(tǒng)很難維護(hù)、擴(kuò)展或重用。
維護(hù)。大多數(shù)軟件系統(tǒng)不是由開(kāi)發(fā)它們的人員來(lái)維護(hù)的。新員工不了解系統(tǒng)是如何運(yùn)行的,因此他們?cè)谠噲D解決舊問(wèn)題時(shí)不斷地引入新問(wèn)題。這很快就拉高了維護(hù)成本,推遲了上市時(shí)間,甚至導(dǎo)致工作停頓或項(xiàng)目取消。
質(zhì)量。也許沒(méi)有任何其他東西可以像質(zhì)量那樣破壞軟件系統(tǒng)。軟件有缺陷,軟件這個(gè)詞本身就是缺陷的同義詞,開(kāi)發(fā)人員無(wú)法想象沒(méi)有缺陷的軟件系統(tǒng)。修復(fù)缺陷通常會(huì)增加缺陷數(shù),添加功能或簡(jiǎn)單維護(hù)也會(huì)增加缺陷數(shù)。質(zhì)量差是由不易測(cè)試、理解或維護(hù)的系統(tǒng)架構(gòu)直接導(dǎo)致的。同樣重要的是,大多數(shù)項(xiàng)目沒(méi)有考慮到基本的質(zhì)量控制活動(dòng),也沒(méi)有為每項(xiàng)活動(dòng)分配足夠的時(shí)間,使其可以無(wú)可挑剔地完成。
幾十年前,業(yè)界開(kāi)始開(kāi)發(fā)解決世界問(wèn)題的軟件。今天,軟件開(kāi)發(fā)本身就是一個(gè)的問(wèn)題。軟件開(kāi)發(fā)中的問(wèn)題往往以非技術(shù)性的方式表現(xiàn)出來(lái),如工作環(huán)境壓力大、人員流動(dòng)率高、工作倦怠、缺乏信任、自卑,甚至身體疾病等。
軟件開(kāi)發(fā)中的所有問(wèn)題都不是新問(wèn)題,甚至,有些人在其軟件開(kāi)發(fā)的整個(gè)職業(yè)生涯中都沒(méi)有經(jīng)歷過(guò)一次正確的軟件開(kāi)發(fā)過(guò)程。這使他們相信這根本不可能做到,他們對(duì)任何試圖解決這些問(wèn)題的嘗試都不屑一顧,因?yàn)槭虑榫褪沁@樣的。他們甚至可能會(huì)與那些試圖改進(jìn)軟件開(kāi)發(fā)的人抗衡。他們已經(jīng)得出結(jié)論,這個(gè)目標(biāo)是不可能實(shí)現(xiàn)的,所以任何嘗試取得更好結(jié)果的人,都是在試圖做不可能的事,這侮辱了他們的智商。
我自己的過(guò)往經(jīng)歷是一個(gè)反例,表明開(kāi)發(fā)人員可以成功地開(kāi)發(fā)軟件系統(tǒng)。我負(fù)責(zé)的每個(gè)項(xiàng)目均按時(shí)、按預(yù)算、零缺陷地交付。在創(chuàng)建IDesign之后,我繼續(xù)保持了這一紀(jì)錄,我們?cè)谠擃I(lǐng)域一次又一次地幫助客戶(hù)兌現(xiàn)了他們的承諾。
這種持續(xù)、可重復(fù)的成功紀(jì)錄絕非偶然。我在系統(tǒng)工程領(lǐng)域(包含物理系統(tǒng)和軟件系統(tǒng))接受了培訓(xùn)和教育,這使我很容易地認(rèn)識(shí)到這兩個(gè)系統(tǒng)的相似之處。將實(shí)踐原則應(yīng)用到軟件設(shè)計(jì)中,其他工程領(lǐng)域的常識(shí)在軟件系統(tǒng)中也是有意義的。我從來(lái)沒(méi)有想過(guò)不把軟件開(kāi)發(fā)當(dāng)作工程來(lái)對(duì)待,或者不經(jīng)過(guò)設(shè)計(jì)或計(jì)劃就開(kāi)發(fā)一個(gè)系統(tǒng)。我認(rèn)為沒(méi)有必要在我的信念上妥協(xié),也沒(méi)有必要屈服于權(quán)宜之計(jì),因?yàn)樽稣_的事情才行得通,而不這樣做的可怕后果是顯而易見(jiàn)的。我很幸運(yùn),能有出色的導(dǎo)師,在正確的時(shí)間、正確的地點(diǎn)看到哪些有效、哪些無(wú)效,并有機(jī)會(huì)在早期參與了一些重大而關(guān)鍵的項(xiàng)目,使之成為優(yōu)秀案例的一部分。
近年來(lái),我注意到該行業(yè)的問(wèn)題越來(lái)越嚴(yán)重。越來(lái)越多的軟件項(xiàng)目失敗了。在時(shí)間和金錢(qián)上失敗成本都變得越來(lái)越高,甚至已經(jīng)完成的項(xiàng)目也往往偏離了初的承諾。這場(chǎng)危機(jī)加劇不僅僅是因?yàn)橄到y(tǒng)越來(lái)越大或者云計(jì)算的發(fā)展,也可能是激進(jìn)的后期限或者更高的變更率。但我懷疑真正的原因是,開(kāi)發(fā)隊(duì)伍中越來(lái)越缺乏如何設(shè)計(jì)和開(kāi)發(fā)軟件系統(tǒng)的知識(shí)。之前大多數(shù)團(tuán)隊(duì)中都有一位資深人士,他指導(dǎo)年輕人并傳授知識(shí)。如今,這些導(dǎo)師已經(jīng)或即將退休。在他們?nèi)毕那闆r下,普通人只能獲得無(wú)限的信息,卻得不到有用的知識(shí)。
我多希望有一個(gè)你做了就能解決軟件危機(jī)的方法,比如使用過(guò)程、開(kāi)發(fā)方法、工具或技術(shù)。不幸的是,要解決多維問(wèn)題,就需要多維解決方案。在這本書(shū)中,我提供了一個(gè)統(tǒng)一的補(bǔ)救方法:軟件架構(gòu)之道(righting software)。
總之,我所建議的是使用工程原理來(lái)設(shè)計(jì)和開(kāi)發(fā)軟件系統(tǒng)。好消息是沒(méi)有必要重新發(fā)明輪子,其他的工程學(xué)科是相當(dāng)成功的,因此軟件行業(yè)可以借用它們的關(guān)鍵通用設(shè)計(jì)思想并使其適用于軟件。你將在本書(shū)中看到一套軟件工程的基本原理,以及一套完整應(yīng)用于軟件系統(tǒng)和項(xiàng)目的工具與技術(shù)。要獲得成功,我們必須從工程的角度出發(fā),基于時(shí)間和風(fēng)險(xiǎn)方面的考慮,確保軟件系統(tǒng)是可維護(hù)的、可擴(kuò)展的、可重用的、可負(fù)擔(dān)的和可行的,這些都是工程方面的問(wèn)題,而不是技術(shù)方面的問(wèn)題,而且可以直接追溯到系統(tǒng)和項(xiàng)目的設(shè)計(jì)環(huán)節(jié)。由于軟件工程師通常指軟件開(kāi)發(fā)人員,所以出現(xiàn)了術(shù)語(yǔ)軟件架構(gòu)師來(lái)描述團(tuán)隊(duì)中負(fù)責(zé)項(xiàng)目所有設(shè)計(jì)方面的人。因此,我假定本書(shū)的讀者是軟件架構(gòu)師。
本書(shū)中的一些想法并不是你要正確認(rèn)識(shí)的事情,但它們肯定是一個(gè)良好的開(kāi)端,因?yàn)樗鼈冇|及了前面提到的問(wèn)題的根源。根本原因是設(shè)計(jì)不當(dāng),無(wú)論是軟件系統(tǒng)本身還是用于構(gòu)建該系統(tǒng)的項(xiàng)目。你將看到,按計(jì)劃、按預(yù)算交付軟件以及設(shè)計(jì)滿(mǎn)足所有可能需求的系統(tǒng)是完全可能的,開(kāi)發(fā)出來(lái)的系統(tǒng)也是易維護(hù)、易擴(kuò)展和易重用的。希望通過(guò)實(shí)踐這些想法,你不僅能夠?qū)W會(huì)軟件系統(tǒng)構(gòu)建之道,還能助力自己的職業(yè)生涯,并重新點(diǎn)燃對(duì)軟件開(kāi)發(fā)的熱情。
【本書(shū)的組織結(jié)構(gòu)】
本書(shū)展示了系統(tǒng)設(shè)計(jì)和項(xiàng)目設(shè)計(jì)的結(jié)構(gòu)化工程方法。本書(shū)的結(jié)構(gòu)反映了方法論的兩個(gè)部分:系統(tǒng)設(shè)計(jì)(通常稱(chēng)為架構(gòu))和項(xiàng)目設(shè)計(jì)。這兩部分相輔相成,是成功的必要條件。附錄提供了一些補(bǔ)充內(nèi)容。
在大多數(shù)技術(shù)書(shū)籍中,每一章只針對(duì)一個(gè)主題并深入探討,這樣更容易編寫(xiě),但這通常不是人們學(xué)習(xí)的方式。相比之下,在這本書(shū)中,講解是螺旋式的。本書(shū)的兩大部分中的每一
章都重申了前幾章的觀點(diǎn),通過(guò)多方面的洞察來(lái)進(jìn)行更深入的研究或觀點(diǎn)的演進(jìn)。這模仿了自然的學(xué)習(xí)過(guò)程,每一章都依賴(lài)于前面的章節(jié),所以你應(yīng)該按順序閱讀這些章節(jié)。本書(shū)的兩大部分均包含了詳細(xì)的案例研究,以展示這些觀點(diǎn)以及其他方面。同時(shí),為了保持迭代的簡(jiǎn)潔性,作為一般規(guī)則,我通常避免內(nèi)容重復(fù),因此即使是關(guān)鍵知識(shí)點(diǎn),也只討論一次。
以下是對(duì)各章和附錄的簡(jiǎn)單介紹:
第1章 元設(shè)計(jì)方法
本章介紹了下列關(guān)鍵思想:要想成功,必須同時(shí)設(shè)計(jì)系統(tǒng)和用來(lái)構(gòu)建系統(tǒng)的項(xiàng)目。這兩種設(shè)計(jì)對(duì)于終成功都是不可或缺的。沒(méi)有架構(gòu)就無(wú)法設(shè)計(jì)項(xiàng)目,設(shè)計(jì)一個(gè)無(wú)法構(gòu)建的系統(tǒng)是毫無(wú)意義的。
第2章 分解
本章致力于將系統(tǒng)分解為組成其架構(gòu)的組件。大多數(shù)人以壞的方式來(lái)分解系統(tǒng),所以本章首先解釋了不該做什么。一旦這個(gè)觀念建立起來(lái),你將學(xué)會(huì)如何正確地分解系統(tǒng),在該過(guò)程中掌握一組有用的、簡(jiǎn)單的分析工具并獲得觀察結(jié)果。
第3章 結(jié)構(gòu)
本章提升了第2章的思想,引入了結(jié)構(gòu)。你將看到如何捕獲需求、如何對(duì)架構(gòu)分層、架構(gòu)組件的分類(lèi)及相互關(guān)系、特定的分類(lèi)指導(dǎo)原則以及一些相關(guān)的問(wèn)題,如子系統(tǒng)設(shè)計(jì)。
第4章 組合
本章說(shuō)明如何將系統(tǒng)組件組裝成滿(mǎn)足需求的有效組合。這簡(jiǎn)短的一章包含了本書(shū)的幾個(gè)關(guān)鍵設(shè)計(jì)原則,并將前兩章的內(nèi)容轉(zhuǎn)化為將在每個(gè)系統(tǒng)中使用的強(qiáng)大的思維工具。
第5章 系統(tǒng)設(shè)計(jì)示例
本章是一個(gè)廣泛的案例研究,展示了迄今為止所討論的系統(tǒng)設(shè)計(jì)思想。系統(tǒng)設(shè)計(jì)螺旋結(jié)構(gòu)的后迭代提供了一個(gè)實(shí)際的系統(tǒng),使系統(tǒng)設(shè)計(jì)與業(yè)務(wù)保持一致,并展示了如何生成架構(gòu)并對(duì)其進(jìn)行驗(yàn)證。
第6章 動(dòng)機(jī)
由于大多數(shù)人從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)項(xiàng)目設(shè)計(jì)(更不用說(shuō)實(shí)踐了),本章介紹了項(xiàng)目設(shè)計(jì)的概念和參與項(xiàng)目設(shè)計(jì)的動(dòng)機(jī)。這是項(xiàng)目設(shè)計(jì)螺旋的第0次迭代。
第7章 項(xiàng)目設(shè)計(jì)綜述
本章概述了如何設(shè)計(jì)一個(gè)項(xiàng)目,首先定義了軟件研發(fā)的成功,然后介紹了明智的決定、項(xiàng)目人員配備、項(xiàng)目網(wǎng)絡(luò)圖、關(guān)鍵路徑、安排活動(dòng)和項(xiàng)目費(fèi)用等關(guān)鍵概念。本章涵蓋了隨后各章中使用的大多數(shù)思想和技術(shù),后重點(diǎn)討論了角色和責(zé)任。
第8章 網(wǎng)絡(luò)和浮動(dòng)時(shí)間
本章介紹了項(xiàng)目網(wǎng)絡(luò)及其作為設(shè)計(jì)工具的使用。你將看到如何將項(xiàng)目建模為一個(gè)網(wǎng)絡(luò)圖,學(xué)習(xí)浮動(dòng)時(shí)間的關(guān)鍵概念,了解如何在人員配備和調(diào)度中使用浮動(dòng)時(shí)間,并了解浮動(dòng)時(shí)間與風(fēng)險(xiǎn)的關(guān)系。
第9章 時(shí)間和成本
本章定義了在所有項(xiàng)目中時(shí)間和成本之間可能的權(quán)衡,并討論了通過(guò)正確工作來(lái)加速所有項(xiàng)目的方法。除此之外,你還將學(xué)習(xí)壓縮的關(guān)鍵概念、時(shí)間-成本曲線(xiàn)和成本要素。
第10章 風(fēng)險(xiǎn)
本章介紹了大多數(shù)項(xiàng)目中缺少的要素:量化風(fēng)險(xiǎn)。你將看到如何度量風(fēng)險(xiǎn)并將其映射到上一章的時(shí)間和成本概念中,以及如何基于網(wǎng)絡(luò)計(jì)算風(fēng)險(xiǎn)。風(fēng)險(xiǎn)通常是評(píng)估選項(xiàng)的方式,也是一流的規(guī)劃工具。
第11章 實(shí)踐中的項(xiàng)目設(shè)計(jì)
本章通過(guò)對(duì)設(shè)計(jì)一個(gè)項(xiàng)目所涉及的步驟進(jìn)行系統(tǒng)的演練,將前幾章的所有概念付諸使用。其目標(biāo)是演示設(shè)計(jì)項(xiàng)目時(shí)使用的思維過(guò)程,以及如何為業(yè)務(wù)決策者審查做準(zhǔn)備。
第12章 高級(jí)技巧
遵循螺旋式學(xué)習(xí)模型,本章介紹了高級(jí)技巧和概念。這些技巧在各種復(fù)雜程度(從簡(jiǎn)單到挑戰(zhàn)性)的項(xiàng)目中都很有用,是對(duì)前幾章的補(bǔ)充,而且經(jīng)常會(huì)結(jié)合起來(lái)使用。
第13章 項(xiàng)目設(shè)計(jì)示例
本章是與第5章的系統(tǒng)設(shè)計(jì)示例相對(duì)應(yīng)的項(xiàng)目設(shè)計(jì)示例。它也是一個(gè)案例研究,展示了設(shè)計(jì)項(xiàng)目端到端的過(guò)程。本章的重點(diǎn)是案例研究,而不是技巧。
第14章 總結(jié)
后一章從設(shè)計(jì)的技術(shù)方面進(jìn)行了回顧,提供了一系列的指導(dǎo)、技巧、視角和開(kāi)發(fā)過(guò)程思想。它從回答何時(shí)設(shè)計(jì)項(xiàng)目這個(gè)重要問(wèn)題開(kāi)始,以項(xiàng)目設(shè)計(jì)對(duì)質(zhì)量的影響結(jié)束。
附錄A 項(xiàng)目跟蹤
附錄A展示了如何在計(jì)劃方面跟蹤項(xiàng)目的進(jìn)度,以及如何在需要時(shí)采取糾正措施。項(xiàng)目跟蹤更多的是關(guān)于項(xiàng)目管理,而不是項(xiàng)目設(shè)計(jì),但它對(duì)于確保你在工作開(kāi)始后履行承諾至關(guān)重要。
附錄B 服務(wù)契約設(shè)計(jì)
架構(gòu)本身是粗略的,你必須設(shè)計(jì)其每個(gè)組件的細(xì)節(jié),而這些細(xì)節(jié)中重要的是服務(wù)契約。附錄B指出了設(shè)計(jì)服務(wù)契約的正確方法。此外,關(guān)于模塊化、規(guī)模和成本的討論也很好地契合了本書(shū)大多數(shù)章節(jié)的內(nèi)容。
附錄C 設(shè)計(jì)標(biāo)準(zhǔn)
附錄C匯總了本書(shū)中提到的關(guān)鍵原則、指南和禁忌事項(xiàng)。該標(biāo)準(zhǔn)是簡(jiǎn)潔的,是關(guān)于什么,而不是為什么。這個(gè)標(biāo)準(zhǔn)背后的原理可以在本書(shū)的其余部分找到。
【關(guān)于讀者的假設(shè)】
雖然本書(shū)是面向軟件架構(gòu)師的,但讀者范圍更廣泛。讀者可以是架構(gòu)師、高級(jí)軟件專(zhuān)業(yè)人員、項(xiàng)目經(jīng)理或多重角色的人,也就是說(shuō),有志于提高自己技能的開(kāi)發(fā)人員都將從本書(shū)中受益。無(wú)論你目前處于什么職位,本書(shū)都將為你的職業(yè)生涯打開(kāi)一扇大門(mén)。當(dāng)你初次閱讀本書(shū)時(shí),可能不是一個(gè)經(jīng)驗(yàn)豐富的架構(gòu)師,但是一旦你閱讀并掌握了方法論,就將躋身世界之巔。
本書(shū)的技術(shù)和思想適用于各種編程語(yǔ)言(如C 、Java、C#和Python)、各種平臺(tái)(如Windows、Linux、移動(dòng)設(shè)備、本地環(huán)境和云)和各種項(xiàng)目規(guī)模(從小到的項(xiàng)目),還跨越所有行業(yè)(從醫(yī)療保健到國(guó)防)及所有商業(yè)模式和公司規(guī)模(從初創(chuàng)企業(yè)到大型公司)。
我對(duì)讀者做出的重要假設(shè)是,你在深層次上關(guān)心自己的工作,而當(dāng)前的失敗和浪費(fèi)使你感到苦惱。你想做得更好,但是缺乏指導(dǎo),或者為不良的做法所困擾。
使用本書(shū)的要訣
閱讀本書(shū)的先決條件是開(kāi)放的心態(tài),過(guò)去的失敗經(jīng)歷和挫折是加分項(xiàng)。
其他在線(xiàn)資源
本書(shū)的網(wǎng)頁(yè)提供了示例文件、附錄和勘誤表。可以通過(guò)以下網(wǎng)址訪(fǎng)問(wèn)此頁(yè):
http://www.rightingsoftware.org
你可以在本書(shū)的下載支持文件鏈接下找到示例文件和相關(guān)的支持材料。
有關(guān)本書(shū)的其他信息,請(qǐng)?jiān)L問(wèn)informit.com/title/9780136524038。
第1章 元設(shè)計(jì)方法 / 1
1.1 什么是元設(shè)計(jì)方法 / 2
1.1.1 設(shè)計(jì)驗(yàn)證 / 3
1.1.2 緊迫的時(shí)間 / 3
1.1.3 消除分析癱瘓 / 4
1.1.4 溝通 / 5
1.2 元設(shè)計(jì)方法不是什么 / 6
|部分| 系統(tǒng)設(shè)計(jì)
第2章 分解 / 8
2.1 避免功能分解 / 9
2.1.1 功能分解帶來(lái)的問(wèn)題 / 9
2.1.2 關(guān)于功能分解的思考 / 13
2.1.3 避免領(lǐng)域分解 / 15
2.1.4 錯(cuò)誤的動(dòng)機(jī) / 17
2.1.5 可測(cè)試性和設(shè)計(jì) / 17
2.1.6 示例:功能型交易系統(tǒng) / 19
2.2 基于易變性的分解 / 21
2.2.1 分解、維護(hù)和開(kāi)發(fā) / 22
2.2.2 普遍性原則 / 23
2.2.3 基于易變性的分解與測(cè)試 / 24
2.2.4 易變性的挑戰(zhàn) / 24
2.3 識(shí)別易變性 / 26
2.3.1 易變性與可變性 / 26
2.3.2 易變軸 / 27
2.3.3 偽裝成需求的解決方案 / 29
2.3.4 易變列表 / 30
2.3.5 示例:基于易變性的交易系統(tǒng) / 30
2.3.6 抵制塞壬之歌 / 34
2.3.7 易變性與業(yè)務(wù) / 35
2.3.8 為競(jìng)爭(zhēng)對(duì)手設(shè)計(jì) / 37
2.3.9 易變性和壽命 / 38
2.3.10 實(shí)踐的重要性 / 38
第3章 結(jié)構(gòu) / 40
3.1 用例和需求 / 41
3.2 分層方法 / 43
3.3 典型分層 / 44
3.3.1 客戶(hù)端層 / 44
3.3.2 業(yè)務(wù)邏輯層 / 45
3.3.3 資源訪(fǎng)問(wèn)層 / 46
3.3.4 資源層 / 47
3.3.5 實(shí)用工具庫(kù)欄 / 48
3.4 分類(lèi)指南 / 48
3.4.1 命名的玄機(jī) / 48
3.4.2 四個(gè)問(wèn)題 / 49
3.4.3 管理器與引擎比 / 50
3.4.4 關(guān)鍵觀察 / 51
3.5 子系統(tǒng)和服務(wù) / 52
3.5.1 增量構(gòu)造 / 52
3.5.2 關(guān)于微服務(wù) / 54
3.6 開(kāi)放和封閉式架構(gòu) / 56
3.6.1 開(kāi)放式架構(gòu) / 56
3.6.2 封閉式架構(gòu) / 56
3.6.3 半封閉/半開(kāi)放架構(gòu) / 57
3.6.4 放寬規(guī)則 / 57
3.6.5 設(shè)計(jì)禁忌 / 59
3.6.6 力求對(duì)稱(chēng) / 61
第4章 組合 / 62
4.1 需求與變更 / 62
4.1.1 憎恨變更 / 63
4.1.2 設(shè)計(jì)基本準(zhǔn)則 / 63
4.2 可組合設(shè)計(jì) / 64
4.2.1 核心用例 / 64
4.2.2 架構(gòu)師的使命 / 65
4.3 這里沒(méi)有功能 / 68
4.4 處理變更 / 69
第5章 系統(tǒng)設(shè)計(jì)示例 / 71
5.1 系統(tǒng)概述 / 72
5.1.1 遺留系統(tǒng) / 73
5.1.2 新系統(tǒng) / 74
5.1.3 公司 / 74
5.1.4 用例 / 74
5.2 反設(shè)計(jì)工作 / 80
5.2.1 巨型系統(tǒng) / 80
5.2.2 顆粒化構(gòu)建塊 / 80
5.2.3 域分解 / 81
5.3 業(yè)務(wù)對(duì)齊 / 82
5.3.1 愿景 / 82
5.3.2 業(yè)務(wù)目標(biāo) / 83
5.3.3 使命陳述 / 84
5.4 架構(gòu) / 84
5.4.1 TradeMe詞匯表 / 84
5.4.2 TradeMe易變區(qū)域 / 85
5.4.3 靜態(tài)架構(gòu) / 88
5.4.4 操作概念 / 90
5.4.5 工作流管理器 / 92
5.5 設(shè)計(jì)驗(yàn)證 / 93
5.5.1 添加技工/承包商用例 / 94
5.5.2 請(qǐng)求技工用例 / 95
5.5.3 匹配技工用例 / 96
5.5.4 分配技工用例 / 98
5.5.5 終止技工用例 / 100
5.5.6 支付技工用例 / 101
5.5.7 創(chuàng)建項(xiàng)目用例 / 101
5.5.8 結(jié)束項(xiàng)目用例 / 102
5.6 接下來(lái)會(huì)是什么 / 103
|第二部分| 項(xiàng)目設(shè)計(jì)
第6章 動(dòng)機(jī) / 106
6.1 項(xiàng)目設(shè)計(jì)的背景和基本動(dòng)機(jī) / 106
6.1.1 項(xiàng)目設(shè)計(jì)和項(xiàng)目穩(wěn)健 / 107
6.1.2 組裝說(shuō)明 / 108
6.2 軟件項(xiàng)目的需求層級(jí) / 108
第7章 項(xiàng)目設(shè)計(jì)綜述 / 111
7.1 定義成功 / 111
7.2 項(xiàng)目初始人員配備 / 113
7.2.1 一個(gè)架構(gòu)師,非一群架構(gòu)師 / 113
7.2.2 核心團(tuán)隊(duì) / 114
7.3 明智的決定 / 116
7.3.1 計(jì)劃,不計(jì)劃 / 116
7.3.2 軟件開(kāi)發(fā)計(jì)劃評(píng)審 / 117
7.4 服務(wù)和開(kāi)發(fā)人員 / 117
7.4.1 設(shè)計(jì)和團(tuán)隊(duì)效率 / 119
7.4.2 任務(wù)連續(xù)性 / 120
7.5 工作量的估算 / 120
7.5.1 經(jīng)典錯(cuò)誤 / 121
7.5.2 估算技術(shù) / 123
7.5.3 總體項(xiàng)目估算 / 124
7.5.4 活動(dòng)估算 / 126
7.6 關(guān)鍵路徑分析 / 127
7.6.1 項(xiàng)目網(wǎng)絡(luò)圖 / 127
7.6.2 關(guān)鍵路徑 / 130
7.6.3 分配資源 / 131
7.7 安排活動(dòng) / 134
7.8 項(xiàng)目費(fèi)用 / 140
7.9 掙值計(jì)劃 / 143
7.9.1 經(jīng)典錯(cuò)誤 / 144
7.9.2 淺S曲線(xiàn) / 145
7.10 角色和責(zé)任 / 148
第8章 網(wǎng)絡(luò)和浮動(dòng)時(shí)間 / 149
8.1 網(wǎng)絡(luò)圖 / 149
8.1.1 節(jié)點(diǎn)圖 / 150
8.1.2 箭頭圖 / 150
8.1.3 箭頭圖與節(jié)點(diǎn)圖 / 151
8.2 浮動(dòng)時(shí)間 / 152
8.2.1 總浮動(dòng)時(shí)間 / 153
8.2.2 自由浮動(dòng)時(shí)間 / 153
8.2.3 計(jì)算浮動(dòng)時(shí)間 / 154
8.2.4 可視化浮動(dòng)時(shí)間 / 155
8.3 基于浮動(dòng)時(shí)間的進(jìn)度安排 / 157
第9章 時(shí)間和成本 / 159
9.1 加速軟件項(xiàng)目 / 159
9.2 進(jìn)度壓縮 / 162
9.2.1 利用更好的資源 / 162
9.2.2 并行工作 / 162
9.2.3 并行工作和成本 / 164
9.3 時(shí)間-成本曲線(xiàn) / 164
9.3.1 時(shí)間-成本曲線(xiàn)上的要點(diǎn) / 165
9.3.2 離散建模 / 167
9.3.3 避免經(jīng)典錯(cuò)誤 / 168
9.3.4 項(xiàng)目可行性 / 168
9.3.5 找到常規(guī)方案 / 169
9.4 項(xiàng)目成本要素 / 171
9.4.1 直接成本 / 171
9.4.2 間接成本 / 172
9.4.3 會(huì)計(jì)與價(jià)值 / 172
9.4.4 總成本、直接成本和間接成本 / 172
9.4.5 壓縮和成本要素 / 173
9.4.6 人員配備和成本要素 / 176
9.4.7 固定成本 / 178
9.5 網(wǎng)絡(luò)壓縮 / 178
第10章 風(fēng)險(xiǎn) / 181
10.1 選擇選項(xiàng) / 181
10.2 時(shí)間-風(fēng)險(xiǎn)曲線(xiàn) / 182
10.3 風(fēng)險(xiǎn)建模 / 184
10.3.1 標(biāo)準(zhǔn)化風(fēng)險(xiǎn) / 185
10.3.2 風(fēng)險(xiǎn)和浮動(dòng) / 185
10.3.3 風(fēng)險(xiǎn)和直接成本 / 186
10.3.4 臨界風(fēng)險(xiǎn) / 186
10.3.5 斐波那契風(fēng)險(xiǎn) / 188
10.3.6 活動(dòng)風(fēng)險(xiǎn) / 189
10.3.7 臨界風(fēng)險(xiǎn)與活動(dòng)風(fēng)險(xiǎn) / 191
10.4 壓縮和風(fēng)險(xiǎn) / 191
10.5 風(fēng)險(xiǎn)緩解 / 192
10.5.1 如何緩解 / 192
10.5.2 緩解目標(biāo) / 193
10.6 風(fēng)險(xiǎn)指標(biāo) / 194
第11章 實(shí)踐中的項(xiàng)目設(shè)計(jì) / 196
11.1 使命 / 196
11.1.1 靜態(tài)架構(gòu) / 197
11.1.2 調(diào)用鏈 / 197
11.1.3 活動(dòng)清單 / 199
11.1.4 網(wǎng)絡(luò)圖 / 200
11.1.5 計(jì)劃假設(shè) / 201
11.2 尋找常規(guī)的解決方案 / 203
11.2.1 無(wú)限的資源(迭代1) / 203
11.2.2 網(wǎng)絡(luò)和資源問(wèn)題 / 204
11.2.3 基礎(chǔ)設(shè)施優(yōu)先(迭代2) / 204
11.2.4 有限的資源 / 205
11.2.5 亞臨界化(迭代7) / 208
11.2.6 選擇常規(guī)的解決方案 / 211
11.3 網(wǎng)絡(luò)壓縮 / 211
11.3.1 使用更好的資源進(jìn)行壓縮 / 211
11.3.2 引入并行工作 / 213
11.3.3 壓縮迭代結(jié)束 / 219
11.3.4 產(chǎn)出分析 / 219
11.4 效率分析 / 221
11.5 時(shí)間-成本曲線(xiàn) / 221
11.5.1 時(shí)間-成本相關(guān)模型 / 222
11.5.2 死亡區(qū)域 / 224
11.6 規(guī)劃與風(fēng)險(xiǎn) / 225
11.6.1 風(fēng)險(xiǎn)緩解 / 226
11.6.2 重建時(shí)間-成本曲線(xiàn) / 228
11.6.3 風(fēng)險(xiǎn)模型化 / 230
11.6.4 風(fēng)險(xiǎn)包含與排除 / 232
11.7 SDP評(píng)審 / 232
第12章 高級(jí)技巧 / 234
12.1 上帝活動(dòng) / 234
12.2 風(fēng)險(xiǎn)交叉點(diǎn) / 235
12.3 找到緩解目標(biāo) / 238
12.4 幾何風(fēng)險(xiǎn) / 240
12.4.1 幾何臨界風(fēng)險(xiǎn) / 241
12.4.2 幾何斐波那契風(fēng)險(xiǎn) / 241
12.4.3 幾何活動(dòng)風(fēng)險(xiǎn) / 242
12.4.4 幾何風(fēng)險(xiǎn)行為 / 243
12.5 執(zhí)行復(fù)雜度 / 244
12.5.1 圈復(fù)雜度 / 244
12.5.2 項(xiàng)目類(lèi)型與復(fù)雜度 / 245
12.5.3 項(xiàng)目壓縮與復(fù)雜度 / 246
12.6 超大型項(xiàng)目 / 247
12.6.1 復(fù)雜系統(tǒng)與脆弱性 / 248
12.6.2 網(wǎng)絡(luò)群 / 250
12.6.3 設(shè)計(jì)網(wǎng)絡(luò)群 / 250
12.7 小項(xiàng)目 / 253
12.8 基于層次設(shè)計(jì) / 253
12.8.1 基于層次設(shè)計(jì)的利弊 / 254
12.8.2 層次與構(gòu)造 / 255
第13章 項(xiàng)目設(shè)計(jì)示例 / 256
13.1 估算 / 257
13.1.1 單個(gè)活動(dòng)估算 / 257
13.1.2 總體項(xiàng)目估算 / 258
13.2 依賴(lài)關(guān)系和項(xiàng)目網(wǎng)絡(luò) / 259
13.2.1 行為依賴(lài) / 259
13.2.2 非行為依賴(lài) / 259
13.2.3 覆蓋某些依賴(lài) / 260
13.2.4 完整性檢查 / 260
13.3 常規(guī)方案 / 261
13.3.1 網(wǎng)絡(luò)圖 / 261
13.3.2 計(jì)劃進(jìn)度 / 263
13.3.3 計(jì)劃的人員配備分布 / 263
13.3.4 成本和效率 / 264
13.3.5 結(jié)果總結(jié) / 264
13.4 壓縮方案 / 264
13.4.1 添加啟用活動(dòng) / 264
13.4.2 分配資源 / 265
13.4.3 計(jì)劃進(jìn)度 / 266
13.4.4 計(jì)劃的人員配備分布 / 266
13.4.5 成本和效率 / 266
13.4.6 結(jié)果總結(jié) / 267
13.5 分層設(shè)計(jì) / 268
13.5.1 分層設(shè)計(jì)和風(fēng)險(xiǎn) / 268
13.5.2 人員配備分布 / 269
13.5.3 結(jié)果總結(jié) / 269
13.6 亞臨界方案 / 269
13.6.1 持續(xù)時(shí)間、計(jì)劃進(jìn)度和風(fēng)險(xiǎn) / 270
13.6.2 成本和效率 / 270
13.6.3 結(jié)果總結(jié) / 270
13.7 比較選項(xiàng) / 271
13.8 計(jì)劃與風(fēng)險(xiǎn) / 271
13.8.1 風(fēng)險(xiǎn)緩解 / 271
13.8.2 重新計(jì)算成本 / 274
13.9 為SDP評(píng)審做準(zhǔn)備 / 274
第14章 總結(jié) / 276
14.1 項(xiàng)目設(shè)計(jì)時(shí)間 / 276
14.1.1 真實(shí)的答案 / 277
14.1.2 邁向未來(lái) / 278
14.2 一般性指導(dǎo) / 279
14.2.1 架構(gòu)與估算 / 279
14.2.2 設(shè)計(jì)立場(chǎng) / 280
14.2.3 可選性 / 280
14.2.4 壓縮 / 281
14.2.5 計(jì)劃與風(fēng)險(xiǎn) / 283
14.3 項(xiàng)目設(shè)計(jì)的設(shè)計(jì) / 283
14.4 不同的視角 / 285
14.5 交接 / 287
14.5.1 初級(jí)交接 / 287
14.5.2 高級(jí)交接 / 287
14.5.3 資深開(kāi)發(fā)人員作為初級(jí)架構(gòu)師 / 288
14.6 實(shí)踐 / 289
14.7 項(xiàng)目設(shè)計(jì)的口頭匯報(bào) / 290
14.8 關(guān)于質(zhì)量 / 291
14.8.1 質(zhì)量控制活動(dòng) / 291
14.8.2 質(zhì)量保證活動(dòng) / 292
14.8.3 質(zhì)量與文化 / 293
|附錄|
附錄A 項(xiàng)目跟蹤 / 296
附錄B 服務(wù)契約設(shè)計(jì) / 310
附錄C 設(shè)計(jì)標(biāo)準(zhǔn) / 323