Internet軟件項目研討
時間:2022-07-19 10:36:03
導語:Internet軟件項目研討一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
1前言
internet的高速發展給現代生活帶來巨大的變化,信息革命不僅影響著生活的方方面面,也給各個社會行業帶來很多新變化。軟件工程是是一門年輕的學科,并且已經在軟件發展的過程中承擔了重要作用,如何立足于現有條件,面對新機遇,新挑戰成長壯大不僅對于軟件行業有重要意義,對于整個信息產業也有十分重要的意義。本文將站在軟件開發者和研究者的立場,分析Internet下的軟件工程,文中的觀點是Internet不僅給軟件工程的發展帶來很多新的機遇,新的便利,同時也給軟件工程的發展帶來了新的挑戰,下文將從這兩方面進行分析。
2Internet對于軟件工程發展的推動
Internet的迅速發展給對軟件工程有很多積極的影響,大致可以歸結為如下幾個方面。
2.1技術交流軟件開發的流程大致可以分為產品需求、開發和測試3個環節,其中各個環節是由不同的人來負責的。軟件項目人員用于相互之間的通信交流通常要大量時間,準確和及時的技術經驗交流對于維護項目組之間的進度同步以及允許對于精通核心技術的個人在需要時充分發揮其作用都是十分必要的。比如開放軟件社區一個潛移默化的規則是技術交流應該以帖子的形式在論壇相關板塊中進行,另外,開放軟件項目通常要在技術的精確細節和項目管理決策方面得到支持。很多軟件項目的失敗是由于經驗不足或者技術積累不夠,并且很多相似項目重蹈覆轍,Internet給技術人員提供了方便的交流手段,可以快速地傳播新技術及相關問題的解決方案,并且同時相關技術陷阱可能發生的地方,避免相同的錯誤重復出現。
2.2跨地域軟件開發項目中的版本控制通常很多軟件項目是大型的,需要幾個幾十個甚至成百上千人的參與,這些開發人員在地域上很有可能是分散的,甚至可能相隔千里,這些人員之間的協調合作就變的十分重。比如項目中的一個文件也許幾個模塊都需要關聯,并且各個模塊的開發人員都可能會對這個文件進行開發,如何保證各個模塊中的對這個文件引用的一致性就需要用到軟件項目的版本控制。常用的版本控制軟件有SVN,CVS等軟件,拿SVN來說,會有一個專門的SVN服務器,每個人在開發的時候都需要從SVN服務器上把最新的代碼checkout出來,并且用branch進行開發,這時候他的開發不會影響到其他人的代碼,開發完成后需要合并到trunk上,合并的過程需要處理沖突,通過這樣的版本控制器和Internet的結合,開發人員可以分散在不同的地區,只要有Internet連接,就可以實現完美的版本控制。由圖1可以看出,client1到clientn對應的是現實中的一個個的開發人員,他們可以不在一起,甚至可以不認識,但是卻可以通力合作,每一個人都和SVN服務相連,每個人把自己的最新代碼提交上去,別人開發的時候下載一份最新的代碼,在其基礎之上進行開發。
2.3構件復用軟件工程的發展方向是構件化,提供構件的復用率可以顯著提升軟件的開發速度和質量,Internet的發展給了構件復用極大的支持,可以通過在相關的技術社區或搜索引擎查找到需要的構件,避免重復造成的悲劇。在軟件開發過程中,遇到一個新功能和新需求,首先不要想著自己去開發,而是去查找是不是已有相關的構件或類似的軟件庫,一般來說,第三方提供的構件或庫都是經過實踐檢驗的,功能和性能都比較有保證,多多使用現有構件,不僅可以加快項目進度,通常還可以降低開發成本,比如在互聯網軟件開發過程中經常用到的jquery庫,提供了一些很方便的js函數和瀏覽器兼容性的解決方案。
2.4進度管理任何軟件項目都需要有需求、執行、控制、運營幾個步驟。一般來說小型項目的團隊成員比較少,可能在空間上會都在一起,但對于大型項目,通常需要進行一些外部合作,需要幾個公司協同開發,有時甚至同一個公司的團隊成員在地理上都相距很遠,這時候的進度管理就需要Internet的支持,常見的基于Internet的進度管理是依靠管理平臺或郵件,通過兩種途徑對于每個項目成員分配TO-DO列表,并且實時追蹤TO-DO列表的完成情況并且更新,另外需要設置里程碑列表來標記項目的關鍵時期和關鍵點。
2.5質量保證Internet的發展催生了開源軟件項目的發展,開源軟件項目自出現到現在取得了十分輝煌的成就,主要體現在起軟件質量上,這也是開源軟件項目相比于傳統封閉的軟件開發最大的優勢。開源軟件的質量保證主要基于3點,一是開發人員可以在Internet上根據自己的興趣和知識尋找相關的項目;二是很多開發人員自己同時也是需求人員和測試人員;第三點是所有項目過程中的技術交流和程序邏輯都是公開的,把代碼呈現在更多人的視野中,可以接受更為嚴格的檢驗。此外,由于Internet上的用戶來自社會的各個領域和階層,不同的背景和知識早就了更高的質量。
3Internet環境下軟件工程所表現出的問題
在Internet給軟件工程帶來極大便利的同時,附帶而來的很多問題同樣需要引起足夠的重視,正確對待和處理這些問題有重要意義。這些問題主要表現在如下幾個方面。
3.1安全問題自從互聯網誕生之日起,安全問題就一直伴隨左右,各種各樣的病毒及其變種,各種各樣的攻擊手段都令人防不勝防,凡是與Internet相關的東西都不得不重視安全問題,軟件工程也不例外,如何防止流傳于網上的相關項目信息被惡意人員竊取,以及如何建立防護措施,是軟件工程在Internet環境中需要引起高度重視的一個問題。Internet環境下的軟件工程由于其相對開放性,安全問題更為嚴重,新的安全問題主要有兩個來源,一是開發人員在自己寫的代碼中留后門;二是由于開發人員技術原因導致。有關統計顯示,互聯網上有超過70%的攻擊是由于人為原因造成的,在當前,由于很多軟件項目的組成人員不僅僅通過Internet聯系,在開發項目過程中,由于金錢利益、個人情感、自律性等問題一些開發人員可能會在自己的代碼中留下某種后門,當軟件投入使用后,通過這些后門可以對軟件或服務器進行各種各樣的攻擊,帶來嚴重后果,與傳統軟件不同的是,由于開發人員的分散性和虛擬性,導致管理很困難,這個問題比較難避免。另外,現實中很難保證開發人員的技術水平都達標,有些新手提交的代碼可能是存在明顯漏洞的,當軟件投入使用之后,存在的漏洞很有可能被攻擊者利用。所以,在新的形勢下,軟件工程不僅要面對傳統的安全問題,還要面對新的安全問題。
3.2需求和開發之間的矛盾這個問題常見的有兩種情況,一種是新技術和新理念的發展和現有標準之間的矛盾,另一種是新的標準和現有技術之間的矛盾,造成這種局面的原因之一是Internet的迅猛發展總會提出一些新的需求或者發現一些新的缺陷,如何制定出能夠普遍適用、合理的持久的標準或者如何在新技術出現的時候既能滿足新需求又能兼容既有標準是我們需要努力的。目前Internet的高速發展使得互聯網的入口瀏覽器的競爭愈發激烈,很多的軟件項目都是Web項目,需要瀏覽器的支持,就目前來說,兼容瀏覽器也是一項十分繁雜的工作。在開發過程中,經常可以見到這樣的情況,產品最初提出的需求開發還在進行中,由于Internet上出現了新的產品或者新的特性需求,導致產品不斷修改需求,但這時開發人員還在按照之前的需求版本進行工作,如果這時拋棄之前的版本,將導致人力和物力的損失,并且對開發人員的情緒都是較大的傷害,如果不改變,還按原來的版本開發,則開發出來的產品很有可能是過時的或者不符合市場需求的產品,所以說需求和開發之間存在著永恒的矛盾,如今Internet下這個矛盾又被加劇了。解決這個矛盾的理想情況是開發人員把各個功能模塊化,構件化,由需求方按照自己的需求“組裝”軟件,但此種情況需要需求方有較強的軟件方面的知識,現實中往往比較難以實現。
3.3逆向工程和再工程問題逆向工程和再工程對于一個具體的軟件項目來說是一個比較長期的問題,逆向工程是根據效果倒推程序的一個過程,而再工程則是由于原項目不能滿足現有需求而進行必要的重構,軟件行業是一個人員流動性很高的行業,一個軟件項目開發完成后團隊可能就會解散了,這還是傳統方式的工作模式,如果是類似于開源軟件之類的軟件項目,項目的很多關鍵信息比較計劃、排期、文檔管理都是依賴于Internet的話,那么軟件后期的逆向工程和再工程難度會成倍增加,因為目前的很多項目由于進度限定等因素,導致很多開發人員只是完成了相關功能就必須進行下一步的開發,沒有多余的時間寫項目文檔甚至代碼注釋,在這種情況下產生的代碼讓除開發者之外的人看起來是相當痛苦的,所以當原開發人員不能提供支持的時候,整個項目的重構將變得十分困難,有時甚至導致逆向工程,造成極大的資源消耗。
3.4體系結構體系結構對于軟件來說就相當于地基對于高樓大廈,地基的質量決定了樓可以蓋多高,而體系結構的好壞則直接決定了軟件項目的性能和擴展性,目前很多基于Internet的軟件項目其實內容本身也是與Internet相關的,比如處于整個互聯網產業鏈頂端的搜索引擎,搜索引擎的項目直接與Internet相關,再互聯網初期的時候整個互聯網上的網頁數量也就是千萬量級,短短幾年就達到億的量級,而現在更是達到驚人的千億量級,信息的爆炸性增長使得很多軟件項目的性能急劇下降,瓶頸很多情況下都在體系結構,如果體系結構在項目初始便設計的具有前瞻性,后續的性能改進會相對容易,否則,則會不斷改進甚至推翻整個軟件構件重新設計,如果是后種情況,那么帶來的后果將是災難性的。
4結語
在新的形勢下,客觀正確地面對Internet和軟件工程的發展及新的特征,揚長避短,積極探索,使得軟件工程在Internet的發展中承擔起應有的責任。
- 上一篇:基于IDE監控軟件模塊化構造
- 下一篇:VB定制軟件研發與運用