培養(yǎng)軟件工程思想
軟件工程是一門研究用工程化方法構(gòu)建和維護(hù)有效的、實用的和高質(zhì)量的軟件的學(xué)科。而工程化的最主要的特點是系統(tǒng)化、規(guī)范化、可量化并且嚴(yán)格控制流程得完成開發(fā)或生產(chǎn)任務(wù),在此嚴(yán)格的條件下優(yōu)質(zhì)、高效的進(jìn)行生產(chǎn)活動。
工程化思想的這種優(yōu)秀品質(zhì),決定了她在生產(chǎn)活動中不可替代的地位。比如各大品牌的手機(jī)(如Nokia、Apple)都嚴(yán)格的控制其生產(chǎn)流程,所以品牌手機(jī)比山寨機(jī)質(zhì)量要好很多,售后維護(hù)也比山寨機(jī)做到系統(tǒng)、規(guī)范。
在軟件開發(fā)過程中,我們也運用工程化思想指導(dǎo)開發(fā)。軟件工程是前人總結(jié)的心得經(jīng)驗,前車之鑒 后事之師啊。就像武林之中的泛泛之輩意外的得到一本***武功秘籍,武林*** 指日可待 豈不快哉!遙想當(dāng)年,諸葛孔明不就是憑借著對《孫子兵法》以及其他兵書的透徹理解,靈活運用成就千古奇談的嗎?
軟件工程提供了很多模型,其中非常經(jīng)典的瀑布模型,她是一種理想化模型,為了保障軟件開發(fā)的正確性,每一階段任務(wù)完成后,都必須對它的階段性產(chǎn)品進(jìn)行評審,確認(rèn)之后再轉(zhuǎn)入下一階段的工作。評審過程發(fā)現(xiàn)錯誤和疏漏后,應(yīng)該及時反饋到前面的有關(guān)階段修正錯誤或彌補(bǔ)疏漏,然后再重復(fù)前面的工作,直至某一階段通過評審后再進(jìn)入下一階段。
瀑布模型有許多優(yōu)點,如可強(qiáng)迫開發(fā)人員采用規(guī)范的方法;嚴(yán)格規(guī)定了每個階段必須提交的文檔;要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗證等。
但瀑布模型也存在缺點,其主要表現(xiàn)在:
①在軟件開發(fā)的初始階段指明軟件系統(tǒng)的全部需求是困難的,有時甚至是不現(xiàn)實的。而瀑布模型在需求分析階段要求客戶和系統(tǒng)分析員必須做到這一點才能開展后續(xù)階段的工作。
②確定需求后,用戶和軟件項目負(fù)責(zé)人要等相當(dāng)長的時間才能得到一份軟件的最初版本。如果用戶對這個軟件提出比較大的修改意見,那么整個軟件項目將會蒙受巨大的人力、財力和時間方面的損失。所以說她是理想化的模型,但她的清晰明朗,規(guī)范緊湊 為其他模型提供了參考。故將其作為教材典范。
記得有一次面試,面試題目就是:如果讓你開發(fā)一個圖書館管理系統(tǒng),請你簡單描述一下你會怎么去實現(xiàn)以及你的想法。想必大家在求學(xué)時期就做過圖書管理系統(tǒng),大概都了解怎么做,也不用工程化思想就能做到,但用語言又不知道該怎么描述。如果你用軟件工程思想將步驟用你自己的話簡單敘述一遍,相信你的面試分一定不會低。
作為程序員,雖然不用做軟件工程類的工作,也應(yīng)該培養(yǎng)軟件工程思想。正所謂不想當(dāng)將軍士兵不是好士兵。在工作中面對自己的代碼,多以軟件工程化思想推敲考究一下,看是否能夠?qū)⒋a寫的更漂亮、更優(yōu)秀。
閑的時候可以設(shè)想一下如果自己是軟件架構(gòu)師或者項目經(jīng)理,該如何設(shè)計整個軟件開發(fā)周期,預(yù)測在開發(fā)過程中可能遇到的問題及相應(yīng)的解決方案。只有時刻準(zhǔn)備著那個職位,才會有機(jī)會獲得那個職位,機(jī)會是留給有準(zhǔn)備的人的,不是嗎?


2011-10-10 10:10:14




