軟體工程之Java實現策略

來源:互聯網
上載者:User

由於Java語言具有的諸多特性以及Internet和嵌入式系統的普及,對已經投入應用的使用C++語言編寫的軟體進行Java移植,在軟體活動中的比例越來越大以及這一活動過程的特殊性,針對其過程進行的管理控制與開發方法和傳統軟體活動有所不同,因此討論了針對移植的策略,並以一個移植項目---LED航顯系統移植為例,證明這些策略的有效性?

關鍵詞: 軟體工程;移植;Java;軟體方法

第1章 緒論

由於Java具有的解釋性?可移植性?平台無關性和安全性等特性,使得Java在網路應用?嵌入式系統等對跨平台和安全性有很高要求的領域有了越來越廣泛的應用?對於企事業單位來講,對原有系統進行JAVA化移植,一方面可以避免系統重新開發造成的高成本?長周期?系統融合等不利因素,另一方面可以實現系統的平滑過渡,以較小的成本實現系統的升級?因此,採用軟體工程策略來指導整個系統移植的過程是非常有意義的?

第2章 移植方案

移植方案大體可分為3類:功能移植,系統結構移植和實現的完全移植?

(1)功能移植:拋棄所有邏輯和語言結構,重新使用目標語言實現源工程的功能?功能移植產生的目標工程的特性獨立於源工程,有利於產生高品質的代碼和易於維護的工程?但功能移植更像是一個全新的開發過程而不是一個移植過程?它的管理和傳統軟體過程是類似的,各種生存周期模型和物件導向的軟體方法都可以使用?

(2)系統結構移植:在類?包層級上保留源工程的大致介面和邏輯結構,對它們的具體實現進行重寫?對於一個經曆了整個生命週期的源工程,系統邏輯結構是基本滿足要求的,針對系統結構的移植能夠在保留源工程的基本結構的基礎上,使目標工程達到較高的品質?但必須對結構的功能及其之間的聯絡有深刻的理解,值得注意的是,如果程式員的理解產生了偏差,結果可能是災難性且難以修複的?

(3)實現的完全移植:在保留源工程邏輯結構的基礎上盡量保留其實現的語言結構?源工程的代碼複用度高,移植工作機械簡單?程式員只需要對整體結構作一般瞭解,其注意力就可以完全集中於自己的工作?開發進度可以精確度量,周期短?效率高?但是,使用實現的完全移植產生的目標工程的品質不會優於源工程?如果缺乏有效管理,就難以保證工程的品質?基於以上理由,本文主要討論實現的完全移植策略?沒有特殊說明,下文中的移植活動均指實現的完全移植?

第3章 預先處理

如果僅僅移植源工程一部分功能,使用代碼界定保留需要移植的結構,可以有效地減少需要移植的代碼數量?這個過程是簡單的,只需針對源工程的所有保留功能進行結構走通並記錄調用結構,凡是沒有記錄下的均可界定在移植範圍之外?

定義1:step-代碼中去除注釋?空行後的有效程式碼數,它是系統規模的簡單度量?

LED航顯系統移植項目採用這種界定方式,工程代碼量從原來的13362steps,縮減到界定後的11069steps?有效地減少了工作量?

應當注意的是,如果有源工程的開發人員被指派為移植的程式員,這一過程的時間可以大大縮短,甚至略過這一過程?LED航顯系統移植項目中,我們使用了1人/月來進行這一階段得到了足以保證正確移植的有關知識?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.