前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇軟件開發技術范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
一、何為Javaweb軟件開發框架
框架技術是為了解決在軟件開發過程中的某一類通用問題而出現的一種軟件技術,在Javaweb軟件開發過程中,開發者通常需要面臨三個方面的問題,首先即分層問題(MVC),如何將表現層、控制層、模型層進行有效的隔離,實現應用代碼的解耦;其次是持久化的問題,Java是面向對象的語言,而數據持久化過程則是進行SQL語句的操作,如何將對象進行面向對象的持久化操作;再次,則是應用軟件的集成、全局性配置問題,避免在軟件代碼中出現對象的生成過程,簡化統一性的操作問題等都是Javaweb軟件開發過程中面臨的問題,因此,Struts、Hibernate、Spring框架應運而生,為開發者簡化開發過程、提供項目管理方法提供了便利。除此之外,還存在日志管理問題、測試問題,下文則針對常見的Javaweb框架技術進行簡要的論述。
二、常見的Javaweb軟件開發框架技術介紹
(一) Struts框架
Struts框架作為Apache的頂級項目被Javaweb開發領域廣為應用,該框架軟件較好的實現了Javaweb軟件開發所提倡的MVC應用架構。Struts有兩個版本,即Struts1和Struts2,這兩個版本之間并非傳統意義上的繼承發展關系,其中Struts2是由WebWork軟件發展而來的,因此Struts1與Struts2之間差異較大。Struts框架主要是基于Javaweb API來實現的,將“表現層”與持久化層有效地隔離開來,使得應用開發者能夠更加專注于核心業務,提高開發效率。Struts框架通過XML文件對應用進行配置,通過對來自瀏覽器以及服務器的請求和處理結果進行展示,達到應用軟件表現層的功能需求,一般而言,Struts通過對瀏覽器提交的數據進行對應Pojo對象的封裝,再通過Pojo來進行具體業務邏輯和數據持久化的操作實現面向對象編程,另外,對于服務器返回的數據同樣是以Pojo類進行操作的,不同的是,Struts1要求必須繼承于Action類,而Struts2就可以通過普通Pojo類來實現,將封裝好的Pojo對象,通過Action的調用完成具體的業務邏輯,從而實現了整個Web應用的工作流程。總之,Struts框架是當前流行的表現層框架,在Javaweb開發中非常流行。
(二) Hibernate框架
Hibernate框架是ORM(Object Relational Mapping對象關系映射)數據持久化框架,該框架主要是對應數據庫的操作,在沒有ORM框架之前,應用開發者對數據庫的操作主要是通過字符的拼接形成相應的SQL語句,這使得面向對象的開發過程出現了非面向對象的操作步驟(當然這對于用戶而言是透明的),因此,以Hibernate框架為代表的ORM框架在應用程序開發過程中得到了廣泛的應用。利用Hibernate,開發者可以通過save、delete、update等方法進行面向對象思維的數據庫操作。Hibernate框架的核心接口主要有Session(執行CRUD操作)、SessionFactory(完成對框架進行初始化操作)、Transaction(事務處理接口)、Query(主要是完成查詢操作)、Criteria(創建并執行面向對象的標準化查詢)和Configuration(對框架進行配置操作)等,通過操作Hibernate框架的接口不僅僅能夠實現數據庫的一般性CRUD操作,同時還可以處理更加高級的事務性操作;除此之外,Hibernate還提供了緩存管理技術以及“懶加載”技術,通過緩存技術實現更加高效的數據持久化操作和執行效率。當然,Hibernate同樣提供了傳統意義的SQL操作。總之,Hibernate框架是Javaweb應用開發時最常用的ORM持久化框架技術之一。
(三) Spring框架
Spring框架主要是作為一種集成性技術為Javaweb應用開發提供便捷,一般認為Spring框架的核心任務主要體現在兩個方面即IOC(控制反轉)和AOP(面向切面編程),IOC主要是將對象的生成過程交予Spring框架來完成,開發者僅僅需要在相應的配置文件中進行簡單的配置即可(有時候將IOC任務解釋為DI(依賴注入),這主要是從軟件代碼的層次結構的角度來分析的);AOP技術則是進行橫向編程的一種編程技術的創新,通過“切面”的添加十分便捷的實現用戶身份鑒別、日志管理和事務管理等工作,使得開發者能夠更加專注于核心業務的處理過程。當然,Spring框架除了核心業務以外,還有Spring MVC、Spring DAO等組件為開發者提供開發幫助。由此可見Spring框架正如其名一樣,是Javaweb開發者的春天,有時候形象的稱為應用程序的“大管家”,實現應用的全局性控制,除此之外,Spring框架不僅僅在Java領域有著廣泛的應用,在.net應用程序開發時也同樣發揮著非常關鍵的作用。總之,Spring框架技術作為集成性的框架也是非常重要的。
(四) JUnit框架
軟件測試作為驗證軟件功能性、穩定性以及可靠性的重要階段同樣具有非常重要的意義,在Javaweb開發領域通常應用JUnit進行單元測試。對于軟件的測試(這里主要是指白盒測試)通常包括幾個步驟,回歸性測試、單體測試、集成測試、真實環境下的測試,在利用JUnit進行Javaweb項目測試時通常只要將測試類繼承TestCase即可進行自動化測試,目前多數的Java IDE都已經繼承了JUnit測試工具,通常測試指標包含幾個方面的內容,首先是邏輯代碼功能的正確性,這是最為基礎的測試內容,其次還包括代碼的覆蓋率,出現了不可達的代碼對于應用程序是無意義的,最后則是性能和穩定性的測試,當應用并發性較高時應用程序能否進行穩定運行同樣是非常關鍵的。總之,JUnit單元測試框架是進行Javaweb軟件開發過程中最為常見和應用廣泛的測試框架,作為程序員也應進行熟練的掌握。
(五)其他的框架技術介紹
上述框架是進行Javaweb開發過程中最為常見的開發框架,尤其是以Struts、Hibernate以及Spring組成的SSH框架組合幾乎是企業級應用開發的必備框架,初次之外還有一些別的框架技術,例如以Log4j為代表的日志記錄框架,使得應用開發者可以深度定制應用程序運行日志,配合斷點等技術,快速定位查找程序BUG;同樣的還有JSF(基于組件和事件驅動)表現層框架;追求高效性的iBATIS持久化框架等等,受限于篇幅的限制,本文就不一一的進行介紹了。除了Java服務器端的應用框架以外,在JSP頁面同樣有著javascript開發框架,如非常著名JQuery、EXT等等,應用開發者應根據應用的需求進行合理的選擇和應用,實現開發效率和應用穩定的高度平衡。
三、Javaweb框架技術的不足之處
在Javaweb項目的開發過程中應用框架技術最主要的目的主要是實現項目開發的高可靠性以及開發效率的保障,但是隨著框架技術的不斷發展,開發者要熟練的應用框架技術進行項目開發還需要進行不斷的學習和實踐,這對于一些剛入門的開發者是非常不利的,例如在利用SSH框架組合進行開發時,往往由于各種配置文件的問題導致項目開發過程難以協調,使得入門級的開發人員工作難度急劇提高;除此之外,在進行一些非常簡單的項目開發時,過多的強調框架技術的應用也是非常不可取,框架技術的引用容易造成項目復雜度的提升,不利于簡單項目的開發。因此,Javaweb項目開發時,開發者應合理的選擇框架技術,根據項目的實際情況進行有取舍的選擇,從而項目過程的有序性。
四、小結
本文主要介紹了Javaweb程序開發過程中常見的應用框架技術,并淺析了框架技術的不足之處,為開發者合理選擇、應用框架技術提供參考。
參考文獻:
[1]王循. Java Web快速開發框架中部分關鍵技術初步研究[D].吉林大學,2015.
原型法
原型法是近年來提出的一種以計算機為基礎的系統開發方法,利用原型法開發系統時首先構造一個功能簡單的原型系統,然后通過對原型系統逐步求精,不斷擴充完善得到最終的軟件系統。
原型就是模型,原型系統就是應用系統的模型。它是待開發的實際系統的縮小比例模型,但是保留了實際系統的大部分性能。這個模型可在運行中被檢查、測試、修改,直到它的性能達到用戶需求為止,隨之這個工作模型很快就能轉換成需要的目標系統。
原型法的主要優點在于它是一種支持用戶的方法,使得用戶在系統生存周期的設計階段起到積極的作用,能減少系統開發的風險。特別是在大型項目的開發中,由于用戶對系統功能認識的模糊性,使得對項目需求的分析難以一次完成,往往會造成已完成的項目多次修改,應用原型法則會避免這種風險。
原型法的概念既適用于系統的重新開發,也適用于對系統的修改;利用原型法開發系統需要有良好的軟件開發環境、工具的支持。原型法也可以與傳統的生命周期方法相結合使用,以便擴大用戶參與需求分析、初步設計及詳細設計等階段的活動,加深對系統的理解。
微軟公司通常采用“同步-穩定產品開發法”進行項目開發。典型項目的生命周期包括三個階段:
1. 計劃階段:完成項目的功能說明和進度表的制定;
2. 開發階段:寫出完整的的源代碼;
3. 穩定化階段:完成產品,使之能夠批量生產。
這三大階段以及階段間內在的循環方法與傳統的“瀑布”式開發方式很不相同,后者是由需求、詳盡設計、模塊化的代碼設計與測試、集成測試以及系統測試組成的。而微軟的三個階段更像是風險驅動的、漸進的“螺旋”式的生命周期模型。
構造原型是在計劃階段具體說明一件新產品或一個新版本的最好方法,這從許多方面來說特別是在系統可用性方面都使開發前測試成為可能,并且有助于對與用戶交互情況做出良好的理解,同時也能使產品說明更加緊湊。
微軟的開發人員通常采用VB構造用戶界面原型,對于構造計算機屏幕模型之類的工作,畫筆(Paintbrush)也是一個很好用的工具。通過原型法可以使死板的說明變成有生命的文件。
C/S與B/S結構
管理信息系統平臺模式大體上分為四種:主機終端模式、文件服務器模式、C/S模式和B/S模式。主機終端模式由于硬件選擇有限,硬件投資得不到保證,已被逐步淘汰。而文件服務器模式只適用小規模的局域網,對于用戶多、數據量大的情況就會產生網絡瓶頸,特別是在互聯網上不能滿足用戶要求。因此,現代企業管理信息系統平臺模式應主要考慮C/S模式和B/S模式。
C/S結構
兩層結構的C/S(Client/ Server)模式在上個世紀八九十年代得到大量的應用。C/S結構由兩部分構成:前端是客戶機,通常是PC;后端是服務器,運行數據庫管理系統,提供數據庫的查詢和管理。
但兩層的C/S結構存在以下幾個局限:它是單一服務器且以局域網為中心的,所以難以擴展至大型企業廣域網或Internet;受限于供應商;軟、硬件的組合及集成能力有限;難以管理大量的客戶機。
因此,三層C/S結構應運而生。三層結構的C/S模式是伴隨著中間件技術的成熟而興起的,核心思想是利用中間件將應用分為表示層、業務邏輯層和數據存儲層三個不同的處理層次。三個層次的劃分是從邏輯上來分的,具體的物理分法可以有多種形式。
三層C/S結構具有以下優點:具有靈活的硬件系統構成;提高程序的可維護性;利于變更和維護應用技術規范;進行嚴密的安全管理;越關鍵的應用,用戶的識別和存取權限設定愈重要。
B/S結構
基于Web的B/S(Browser/ Server)方式其實也是一種客戶機/服務器模式,只不過它的客戶端是瀏覽器。
B/S結構中處于第一層的是客戶端,處于第二層的是應用服務器,由一臺或者多臺服務器組成,該層具有良好的可擴充性,可以隨著應用的需要增加服務器的數目。處于第三層的是數據層,由數據庫系統和遺留系統組成。
B/S的優勢在于:簡化了客戶端;簡化了系統的開發和維護;用戶操作變得更簡單;適用于網上信息。
軟件構件技術
所謂軟件構件化,就是要讓軟件開發像機械制造工業一樣,可以用各種標準和非標準的零件來進行組裝。軟件的構件化和集成技術的目標是:軟件系統可以由不同廠商提供的,用不同語言開發的,在不同硬件平臺上實現的軟件構件,方便地、動態地集成。這些構件要求能互操作,它們可以放在本地的計算機上,也可以分布式地放置在網上異構環境下的不同結點上。
面向對象的方法和技術是繼結構化方法之后出現的、最有代表性的軟件開發方法,是當今軟件開發的主流技術。但是,面向對象所提供的優點主要是針對分析、設計和源代碼等軟件開發階段的,當一個面向對象的代碼經過編譯、連接后得到的可執行軟件則是不可改變的、無法重用的。
因此,我們需要一種新的、不依賴于某種特定語言的、在二進制代碼級可復用的軟件“對象”,這種“對象”就是構件(Component)。
構件技術是一種軟件實現的技術和方法,是對面向對象方法在二進制代碼級的完善和補充。構件是由接口構成的,它把接口和接口的實現分離開了。接口是獨立于語言的一種描述,它將內部的實現以及接口到實現的映射都封裝起來了,外界只能通過接口描述使用構件。因此,接口用哪種語言實現也就無關緊要了。
在現有的軟件市場上,有三種代表性的構件技術流派,它們分別是COM(Component Object Model,對象構件模型)、JavaBean和CORBA(the Common Object Request Broker Architecture,公共對象請求體系結構)。它們是由不同的機構提出的構件技術實現模型和標準,各有優缺點。
COM
COM是由Microsoft公司推出的構件接口標準,是軟件構件相互通信的一種方式,它是一種二進制和網絡標準,允許任意兩個組件互相通信。目前已有大量的基于COM的構件可供復用,原則上講,這些構件可以建立在任何環境下,但現有的COM構件大多都依賴于Microsoft環境,在Unix、Macintosh等其他操作系統環境下可復用的構件還很少,Microsoft公司正在努力開發更多的在其他操作系統環境下的COM構件。
傳統的應用程序在源代碼級可被分割為文件、模塊、類或函數等,以便于實施、修改和維護,但經編譯、鏈接以后就生成了不可改變的二進制可執行代碼,采用COM技術產生的源代碼則不同。
一個COM構件是由若干個接口組成的,而一個接口則是由若干個函數的說明組成的。COM是一個二進制標準,即接口編譯以后生成的二進制代碼的結構要滿足一定的內存塊結構。該內存塊結構是不依賴于任何語言的。圖1表示一個擁有Fun1和Fun2函數的IX接口的內存塊結構。
其中,pIX是指向IX接口的指針,通過vtbl指針(接口指針)指向接口中函數的指針數組(稱為v表),v表中的元素是指向接口中函數實現的指針。后面我們將會看到函數指針在用-存根機制實現進程間、計算機間的接口調用時指向相應的。
任何語言的語法成分,只要其編譯后的目標代碼在結構滿足圖1的二進制形式結構,就稱其為該構件接口的一個實現。通常情況下,大多數程序設計語言和其COM支持工具都能將相應的語法自動地映射為這樣的結構,無需程序員做更多的工作。
COM是一個二進制標準。由于任何語言都要翻譯成二進制機器代碼才能最后執行,所以COM可以作為各種高級語言的中間橋梁,使它們可以互操作;按COM標準實現的軟件也可以被所有的語言環境所共享。共享人類開發的、豐富的軟件資源是提出的COM的最初動機。
JavaBean
目前的COM技術主要是針對PC市場的不依賴于語言的軟件構件技術,而JavaBean則是針對解決平臺依賴性和語言依賴性這兩個問題而提出來的軟件構件技術標準。
關于平臺依賴性問題是其他構件標準普遍存在的問題。盡管其他構件標準的接口是惟一的,即使用構件的方式是惟一的,但一個構件一旦在某種運行環境下實現就很難直接在另一種運行環境被復用。而這種平臺依賴性問題對進一步提高軟件復用力度卻是至關重要的。
由于Java本身在全球軟件界的影響,特別是Java獨立于平臺的、適宜于在Internet、易于構造B/S應用等等特點,Javasoft公司利用Java特殊的byteCode機制,很好地解決了其他構件標準難以解決的平臺依賴性問題,推出了它們自己的構件接口標準JavaBean。正像JavaSoft所描述的JavaBean是“一次性編寫,在任意地方可運行,在任意地方可重用”。
JavaBean的構件模型主要包括:構件和容器。模型的其他部分還包括事件處理、持續性、布局以及應用程序建立器(一種可視化的工具)等,這些都是通過JavaBean構件的標準接口實現的。
JavaBean構件有時也稱為JavaBean或Bean。它是由接口構成的,接口是由方法組成的。容器能夠使構件組合在一起并相互作用。這種機制主要是為了界面構件提出的,它本身也是一個構件,以便嵌套組合產生復雜的可視化GUI。JavaBean的主要特征為:
1. 屬性管理
根據屬性的使用類型可將其分為:一般屬性、索引屬性、依附屬性和約束屬性,通過一些標準的命名約定定義它們相應的訪問方法,使JavaBean API能用統一的方式對屬性進行管理。其中,依附屬性是基于自身值的變化而向感興趣的部分提供通知的屬性。約束屬性是一種在接收更改之前能使感興趣的部分對新屬性值執行有效檢查的屬性。
2. 內省功能
內省功能是構件的內部結構(屬性、方法和事件)展現給外部的機制。不同于COM,JavaBean不需要構件開發者開發這種額外的工作,它只需要開發者對構件的屬性、方法和事件的命名和類型符號遵守一個約定,通過標準的JavaBean API就可了解到bean的任何內部信息。
JavaBean的事件處理模型是基于現存的AWT事件處理模型的。它決定bean如何對它自身狀態的變化做出反應,以及決定如何將這些變化傳遞給應用程序和其他bean。通過JavaBean API將一個事件接收器(處理某個事件的應用程序或其他bean)注冊到該事件上,完成外部對事件的控制。這是將bean組合起來的有效方法。
Java與JavaBean的區別是:Java是在源代碼級的復用;而JavaBean是在目標代碼級的復用,并且,通過JavaBean提供的標準接口,為在目標代碼級的動態組裝、版本升級、維護提供保證,并可利用一些相應的可視化工具方便、有效地定制JavaBean和建立應用程序。
盡管JavaBean是作為一種通用的構件模型提出來的,但它更主要地還是為解決可視化構件而設計的一套系統,它類似于Microsoft的ActiveX。嚴格地講,目前的JavaBean在不同語言之間提供的互操作性方面是很弱的,它只是提供了在Java環境下的二進制代碼共享機制。增強JavaBean與其他構件技術之間的互操作是JavaBean今后發展的一個主要課題。
CORBA
CORBA是由OMG(對象管理組)1990年首次為了解決分布式、異質的軟件和硬件環境下對象之間的互操作問題而提出的、基于中間件的構件技術。CORBA有兩個重要的特點:面向對象技術與分布式計算的結合;機制的中間件技術。
1. 面向對象與分布式技術的結合
CORBA是為了解決分布式問題而提出的分布式對象計算模型。利用計算機網絡進行分布式計算可以共享資源、平衡大型計算的負載等。但是,傳統的分布式計算模型還不夠成熟:客戶/服務關系不靈活、遠程服務層次太低、用戶使用不透明。面向對象中的對象是一個相對獨立的軟件實體,它有自己的內部狀態和清晰的對外接口。但傳統的面向對象模型的實現,只能在單計算機上進行。CORBA將這兩者有機地結合起來了。在CORBA中,對象是分布式計算模型中理想的節點描述模塊,對象既可以是“客戶”,也可以是“服務器”,它可自由地分布于計算機網絡上。通過CORBA,對象可網絡透明地相互訪問,CORBA屏蔽了位置信息和計算機的軟硬件環境,因此,CORBA建立了一個統一的分布式軟件開發平臺。
2. 機制的中間件――對象請求中介(Object Request Broker,簡稱ORB)
作為一種構件技術,CORBA要解決的另一個重要問題是二進制代碼之間的互操作問題。
不同于COM/DCOM技術,CORBA提供了一種中間的機制,將構件的接口與構件的實現分離開了。服務對象實現后,就將其接口登記在CORBA的中,客戶對象按照中的接口描述訪問服務對象,而不關心服務對象使用什么語言、在什么地方、在什么軟硬件環境下實現的。這些工作都由自動地、透明地為客戶對象完成。這種機制還可提供客戶與服務器之間動態匹配、一個服務器為多個客戶服務等功能。
ORB提供的機制是良好的,也提供了足以使客戶和服務器通信的服務,但這些服務是很低級的。用戶要熟練地掌握它們不是一件容易的事情,而且這些繁鎖的過程經常重復。因此,CORBA對經常使用的服務封裝內部的細節,提供簡化用戶使用的、方便的、標準的對象服務。對象服務是CORBA非常重要的一部分,是對ORB功能的擴充和補充。CORBA提供的15種服務可分為三大類:分布式系統相關的服務,如命名服務、事件服務、安全和交易器服務;數據庫相關的服務,如事務處理、屬性、集合、關系、查詢、持久性、外表化、并發等服務;一般服務,如生命期、計時、特許等服務。大多數應用都是在這些服務的基礎上建立的。
公共設施是CORBA提供的另一種比對象服務更高一層的框架服務。它是特定應用領域的框架復用,如復合文檔構件設施等。CORBA的公共設施還很少,還有大量的設施需要集成,如圖形系統、移動等。
CORBA沒有定義二進制代碼的標準,而是在高層定義了一個標準的接口描述語言IDL,并通過擴展機制提供各種語言到IDL之間的映射,以IDL為中間的橋梁,達到各種語言之間的互操作。
三種構件模型的特點
COM是一種二進制標準的構件技術,它實現簡單、實用,但要完成真正意義的、獨立于硬件和操作系統的二進制標準,還有大量的工作要做。目前,COM還只是Microsoft環境下的二進制標準。
CORBA是一種以IDL為橋梁、基于ORB的中間件的構件技術。它是以IDL為標準的,與實現構件接口的語言、軟件平臺和硬件平臺無關。但它卻無法支持Internet上大量的移動計算的需求,一個構件的實現是與軟硬件平臺相關的,即一個構件的實現是不能在網上移動的。
JavaBean是一種能提供在網上移動的構件技術,它通過bytecode技術,提供在“任何地方運行,任何地方重用”的功能,但它卻是與語言相關的。
從軟件體系結構的角度看,構件技術中的構件只是提供一個軟件模塊的實現,作為一個軟件系統,它還需要連接子(connector)將軟件模塊組織成一個整體。有各種各樣組織軟件模塊的形式:管道和過濾器、層次、基于事件的隱式調用等等。管道和過濾器模型最容易實現軟件模塊的集成,但只能處理簡單的、流式的應用,沒有普遍性。層次模型可提供不同級別的抽象,但層與層之間存在著緊密的耦合,而且,這種模型也沒有普遍性。基于事件的隱式調用的方式是,構件向系統發出請求,已經向系統注冊響應該事件的構件就響應該事件。這種模型將調用者和被調用者徹底地分開,這種軟件體系結構模型具有很強的靈活性,也具有通用性。
構件技術的初衷是為了能充分地利用在各種環境下,用各種程序設計語言開發的軟件模塊而提出的一種二進制代碼級的軟件復用技術。通過接口這種不依賴于具體語言的中性機制,使各種語言之間可以互操作,也就是說一種語言可通過接口訪問另一種語言開發的軟件,而不需要移植工作,這大大地提高了軟件的復用程度。
軟件復用技術
軟件復用就是將已有的軟件成分用于構造新的軟件系統。可以被復用的軟件成分一般稱作可復用構件,無論對可復用構件原封不動地使用還是作適當的修改后再使用,只要是用來構造新軟件,則都可稱作復用。軟件復用不僅僅是對程序的復用,它還包括對軟件生產過程中任何活動所產生的制成品的復用。但如果是在一個系統中多次使用一個相同的軟件成分,則不稱作復用,而稱作共享;對一個軟件進行修改,使它運行于新的軟硬件平臺也不稱作復用,而稱作軟件移值。
軟件復用級別
未來最有可能產生顯著效益的復用是對軟件生命周期中一些主要開發階段的軟件制品的復用,按抽象程度的高低,可以劃分為如下的復用級別:
1.代碼的復用
包括目標代碼和源代碼的復用。其中目標代碼的復用級別最低,歷史也最久,當前大部分編程語言的運行支持系統都提供了連接(Link)、綁定(Binding)等功能來支持這種復用。源代碼的復用級別略高于目標代碼的復用,程序員在編程時把一些想復用的代碼段復制到自己的程序中,但這樣往往會產生一些新舊代碼不匹配的錯誤。想大規模實現源程序的復用只有依靠含有大量可復用構件的構件庫。如“對象鏈接及嵌入”(OLE)技術,既支持在源程序級定義構件并用以構造新的系統,又使這些構件在目標代碼的級別上仍然是一些獨立的可復用構件,能夠在運行時被靈活地重新組合為各種不同的應用。
2.設計的復用
設計結果比源程序的抽象級別更高,因此它的復用受實現環境的影響較少,從而使可復用構件被復用的機會更多,并且所需的修改更少。這種復用有三種途徑:第一種途徑是從現有系統的設計結果中提取一些可復用的設計構件,并把這些構件應用于新系統的設計;第二種途徑是把一個現有系統的全部設計文檔在新的軟硬件平臺上重新實現,也就是把一個設計運用于多個具體的實現;第三種途徑是獨立于任何具體的應用,有計劃地開發一些可復用的設計構件。
3.分析的復用
這是比設計結果更高級別的復用,可復用的分析構件是針對問題域的某些事物或某些問題的抽象程度更高的解法,受設計技術及實現條件的影響很少,所以可復用的機會更大。復用的途徑也有三種,即從現有系統的分析結果中提取可復用構件用于新系統的分析;用一份完整的分析文檔作輸入產生針對不同軟硬件平臺和其他實現條件的多項設計;獨立于具體應用,專門開發一些可復用的分析構件。
4.測試信息的復用
主要包括測試用例的復用和測試過程信息的復用。前者是把一個軟件的測試用例在新的軟件測試中使用,或者在軟件作出修改時在新的一輪測試中使用。后者是在測試過程中通過軟件工具自動地記錄測試的過程信息,包括測試員的每一個操作、輸入參數、測試用例及運行環境等一切信息。這種復用的級別不便和分析、設計、編程的復用級別作準確的比較,因為被復用的不是同一事物的不同抽象層次,而是另一種信息,但從這些信息的形態看,大體處于與程序代碼相當的級別。
由于軟件生產過程主要是正向過程,即大部分軟件的生產過程是使軟件產品從抽象級別較高的形態向抽象級別較低的形態演化,所以較高級別的復用容易帶動較低級別的復用,因而復用的級別越高,可得到的回報也越大,因此分析結果和設計結果在目前很受重視。用戶可購買生產商的分析件和設計件,自己設計或編程,掌握系統的剪裁、擴充、維護、演化等活動。
軟件復用的困難
軟件復用各方面的困難,無論是技術問題還是非技術問題,都影響著軟件復用的廣泛實行。
首先構件與應用系統之間的存在差異。一些開發者開發的構件,要做到在被另一些人開發的系統中使用時正好合適,從內容到對外接口都恰好相符,或者作很少的修改,這不是一件簡單的事。
其次構件要達到一定的數量,才能支持有效的復用,而大量構件的獲得需要有很高的投入和長期的積累;當構件達到較大的數量時,使用者要從中找到一個自己想要的構件,并斷定它確實是自己需要的,也不是一件輕而易舉的事;基于復用的軟件開發方法和軟件過程是一個新的研究實踐領域,需要一些新的理論、技術及支持環境,目前這方面的研究成果和實踐經驗都不夠充分。
最后,人的因素、管理因素、教育因素、法律因素等等都使軟件的復用更為困難。
面向對象方法對軟件復用的支持
支持軟件復用是人們對面向對象方法寄托的主要希望之一,也是這種方法受到廣泛重視的主要原因之一。面向對象方法之所以特別有利于軟件復用,是由于它的主要概念及原則與軟件復用的要求十分吻合。
面向對象方法從面向對象的編程發展到面向對象的分析與設計,使這種方法支持軟件復用的固有特征能夠從軟件生命周期的前期階段開始發揮作用,從而使面向對象方法對軟件復用的支持達到了較高的級別。與其他軟件工程方法相比,面向對象方法的一個重要優點是,它可以在整個軟件生命周期達到概念、原則、術語及表示法的高度一致。這種一致性使得各個系統成分盡管在不同的開發與演化階段有不同的形態,但可具有貫穿整個軟件生命周期的良好映射。這一優點使面向對象方法不但能在各個級別支持軟件復用,而且能對各個級別的復用形成統一的、高效的支持,達到良好的全局效果。做到這一點的必要條件是,從面向對象軟件開發的前期階段――面向對象分析就把支持軟件復用作為一個重點問題來考慮。運用面向對象分析方法所定義的對象類具有適合作為可復用構件的許多特征,面向對象分析結果對問題域的良好映射,使同類系統的開發者容易從問題出發,在已有的面向對象分析結果中發現不同粒度的可復用構件。
復用技術對面向對象方法的支持
面向對象的軟件開發和軟件復用之間的關系是相輔相成的。一方面,面向對象方法的基本概念、原則與技術提供了實現軟件復用的有利條件;另一方面,軟件復用技術也對面向對象的軟件開發提供了有力的支持。
1.類庫
在面向對象的軟件開發中,類庫是實現對象類復用的基本條件。人們己經開發了許多基于各種OOPL的編程類庫,有力地支持了源程序級的軟件復用,但要在更高的級別上實現軟件復用,僅有編程類庫是不夠的。實現面向對象分析結果和面向對象設計結果的復用,必須有分析類庫和設計類庫的支持。為了更好地支持多個級別的軟件復用,可以在面向對象分析類庫、面向對象設計類庫和面向對象編程類庫之間建立各個類在不同開發階段的對應與演化關系。即建立一種線索,表明每個面向對象分析的類對應著哪個(或哪些)面向對象設計類,以及每個面向對象設計類對應著各種面向對象編程語言類庫中的哪個面向對象編程類。
2.構件庫
類庫可以看作一種特殊的可復用構件庫,它為在面向對象的軟件開發中實現軟件復用提供了一種基本的支持。但類庫只能存儲和管理以類為單位的可復用構件,不能保存其他形式的構件;但是它可以更多地保持類構件之間的結構與連接關系。構件庫中的可復用構件,既可以是類,也可以是其他系統單位;其組織方式,可以不考慮對象類特有的各種關系,只按一般的構件描述、分類及檢索方法進行組織。在面向對象的軟件開發中,可以提煉比對象類粒度更大的可復用構件,例如把某些結構或某些主題作為可復用構件;也可以提煉其他形式的構件,例如use case 或交互圖。這些構件庫中,構件的形式及內容比類庫更豐富,可為面向對象的軟件開發擔供更強的支持。
關鍵詞:計算機軟件開發技術;重要應用;未來展望;發展現狀
隨著計算機技術的不斷發展,計算機軟件開發也要與時俱進,尤其是隨著社會各項技術的不斷發展,要求計算機軟件開發技術也應該不斷更新,才能夠滿足社會的發展,實現IT行業的興起和繁榮。進行計算機軟件開發不僅具有十分重要的意義,另外也能夠真正的實現對社會經濟科技的推動作用,因此未來發展也存在著一定的空間。
一、計算機軟件開發技術的現狀及重要作用分析
首先,計算機軟件開發技術的發展現狀。隨著我國進入了信息時代,計算機軟件開發技術已經逐漸融入了人們的生活、工作和學習等各個方面,不僅改變了人們的生活方式,也能夠給人們的生活帶來很多的便利。總之計算機軟件開發技術是計算機技術的重要組成部分,能夠支撐計算機行業的新發展。其次,計算機軟件開發技術應用的重要作用分析。通過進行計算機軟件開發技術,不僅能夠推動計算機行業的發展,也能夠真正的推進信息化的改革,為我國時代的發展注入新的動力。計算機軟件開發技術是計算機軟件工程的核心工程,能夠使得我國計算機網絡發展到一個新的高度,隨著軟件開發技術的不斷成熟和快速發展也存在著一定的問題,也面臨著前所未有的挑戰,只有深入研究,才能在挑戰和機遇面前不斷前進。
二、計算機軟件開發技術的應用分析
當下計算機軟件開發技術主要涉及到以下三方面的應用:第一,C語言技術。C語言作為計算機軟件開發技術的基礎技術,起步相對較早,而且應用相對比較廣泛,當下C語言技術已經越來越成熟,可以應用在多種操作系統當中。C語言的運算符包括的范圍非常的大,不僅包括括號以及其他類型的運算處理,而且也能夠具有較強的一致性,可以在不同的程序上進行C編程。第二,Java技術。Java技術的應用也非常的廣泛,可以在跨平臺應用軟件中進行開發和使用,該項技術的特點是安全性比較強,而且具有很高的通用性。很多的計算機應用軟件都能夠通過Java技術來進行開發。Java技術不僅繼承了C語言的核心技術,另外也能夠改進C語言編程中存在的一些錯誤,進一步增加了垃圾回收器功能,從而減少了程序員為內存管理存在的困擾,同時Java的源代碼編譯可以在任何無格式的純文本編輯器中進行操作,所以編輯起來比較的方便快捷,而且也已經發展成為一種主流的技術。第三,VB技術。VB技術也是由微軟公司推出的一種軟件編程語言,當下已經成為世界上使用最多的一種軟件開發語言。VB不僅打破了傳統的編程界面,而且可以實現圖形可視化的操作界面,可以實現對各種企業軟件的快速開發,比如,優化大師等相關軟件。
三、計算機軟件開發技術的未來展望分析
隨著我國計算機網絡技術的不斷發展,計算機軟件開發技術也在不斷的進步,其發展也呈現出了一定的趨勢,主要表現在以下兩個方面:第一,網絡化和智能化并存。隨著進入信息時代,互聯網日益普及,計算機軟件開發技術也逐漸向網絡化和智能化的方向發展,不僅能夠滿足人們之間的相互交流,而且也能夠共享各種社會信息和推動網絡社會的進步和發展,結合當下網絡發展的趨勢,計算機軟件開發技術也應該為人們提供更加智能、快捷、優質的信息服務,推進計算機軟件開發技術向智能化方向發展也已經成為一種不可逆轉的趨勢。所以經濟軟件開發技術應該逐漸向智能化方向推進,才能夠滿足計算機時代的發展需求,另外也能夠在發展的過程當中把握好主方向,尋求新的發展空間獲得更多的受眾,實現最大的經濟效益和社會效益。第二,逐漸向開放性和融合性方向發展。隨著我國進入網絡信息時代,計算機軟件開發技術應該逐漸向開放化方向發展,另外其軟件源代碼以及軟件產品的設計都應該逐漸公開,并且采取標準化的設計方式,才能夠實現互通、互享、互用。另外計算機軟件開發時也應該注重向融合性的方向發展,比如可以將計算機軟件開發技術與電氣化自動化以及機械化技術相融合,才能夠真正的提高計算機軟件開發產業的整體水平,不僅能夠占據更大的市場份額,也能夠造福于廣大的用戶,所以隨著計算機網絡的不斷發展,計算機軟件開發也應該向融合性方向發展,能夠滿足人們的日常生活所需,也能夠結合客戶的需求提供各種綜合性的服務,才能夠真正的滿足時展,另外也使得自身獲得長遠的發展。
計算機技術在不斷提高,計算機技術的應用也越來越廣泛,計算機軟件開發技術日益提升。本文主要圍繞計算機軟件開發技術應用展開探討,以期通過計算機軟件開發技術,設計出拓展性強,可靠性較高,品質水準高的計算機軟件。
關鍵字:
計算機軟件;開發技術;應用
計算機應用需要計算機軟件為其提供一個優秀的平臺,從用戶的角度來看,主要利用計算機軟件來操作計算機,所以,如果計算機軟件開發技術不強,用戶在應用計算機軟件時就會受到較大影響。計算機軟件開發的初始階段是通過手工進行操作,因為手工操作受到較大限制,導致開始應用軟件過程中,經常出現錯誤,用戶對軟件的需求得不到滿足,并且計算機軟件開發效率不高,軟件沒有較強的擴展性,導致開始應用軟件過程中錯誤百出。隨著計算機開發技術水平不斷提升,計算機開發人員在開發軟件過程中更加規范和嚴格,利用規范化文檔來記錄開發軟件的全過程,包括分析軟件,設計軟件,開發軟件,調試軟件,以及應用軟件等,開發步驟更加規范化,所開發出的計算機軟件更加可靠,品質更優良。
1計算機軟件開發技術常用的開發方式
經常使用的計算機軟件中,開發方式包括三部分.
1.1生命周期比較傳統軟件以時間為基礎進行劃分,針對軟件的不同部分進行拆分,并且分解這些軟件,產生不同的軟件階段,在軟件任意階段,從開始至結束要求都非常嚴格。一般情況下,軟件周期都能夠達到半年。
1.2原型化軟件的方式在調試和開發計算機軟件時,由開發初期概念不清晰,所以按照以往的生命周期法,需要認定軟件初始階段的一些資料,所以,這個類型的軟件并不適用。不過,如果該計算機軟件實現原型化,為了明確軟件的本質需求,需要研究和分析軟件的原型化系統,在這個基礎之上,開發出新的概念,最后再進行修改,完成建造開發軟件的任務。
1.3開發自動化系統開發自動化軟件系統可以利用很多種類的軟件開發工具,軟件操作人員不必提供具體操作方法,介紹相關內容就可以,程序編碼可以通過軟件工具進行自動分析。
2關于計算機軟件開發技術的應用
2.1如何應用計算機軟件開發技術伴隨世界經濟一體化進程,用戶彼此間的距離隨著大范圍應用網絡而不斷縮小,通過應用不同種類的軟件,世界經濟資源實現了共享,用戶與用戶之間溝通和交流更加方便。應用計算機軟件開發技術的主要特征是把用戶與網絡和軟件緊密聯接起來,與此同時,不再統一進行控制,每個結點都具有很高的獨立性,與此同時,用戶在不同的軟件平臺上,通過更加廣闊的平臺,來處理不同的數據信息數據,既發展了計算機軟件技術,與此同時,也使用戶操作得以簡化,使用用戶數據就更為便捷了。
2.2分析和研究計算機軟件開發技術開發計算機軟件的目標,是讓用戶對軟件的應用更加方便快捷,所以,對某個軟件的質量進行評價時,主要看該軟件是否具有較高的實用價值。在實際應用軟件過程當中,為使用戶操作更加便捷,與此同時,軟件操作起來具有更強的可維護性,安全性和穩定性,以及可擴展性等等。有一部分軟件的開發技術,受到操作系統版本,或者操作系統中瀏覽器安全性制約,用戶操作這些軟件的時候非常復雜,不能進行大范圍應用。有些軟件可以和操作系統相互兼容,因為軟件在運行過程中,沒有受到操作系統的約束,用戶在安裝和修復軟件時更加便捷,并且能夠還原和備份計算機里面的相關數據。不過,隨著客戶端軟件的使用周期越來越長,那些能夠與系統很好兼容的軟件,在后期的運行過程中,速度會越來越慢,所以,應該對這些軟件資料進行手工存檔。計算機開發技術會約束對它的應用,所以,為使用戶更好的使用計算機開發軟件,設計人員要針對用戶實際需求以及應用情況來開發軟件,要確保軟件在應用時更加可靠和便捷,軟件在設計上要充分考慮使用群體,盡量讓大眾群體都能夠靈活應用。
總而言之,以計算機飛速發展為背景,計算機軟件具有廣闊的應用前景。選擇計算機軟件的開發技術,和計算機軟件開發過程聯系緊密,軟件設計人員在選擇軟件開發技術時,要參考實際情況和實際需要進行,這樣才能設計出品質好,性能佳,具有極強交互能力的計算機開發軟件,同時,在軟件設計開發時要注意盡可能降低開發成本。
參考文獻
[1]趙明亮.計算機應用軟件開發技術[J].黑龍江科技信息,2011(26)
1 前言
隨著計算機技術的快速發展,其在各行各業中都發揮了巨大的作用,而在計算機技術的應用過程中,軟件是一個核心的組成部分,從而就使得軟件開發工作受到了越來越多人的重視。如果不能夠對軟件開發進行規范,就有可能對軟件的開發質量、效率等帶來較大的影響。因此,本文結合筆者的開發經驗,對如何在計算機軟件開發中貫徹規范化思想及要求進行了詳細的分析。
2 計算機軟件開發的相關概述
計算機系統主要是由硬件系統和軟件系統兩個主要部分組成,其中軟件卻是其中最為核心的部分。而計算機軟件則主要是由系統軟件以及應用軟件兩個部分組成,其中系統軟件為軟件運行的主要基礎,應用軟件則主要用來處理計算機運行中的各種問題。所謂計算機軟件開發,則主要是軟件工程師基于用戶的實際需求,編寫出軟件或者系統中某一部分的產品開發的過程。
3 計算機軟件開發的規范化具體應用
在上文中已經分析,在當前的軟件開發過程中,規范化顯得非常重要,而針對一個具體的計算機軟件規范化設計過程來說,主要包括軟件需求分析規范化、概要設計規范化、詳細設計規范化、軟件測試規劃化以及軟件維護規范化等幾個環節,下文將分別對其進行詳細的分析。
3.1 需求分析的規范化
對于一個完整的軟件生存周期來說,需求分析階段是一個非常重要的階段,可以說對于整個軟件的生存周期來說,都具有非常重要的決定性意義。該階段的主要任務是在可行性研究的基礎上對軟件開發的運行環境、性能以及功能需求的確定,同時對用戶手冊概進行編寫,確認測試測試原則,同時設計概要需求說明書。對于該階段的規范化來說,應該注意如下幾個方面的要點,一是需求說明書務必需要明確,而且經過客戶的確認,在具體的實施時還應該對被開發軟件的環境進行調查,二是對客戶和用戶需求進行一步明確,以確定人機界面;三是在該周期的最后階段,所指定的文件也都要齊全,而且是經過評審。交付的文件通常具有軟件需求說明書、用戶手冊概要、修改后的項目開發計劃以及確認測試計劃和數據要求說明書。
3.2 概要設計的規范化
概要設計的主要任務是基于軟件的需求說明,構建出所要設計系統的各個模塊之間的關系,然后以該模塊為基礎對其相關的接口與功能進行詳細的描述和定義。在該環節,對數據庫的設計也是非常重要的環節,當然,也應該對設計限制與組裝測試計劃進行明確和制定。在基于概要設計規范化的前提之下,應該從整體的角度進行考慮,在最大程度上使其具備良好的形態,使得模塊的功能之間還具有良好的內聚度,使其滿足相關的要求。簡潔性也是需要重點考慮的一個問題,主要針對模塊的接口而言,使其在一定范圍之內具有良好的移植性。
3.3 詳細設計的規范化
詳細設計是軟件開發的一個非常關鍵的階段,在該階段的主要任務基于概要設計的基礎上針對模塊進行過程描述,是對前一個階段的細化,產生的描述能夠為代碼的編寫提供重要的基礎,同時也能夠更加促進模塊開發的順利開展。而基于本文所提出的詳細設計規范化的前提之下,應該按照相關的要求對每個程序的模塊構建進行相應的輸入、輸出、數據流以及處理功能的構建等。
3.4 軟件測試的規范化
隨著當前信息化程度的不斷加深,大軟件開發變的更加普遍,而在軟件開發過程中,大軟件的開發過程中不出現錯誤也是不現實的,一旦出現了錯誤,軟件測試技術就發揮了重要的作用。因此,針對軟件測試階段來說,其對于整個軟件生存周期來說,意義非常重大。其主要任務是針對軟件開發中的功能、性能、測試計劃是否滿足了實際的需求,在測試完成之后還應該向用戶提交最終的操作手冊。
3.5 軟件維護的規范化
軟件維護是軟件生存周期的最后一個環節,其重要性也是不容忽視的,其主要任務是對于已經處于運行階段的軟件系統進行維護,并對在其開發階段所并沒有發現的問題進行更正、升級,使得其能夠更加進一步適應在實際的應用環境中的應用。不過,在針對該階段的規范化要求之下,進一步要求在軟件維護階段應該投入足夠的細心和責任心,不能出現錯上加錯的現象。尤其對于修改應該在仔細權衡后在進行改進,修改還應該基于一定的步驟,同時還應該加強嚴格的控制管理,對于已經修改過的軟件還應該加強對其的進一步測試工作,測試完成之后填寫相應的報告。
4 結語
總之,通過本文所分析的軟件需求分析規范化、概要設計規范化、詳細設計規范化、軟件測試規劃化以及軟件維護規范化等方面的規范化要求,是對軟件開發人員的重要“行為規范”,只有在嚴格遵守的前提下,才能夠開發出質量更高的軟件,繼而適應社會各行各業對計算機軟件越來越高的要求。