開發(fā)手記(3)
發(fā)表時間:2024-06-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]人們常問:“需求、設計、編程、測試四者究竟哪個重要?” 這個問題不好回答。四者都是軟件開發(fā)過程中必不可少的環(huán)節(jié),光做好其中一個環(huán)節(jié)并不能產(chǎn)生好的系統(tǒng),但是做壞了其中任何一個環(huán)節(jié),必定對系統(tǒng)產(chǎn)生壞的影響。若站在風險管理的角度講,也許需求開發(fā)與管理是最重要的環(huán)節(jié)。因為需求是產(chǎn)品的根源,對產(chǎn)品需求的認識...
人們常問:“需求、設計、編程、測試四者究竟哪個重要?” 這個問題不好回答。四者都是軟件開發(fā)過程中必不可少的環(huán)節(jié),光做好其中一個環(huán)節(jié)并不能產(chǎn)生好的系統(tǒng),但是做壞了其中任何一個環(huán)節(jié),必定對系統(tǒng)產(chǎn)生壞的影響。若站在風險管理的角度講,也許需求開發(fā)與管理是最重要的環(huán)節(jié)。因為需求是產(chǎn)品的根源,對產(chǎn)品需求的認識是否徹底對產(chǎn)品的影響最大。就像一條河流,如果源頭被污染了,那么整條河流也就被污染了。慶幸的是我本人既是軟件的開發(fā)者又是這套系統(tǒng)的最終用戶,個人親身在造價管理部門、投標部門、項目法人結(jié)算部門工作過,對系統(tǒng)的大部分需求比較了解,這也給需求分析工作減輕了負擔。
也許是對需求的理解過于自負,因此對水利設計單位的需求調(diào)查深度不夠,導致了目前系統(tǒng)針對設計單位用戶功能的提供存在一個缺陷,而且是不容易彌補的,這一點的需求與許多模塊相關聯(lián),牽一發(fā)而動全軍。正如Frederick Brooks在他1987年的經(jīng)典文章“No Silver Bullet”中闡述需求的重要性:“開發(fā)軟件系統(tǒng)最困難的部分就是準確說明開發(fā)什么。最困難的概念性工作是編寫出詳細的需求,包括所有面向用戶、面向機器和其他軟件系統(tǒng)的接口。此工作一旦有失誤,將會給系統(tǒng)帶來極大的損害,并且以后對他修改也極為困難! 軟件需求是系統(tǒng)設計之源,詳細的需求分析完成后接下來的工作便要進入系統(tǒng)的設計階段。軟件系統(tǒng)設計核心內(nèi)容包括:體系結(jié)構設計、用戶界面設計、數(shù)據(jù)庫設計、模塊設計、數(shù)據(jù)結(jié)構與算法設計等幾方面。根據(jù)這套軟件的具體開發(fā)情況,系統(tǒng)設計準備了兩套方案:一個是繼承市場上現(xiàn)有水利造價軟件的主流設計思路,對其不完善的部分改進并加入一些先進的設計思想。另一種方案是拋棄主流設計思路,另辟新徑開發(fā)一個面目一新的產(chǎn)品。
我對兩種方案的優(yōu)缺點進行了對比:第一種方案的優(yōu)點: 1、 主流水利造價系統(tǒng)結(jié)構設計的可實現(xiàn)性具有先例,開發(fā)風險系數(shù)低。 2、 有大量的老用戶習慣了以前的軟件操作模式,主流的用戶界面和模塊畫分會給老用戶以熟悉感,用戶不用重新學習軟件的使用方法。 3、 可以吸收市場上較成熟的同類軟件的數(shù)據(jù)庫設計思想,縮短了開發(fā)時間。第二種方案的優(yōu)點: 1、 全新模式設計,可以徹底拋棄現(xiàn)有同類軟件在需求、設計方面的不足。 2、 給用戶以全新的感覺,避免用戶產(chǎn)生新軟件是某一款老軟件升級版的錯覺。 3、 避免了因與某一同類軟件的部分結(jié)構相似而產(chǎn)生的版權糾紛問題。我對兩套方案進行了詳細分析對比,權衡利弊決定采用第一個方案。并運用以下方式對第一套設計方案中的不足進行彌補: 1、 徹底分析市場現(xiàn)有同類軟件的不足,從需求、設計方面入手,增強系統(tǒng)的功能與操作的人性化,讓軟件更體貼用戶需要。改進計算與導出模塊的數(shù)據(jù)結(jié)構算法,提高系統(tǒng)的整體性能。因水利造價管理的需求是隨時代發(fā)展而變化的,預留軟件接口,提高可擴展性。對部分模塊全新設計,提高系統(tǒng)的兼容性。 2、 只吸收設計思想,不抄襲整個軟件,盡量避免版權爭議。 3、 本人在天津水利造價管理領域有一些人脈,因此軟件設計主要吸收天津某單位開發(fā)的一套系統(tǒng)的優(yōu)秀思想。即使將來產(chǎn)生版權爭議也容易擺平,再不行還可以合作嗎。根據(jù)《計算機軟件保護條例》第六條的規(guī)定,除計算機的程序和文檔外,著作權法不保護計算機軟件開發(fā)所用的思想、概念、發(fā)現(xiàn)、原理、算法、處理過程和運算方法。也就時說,利用以有的上述內(nèi)容開發(fā)軟件,并不構成侵權。因為開發(fā)軟件時所采用的思想、概念等均屬計算機軟件基本理論的范圍,是設計開發(fā)軟件不克缺少的理論依據(jù),屬于社會公有領域,不能為個人專有。所以市面上的同類型的軟件結(jié)構布局、使用方法都有幾分相似,這給用戶的使用也提供了很大的方便。但他們之間肯定是有差異的,各有長短,一些后者吸收前人的思想并發(fā)展繼承后異軍突起了。因為已經(jīng)完成了系統(tǒng)需求詳細分析,對業(yè)務流程十分熟悉,而這種數(shù)據(jù)處理系統(tǒng)的技術含量不很高,所以對市場現(xiàn)有水利造價軟件的體系結(jié)構、用戶界面、模塊劃分的分析相對容易一些。軟件所依賴的數(shù)據(jù)結(jié)構與算法可結(jié)合程序?qū)崿F(xiàn)時一同考慮。在對現(xiàn)有軟件的剖析過程中最讓人頭痛的是數(shù)據(jù)庫結(jié)構的分析過程。需要搞清每個庫的作用,每個庫之間的聯(lián)系;庫中每個表的作用,他們之間的聯(lián)系;表中的每個字段的作用,他們之間的聯(lián)系;之后他們所有互相之間的聯(lián)系。我耗時一個月對軟件的6個庫、120張表、3000多個字段進行了詳細的功能及關系描述,描述文檔約有10萬字。算起來比全新設計庫結(jié)構所要耗費的精力一點不少,這樣做只是為了增加軟件的成功系數(shù)。至此軟件的分析工作全部完成,接下來的工作就是要真刀真槍的編碼了。