北京北大青鳥學(xué)校:軟件模型設(shè)計(jì)師的成功秘笈(一)

一名優(yōu)秀的軟件模型設(shè)計(jì)師需要做哪些工作?需要具備哪些能力與素質(zhì)?北京北大青鳥學(xué)校為大家總結(jié)25條經(jīng)驗(yàn),把這些"秘笈"應(yīng)用到工作當(dāng)中,相信會(huì)讓您的工作有一個(gè)很大的提升。
 
1. 人遠(yuǎn)比技術(shù)重要
你開發(fā)軟件是為了供別人使用,沒有人使用的軟件只是沒有意義的數(shù)據(jù)的集合而已。雖然構(gòu)件(components),EJB(Enterprise Java Beans)和代理(agent)是很有趣的東西。但是對于用戶來說,如果設(shè)計(jì)的軟件很難使用或者不能滿足他們的需求,后臺(tái)用再好的技術(shù)也于事無補(bǔ)。多花點(diǎn)時(shí)間到軟件需求和設(shè)計(jì)一個(gè)使用戶能很容易理解的界面上。

2. 理解你要實(shí)現(xiàn)的東西
好的軟件設(shè)計(jì)人員把大多數(shù)時(shí)間花費(fèi)在建立系統(tǒng)模型上,偶爾寫一些源代碼,但那只不過是為了驗(yàn)證設(shè)計(jì)過程中所遇到的問題。這將使他們的設(shè)計(jì)方案更加可行。

3. 堅(jiān)持每天學(xué)習(xí)新鮮事物
軟件開發(fā)是一項(xiàng)復(fù)雜而艱巨的工作,因?yàn)檐浖_發(fā)所用到的工具和技術(shù)是在不斷更新的。而且,一個(gè)人也不可能了解軟件開發(fā)的所有過程。因此北京北大青鳥學(xué)校認(rèn)為,對于一名優(yōu)秀的軟件設(shè)計(jì)人員,每天接觸到一些新鮮事物,學(xué)習(xí)新鮮知識是必不可少的。

4. 需求就是需求
如果你沒有任何需求,你就不要?jiǎng)邮珠_發(fā)任何軟件。成功的軟件取決于時(shí)間(在用戶要求的時(shí)間內(nèi)完成)、預(yù)算和是否滿足用戶的需求。如果你不能確切知道用戶需要的是什么,或者軟件的需求定義,那么你的工程注定會(huì)失敗。

5. 需求其實(shí)很少改變,改變的是你對需求的理解
你可以抱怨用戶不能告訴你他們想得到什么,但是不要忘記,收集需求信息是你工作。 你可以說是新來的開發(fā)人員把事情搞得一團(tuán)糟,但是,你應(yīng)該確定在工程的第一天就告訴他們應(yīng)該做什么和怎樣去做。如果你覺得公司不讓你與用戶充分接觸,那只能說明公司的管理層并不是真正支持你的項(xiàng)目。你可以抱怨公司有關(guān)軟件工程的管理制度不合理,但你必須了解大多同行公司是怎么做的。你可以借口說你們的競爭對手的成功是因?yàn)樗麄冇辛艘粋(gè)新的理念,但是為什么你沒先想到呢? 需求真正改變的情況很少,但是沒有做好需求分析工作的理由卻很多。

6. 經(jīng)常閱讀
每個(gè)月至少讀2、3本專業(yè)雜志或者1本專業(yè)書籍。保持不落伍需要付出很多的時(shí)間和金錢,但會(huì)使你成為一個(gè)很有實(shí)力的競爭者。

7. 降低軟件模塊間的耦合度
高耦合度的系統(tǒng)是很難維護(hù)的。一處的修改引起另一處甚至更多處的變動(dòng)。你可以通過以下方法降低程序的耦合度:隱藏實(shí)現(xiàn)細(xì)節(jié),強(qiáng)制構(gòu)件接口定義,不使用公用數(shù)據(jù)結(jié)構(gòu),不讓應(yīng)用程序直接操作數(shù)據(jù)庫(我的經(jīng)驗(yàn)法則是:當(dāng)應(yīng)用程序員在寫SQL代碼的時(shí)候,你的程序的耦合度就已經(jīng)很高了)。耦合度低的軟件可以很容易被重用、維護(hù)和擴(kuò)充。

8. 提高軟件的內(nèi)聚性
如果一個(gè)軟件的模塊只實(shí)現(xiàn)一個(gè)功能,那么該模塊具有高內(nèi)聚性。高內(nèi)聚性的軟件更容易維護(hù)和改進(jìn)。判斷一個(gè)模塊是否有高的內(nèi)聚性,看一看你是否能夠用一個(gè)簡單的句子描述它的功能就行了。如果你用了一段話或者你需要使用類似“和”、“或”等連詞,則說明你需要將該模塊細(xì)化。只有高內(nèi)聚性的模塊才可能被重用。 (北京北大青鳥學(xué)校,未完待續(xù))

北大青鳥網(wǎng)上報(bào)名
北大青鳥招生簡章