許 璐
吉林工業職業技術學院自動化系,吉林 吉林 132013
最初,計算機應用于軍用領域,20世紀中期開始從軍用領域轉向民用領域。當時的計算機硬件價格不菲、處理能力限,編程人員要編寫出執行速度快、體積小的程序。程序中充滿了各種各樣讓人不解的方面。這時人們需要利用智力解決問題。
高級語言和操作系統的擴大,取決于計算機使用的范圍,軟件開發急劇增長的變化;因為出現大量數據處理,就導致第一代數據庫管理系統的誕生。隨著軟件系統規模越來越大,復雜度越來越高,可靠性也被集中關注。并且隨著軟件產量的不斷增加,軟件維護越來越重來,原來的個人設計、個人使用的方式不再能滿足要求,迫切需要改變軟件生產方式,提高軟件生產率,軟件危機開始爆發。
為解決軟件危機,應該從應用計算機科學理論和技術以及工程管理原則和方法,按照預算和進度,實現滿足用戶要求的軟件產品的定義、開發、發布和維護的工程。從此也誕生了一門新的學科——軟件工程。
軟件危機產生的原因是因為計算機不斷的發展而產生的,可以從軟件危機的表現和特殊性發現,如下:1)在需求分析階段用戶對軟件需求的描寫敘述可能有遺漏,不太精細,有二義性,有錯誤,甚至在開發軟件過程中,用戶還提出修改軟件功能、界面、支撐環境等方面的要求;
2)用戶本來的愿望與開發人員對用戶需求的理解有不同,這就肯定會出現開發出來的產品與用戶要求的不一致的情況;在軟件開發出來之前,用戶自己也不清楚軟件的具體需求,所以用戶對軟件需求的描述不精確,可能有遺漏、有二義性、甚至有錯誤,在軟件開發過程中;
3)大型軟件項目需要組織一定的人力共同完成,多數管理人員缺乏像開發人員能夠開發大型軟件系統的經驗,而多數軟件開發人員又缺乏管理人員在管理方面的經驗。由于過分地依靠程序設計人員在軟件開發過程中的技巧和創造性,加劇軟件產品的個性化,也是發生軟件危機的一個重要原因;
4)軟件項目開發人員不能有效地,獨立地處理大型軟件的全部事務,其中對于項目經理、工程組、測試組、保證組以及硬件管理組等無法很好的協調、分配,因此容易產生疏漏和錯誤;
5)軟件產品的特殊性和人類智力的局限性,導致有些相對復雜的問題人們無法處理。
1)軟件開發進度和軟件開發成本不易預測并且不易控制;
2)投資較高,超出預算成本。隨著計算機市場化和民用化的發展,代價和成本就成為投資者考慮的最重要的問題之一。為了加快進度和節約成本所采取的一些方法損害了用戶的利益,這樣必定不被用戶接受;
3)用戶不能滿足產品功能。開發人員和用戶之間很難溝通。多數情況是軟件開發人員在需求分析階段不能真正了解用戶的需求,而用戶又不了解計算機內部的解決問題方法,雙方無法用共同熟悉的語言進行交流和描述;
4)軟件產品質量無法保證。對于任何一個軟件產品都不能說是沒有錯誤,而是錯誤很難發現,原因是用了不恰當的檢測手段,這些沒有被發現的錯誤往往是造成重大事故的隱患;
5)軟件產品難以維護。軟件產品本質上是開發人員的代碼化的邏輯思維活動,他人難以替代。除非是開發者本人。
用例的優勢在于它天生是黑盒的,顧名思義黑盒是為了避免了混入分析、設計和實現細節,以保證用例可以被非計算機人員所能真正理解。同時,需求分析員又可以方便地通過用例分析,將需求體系轉化為分析模型。在這一過程中,分析人員可以更進一步地完善整個系統的需求體系,而需求也不會因為分析模型變得雜亂無章,所以實現了分離需求與分析,但兩方面還有“聯絡”。
1)充分吸收和借鑒長期以來行之有效的原理、概念、技術方法以及有效的經驗教訓;
2)經過長期的使用,總結出經驗,推廣出更好的技術方法;
3)一切方法技術都是由相應的工具支撐,所以想要推廣出更好的技術方法,就要有與之配備的工具,這樣就需要一個良好的開發運行環境。
馮·諾依曼模型一直被沿用,沒有變化,但是計算機應用能力已明顯改變,比如提升CPU計算能力已經越來越困難,未來發展趨勢主要集中需求工程、迭代、集成,具體如下:
1)需求工程: 專業化的角色,日益復雜的業務創新,這些都對需求獲取的正確性和有效性提出了更高的要求。
用例的優勢在于它天生是黑盒的,顧名思義黑盒是為了避免了混入分析、設計和實現細節,以保證用例可以被非計算機人員所能真正理解。同時,需求分析員又可以方便地通過用例分析,將需求體系轉化為分析模型;
2)迭代和敏捷,逐漸成為標準:在迭代化的方法中,我們將整個項目的開發目標劃分成為一些更易于完成和達到的階段性小目標,隨著軟件交付周期的日益加快,這些小目標都有一個定義明確的階段標準。但是迭代對整個團隊的架構、需求、及測試能力都提出了更高的要求,現在許多開發團隊都在試圖導入迭代化開發的過程,迭代是敏捷的推動力,掌握迭代,敏捷的大部分事情往往就迎刃而解了。敏捷可是被看成迭代化開發的一種導入方式;
3)保證迭代:通過持續集成可以保證代碼質量。持續集成相關的工具成為現在市場上的新熱點。
隨著軟件技術和硬件技術的不斷發展,解決軟件工程中的各種困難、開發軟件工程中各中新技術已經變得越來越容易,但是隨著軟件開發的不斷擴展,問題也會不斷出現,這就需要人們不斷的探索,不斷的思考,這樣才會給軟件行業帶來新天地。
[1]丁珩.我國軟件產業的現狀、問題及加快發展的建議[J].科技與經濟,2003(3).
[2]徐順成.中國軟件產業的現狀與未來[J].中國科技產業,2001(11).