版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第16章軟件工程環(huán)境16.1軟件開發(fā)環(huán)境16.2軟件工具16.3計算機(jī)輔助軟件工程16.4小結(jié)習(xí)題16.1軟件開發(fā)環(huán)境 16.1.1軟件開發(fā)環(huán)境概述
1.軟件開發(fā)環(huán)境 軟件開發(fā)環(huán)境是指在計算機(jī)的基本軟件的基礎(chǔ)上,為了支持軟件的開發(fā)而提供的一組工具軟件系統(tǒng)。在1985年第八屆國際軟件工程會議上,由IEEE和ACM支持的國際工作小組提出了“軟件開發(fā)環(huán)境”的定義為“軟件開發(fā)環(huán)境是相關(guān)的一組軟件工具集合,它支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成?!?/p>
美國國防部在STARES(SoftwareTechnologyforAdaptalleReliableSystem)計劃中定義為“軟件工程環(huán)境是一組方法、過程及計算機(jī)程序(計算機(jī)化的工具)的整體化構(gòu)件,它支持從需求定義、程序生成直到維護(hù)的整個軟件生存期?!? 上述兩個定義表面上不相同,但實質(zhì)上是一致的,它們都強(qiáng)調(diào):
(1)軟件開發(fā)環(huán)境是一組相關(guān)工具的集合。
(2)這些相關(guān)工具是按一定的開發(fā)方法或一定開發(fā)處理模型組織起來的。
(3)這些相關(guān)工具支持整個軟件生存期的各階段或部分階段。
當(dāng)前廣為使用的以下名稱具有相同或類似的含義:
(1)軟件開發(fā)環(huán)境SDE(SoftwareDevelopmentEnvironment)。
(2)軟件工程環(huán)境SEE(SoftwareEngineeringEnvironment)。
(3)軟件支持環(huán)境SSE(SoftwareSupportEnvironment)。
(4)項目支持環(huán)境PSE(ProjectSupportEnvironment)。
(5)自動開發(fā)環(huán)境ADE(AutomatedDevelopmentEnvironment)。
(6)集成化程序設(shè)計環(huán)境IPE(IntegratedProgrammingEnvironment)。
(7)工具盒Toolbox。
(8)工具箱Toolkit。
而對軟件工具的定義是“可用來幫助和支持軟件需求分析、軟件開發(fā)、測試、維護(hù)、模擬、移植或管理而編制的計算機(jī)程序或軟件?!?/p>
2.軟件開發(fā)環(huán)境的發(fā)展 隨著計算機(jī)技術(shù)的發(fā)展,大量的系統(tǒng)軟件和應(yīng)用軟件相繼的開發(fā),促進(jìn)了軟件工程這門學(xué)科的發(fā)展。于是許多新的開發(fā)方法學(xué)和開發(fā)模型、設(shè)計方法和技術(shù)不斷出現(xiàn),從而使得軟件開發(fā)工具和軟件開發(fā)環(huán)境的技術(shù)不斷得到改進(jìn)和完善,大大提高了軟件的生產(chǎn)率和軟件的質(zhì)量,降低了軟件的成本。 圖16.1表示了應(yīng)用技術(shù)、開發(fā)和設(shè)計方法以及軟件開發(fā)環(huán)境隨著時間進(jìn)展的發(fā)展情況。
圖16.1應(yīng)用技術(shù)、開發(fā)和設(shè)計方法以及軟件開發(fā)環(huán)境的發(fā)展20世紀(jì)70年代,軟件開發(fā)與設(shè)計方法由結(jié)構(gòu)化程序設(shè)計技術(shù)(SP)向結(jié)構(gòu)化設(shè)計(SD)技術(shù)發(fā)展,而后又發(fā)展了結(jié)構(gòu)化分析技術(shù)的一整套的相互銜接的SA-SD的方法學(xué)。與此相應(yīng)的計算機(jī)輔助軟件工程技術(shù)則主要由開發(fā)孤立的軟件工具而逐步向程序設(shè)計環(huán)境的開發(fā)和使用方向發(fā)展,出現(xiàn)了第一代的基于正文的CASE工具。這一時代稱為計算機(jī)輔助軟件工程時代。圖16.1應(yīng)用技術(shù)、開發(fā)和設(shè)計方法以及軟件開發(fā)環(huán)境的發(fā)展 20世紀(jì)80年代中期與后期,主要是實時系統(tǒng)設(shè)計方法以及面向?qū)ο蟮姆治龊驮O(shè)計方法的發(fā)展,它克服了結(jié)構(gòu)化技術(shù)的缺點(diǎn)。在這期間開發(fā)了第二代的CASE工具,其特點(diǎn)是支持使用圖形表示的結(jié)構(gòu)化方法,如數(shù)據(jù)流圖與結(jié)構(gòu)圖。其開發(fā)環(huán)境表現(xiàn)在提高環(huán)境中工具的集成性方面,如“集成的項目支持環(huán)境”,它將詳細(xì)的開發(fā)信息存放在“項目詞典”中,以便在同一環(huán)境中的其他CASE工具可以共享。但這只限于同一廠商的工具之間與同一項目數(shù)據(jù)中的共享。到了20世紀(jì)80年代后期和90年代初期出現(xiàn)了“基于信息工程CASE”技術(shù),這種環(huán)境集成了用于項目計劃、分析、設(shè)計、編程、測試和維護(hù)的一個工具箱的集合。 20世紀(jì)90年代主要是進(jìn)行系統(tǒng)集成方法與集成系統(tǒng)的研究,所研究的集成CSAE環(huán)境可以加快開發(fā)復(fù)雜信息系統(tǒng)的速度,確保用戶軟件開發(fā)成功,提高軟件質(zhì)量,降低投資成本和開發(fā)風(fēng)險。出現(xiàn)一系列集成的CASE軟件產(chǎn)品,用以實現(xiàn)需求管理、應(yīng)用程序分析設(shè)計和建模、編碼、軟件質(zhì)量保證和測試、過程和項目管理及文檔生成管理等軟件開發(fā)工作的規(guī)范化、工程化和自動化。 3.對軟件開發(fā)環(huán)境的要求 軟件開發(fā)環(huán)境的目標(biāo)是提高軟件開發(fā)的生產(chǎn)率和軟件產(chǎn)品的質(zhì)量。理想的軟件開發(fā)環(huán)境是能支持整個軟件生存期階段的開發(fā)活動,并能支持各種處理模型的軟件方法學(xué), 同時實現(xiàn)這些開發(fā)方法的自動化。比較一致的觀點(diǎn),認(rèn)為軟件開發(fā)環(huán)境的基本要求如下:
(1)軟件開發(fā)環(huán)境應(yīng)是高度集成的一體化的系統(tǒng)。其含義是:①應(yīng)該支持軟件生存期各個階段的活動,從需求分析、系統(tǒng)設(shè)計、編碼和調(diào)試、測試驗收到維護(hù)等各階段工作;②應(yīng)該支持軟件生存期各個階段的管理和開發(fā)兩方面的工作;③應(yīng)協(xié)調(diào)一致的支持各個階段和各方面的工作。具有統(tǒng)一形式的內(nèi)部數(shù)據(jù)表示;④整個系統(tǒng)具有一致的用戶接口和統(tǒng)一的文檔報表生成系統(tǒng)。 (2)軟件開發(fā)環(huán)境應(yīng)具有高度的通用性。這是指:①能適應(yīng)最常用的幾種語言;②能適應(yīng)和支持不同的開發(fā)方法;③能適應(yīng)不同的計算機(jī)硬件及其系統(tǒng)軟件,對這些方面應(yīng)具有最小的依賴性(尤其是對硬件);④能適應(yīng)開發(fā)不同類型的軟件;⑤能適應(yīng)并考慮到不同用戶的需要(如程序員、系統(tǒng)分析員、項目經(jīng)理、質(zhì)量保證人員、初學(xué)者與熟練人員)。
(3)軟件開發(fā)環(huán)境應(yīng)易于定制、裁剪或擴(kuò)充以符合用戶要求,即軟件開發(fā)環(huán)境應(yīng)具有高度的適應(yīng)性和靈活性。
其定制是指軟件開發(fā)環(huán)境應(yīng)能符合項目特性、過程和用戶的愛好。裁剪是指環(huán)境應(yīng)能自動按用戶需要建立子環(huán)境,即構(gòu)成適合具體硬件環(huán)境、精巧的、很少冗余的工作環(huán)境。擴(kuò)充是指環(huán)境能向上擴(kuò)展,根據(jù)用戶新的需求或軟件技術(shù)的新發(fā)展(如加入新工具,引入智能新機(jī)制)對原有的環(huán)境進(jìn)行更新和擴(kuò)充。
(4)軟件開發(fā)環(huán)境不但可應(yīng)用性要好,而且是易使用的、經(jīng)濟(jì)高效的系統(tǒng)。為此,它應(yīng)該:①易學(xué)、易用、響應(yīng)時間合理和用戶喜愛;②能支持自然語言處理;③能支持交互式和分布式協(xié)作開發(fā);④降低用戶和環(huán)境本身的資源花費(fèi)。 (5)軟件開發(fā)環(huán)境應(yīng)有輔助開發(fā)向半自動開發(fā)和自動開發(fā)逐步過渡的系統(tǒng)。半自動和自動開發(fā)的含義是:①各個階段的文檔之間要能半自動或自動地變換和跟蹤;②應(yīng)該注重使用形式化技術(shù);③不同程度地、逐步地采用“軟件構(gòu)件”的集成組裝技術(shù),并建立其可擴(kuò)充的、可再用的“軟件構(gòu)件”庫;④采用人工智能技術(shù),逐步包含支持軟件開發(fā)的專家系統(tǒng)。 當(dāng)然符合以上要求的軟件開發(fā)環(huán)境,目前在世界上還不存在,但是軟件工程發(fā)展很快,這些目標(biāo)相信是可以實現(xiàn)的。 16.1.2軟件開發(fā)環(huán)境的分類 軟件開發(fā)環(huán)境是與軟件生存期、軟件開發(fā)方法和軟件生存期模型緊密相關(guān)的。其分類方法很多,本節(jié)按解決的問題、軟件開發(fā)環(huán)境的演變趨向與集成化程度進(jìn)行分類。
1.按解決的問題分類
1)程序設(shè)計環(huán)境 程序設(shè)計環(huán)境解決如何將規(guī)范說明轉(zhuǎn)換成可工作的程序問題,它包括兩個重要部分:方法與工具。 2)系統(tǒng)合成環(huán)境 系統(tǒng)合成環(huán)境主要考慮把很多子系統(tǒng)集成為一個大系統(tǒng)的問題。所有的大型軟件系統(tǒng)都有兩個基本特點(diǎn):它們是由一些較小的、較易理解的子系統(tǒng)組成的,因此,需要有一個系統(tǒng)合成環(huán)境來輔助控制子系統(tǒng)及其向大系統(tǒng)的集成。
3)項目管理環(huán)境 大型軟件系統(tǒng)的開發(fā)和維護(hù)必然會有許多人員在一段時間內(nèi)協(xié)同工作,需要對人與人之間的交流和合作進(jìn)行管理。項目管理環(huán)境的責(zé)任是解決由于軟件產(chǎn)品的規(guī)模大、生存期長、人們的交往多而造成的問題。 2.按軟件開發(fā)環(huán)境的演變趨向分類
1)以語言為中心的環(huán)境 以語言為中心的環(huán)境的特點(diǎn)是強(qiáng)調(diào)支持某特定語言的編程;包含支持某特定語言編程所需的工具集;環(huán)境采取高度的交互方式;僅支持與編程有關(guān)的功能(如編碼和調(diào)試),不支持項目管理等功能。 這類環(huán)境的例子有InterLisp(Lisp語言),SmallTalk80(SmallTalk語言),ToolparkPascal語言),POS(Pascal語言)和Ada(Ada語言)。
以語言為中心的程序設(shè)計環(huán)境是最早被人們開發(fā)并使用的環(huán)境,也是目前使用最多的環(huán)境。這類環(huán)境具有以下特點(diǎn):
(1)支持軟件生存期后期活動,特別強(qiáng)調(diào)對編程、調(diào)試和測試活動的支持。
(2)該類環(huán)境的特點(diǎn)依賴于程序設(shè)計語言(高級語言)。
(3)該類環(huán)境感興趣的研究領(lǐng)域是增量開發(fā)方法(IncrementalDevelopment)。 2)工具箱環(huán)境 工具箱環(huán)境的特點(diǎn)由一整套工具組成,供程序設(shè)計選擇之用,如有窗口管理系統(tǒng)、各種編輯系統(tǒng)、通用繪圖系統(tǒng)、電子郵件系統(tǒng),文件傳輸系統(tǒng)及用戶界面生成系統(tǒng)等。用戶可以根據(jù)個人需要對整個環(huán)境的工具進(jìn)行裁剪,以產(chǎn)生符合自己需要的個人的系統(tǒng)環(huán)境。其次這類環(huán)境特點(diǎn)是獨(dú)立于語言的。這類環(huán)境的例子有:UNIX,Windows,APSE的接口集CAIS和SPICE等。 另外還可以按集成化程度將環(huán)境分成第一代、第二代和第三代集成化環(huán)境,以及分布式環(huán)境和智能環(huán)境等。 3)基于方法的環(huán)境 基于方法的環(huán)境專門用于支持特定的軟件開發(fā)方法。這些方法可分為兩大類:支持軟件開發(fā)周期特定階段的管理與開發(fā)過程。前者包括需求說明、設(shè)計、確認(rèn)、驗證和重用。后者又可細(xì)分為支持產(chǎn)品管理與支持開發(fā)和維護(hù)產(chǎn)品的過程管理。產(chǎn)品管理包括版本管理和配置管理。開發(fā)過程管理包括項目計劃和控制、任務(wù)管理等。這類環(huán)境的例子有Cornell程序綜合器,支持結(jié)構(gòu)化方法,SmallTalk80支持面向?qū)ο蠓椒ā? 3.按集成化程度分類 環(huán)境的形成與發(fā)展主要體現(xiàn)在各工具的集成化的程度上,當(dāng)前國內(nèi)外軟件工程把軟件開發(fā)環(huán)境分為3代。
1)第一代 第一代建立在操作系統(tǒng)之上,工具是通過一個公用框架集成的,工具不經(jīng)修改即可由調(diào)用過程來使用;工具所使用的文件結(jié)構(gòu)不變,而且成為環(huán)境庫的一部分。人機(jī)界面圖形能力差,多使用菜單技術(shù)。例如,20世紀(jì)70年代UNIX環(huán)境以文件庫為集成核心。 2)第二代 第二代具有真正的數(shù)據(jù)庫,而不是文件庫,多采用E-R模式,在更低層次集成工具。工具和文件都作為實體保存在數(shù)據(jù)庫中,現(xiàn)有工具要作適當(dāng)修改或定制方可加入。人機(jī)界面采用圖形、窗口等。例如,Ada程序設(shè)計環(huán)境(APSE)以數(shù)據(jù)庫為集成核心。
3)第三代 第三代建立在知識庫系統(tǒng)上,出現(xiàn)集成化工具集,用戶不用在任務(wù)之間切換不同的工具,采用形式化方法和軟件重用等技術(shù),采用多窗口技術(shù)。這一代軟件集成度最高,利用這些工具,實現(xiàn)了軟件開發(fā)的自動化,大大提高軟件開發(fā)的質(zhì)量和生產(chǎn)率,縮短軟件開發(fā)的周期,并可降低軟件的開發(fā)成本。例如,20世紀(jì)80年代CASE與目前的CASE集成化產(chǎn)品。16.2軟件工具
16.2.1軟件工具的基本概念
1.軟件工具 軟件工具是指為支持計算機(jī)軟件的開發(fā)、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)。它是一個程序系統(tǒng),是為專門目的而開發(fā)的。在軟件工程范圍內(nèi)也是為實現(xiàn)軟件生存期中的各種處理活動(包括管理、開發(fā)和維護(hù))的自動化和半自動化而開發(fā)的程序系統(tǒng)。開發(fā)軟件工具的主要目的是為了提高軟件生產(chǎn)率和改善軟件的質(zhì)量。
正像程序系統(tǒng)可分為系統(tǒng)和子系統(tǒng)一樣,軟件工具也可具有不同的粒度,稱之為工具和工具片斷。例如,編譯程序是一個編程環(huán)境中的工具,但是編譯程序中包括掃描程序、詞法分析、語法分析、優(yōu)化以及代碼生成這樣一些部分,每一個部分稱為工具片斷。很多情況下,工具片斷也可如同工具一樣,用以組合在一起以實現(xiàn)某個處理;或者按用戶要求定制和裁剪,以生成適合用戶需要的子環(huán)境的工具或工具片斷,這些均可作為構(gòu)成部件。在很多軟件工程環(huán)境中,將工具和工具片斷組合在一起進(jìn)行管理?;竟ぞ卟考牧6葘蓹C(jī)制的設(shè)計是有關(guān)系的。
軟件工具通常由工具、工具接口和工具用戶接口3部分構(gòu)成。工具通過工具接口與其他工具、操作系統(tǒng)或網(wǎng)絡(luò)操作系統(tǒng)以及通信接口、環(huán)境信息庫接口等進(jìn)行交互作用。當(dāng)工具需要與用戶進(jìn)行交互作用時,則通過工具的用戶接口來進(jìn)行。
2.軟件工具的發(fā)展 在過去幾十年中,軟件工具隨著計算機(jī)軟件的發(fā)展而不斷發(fā)展,例如在計算機(jī)發(fā)展的初期(1951年),Wilks就開始用子程序和子程序庫的方法來提高程序質(zhì)量,同時開發(fā)了相關(guān)的工具。1953年IBM公司用符號匯編程序代替絕對地址編址的程序,麻省理工學(xué)院實現(xiàn)了浮動地址程序,這些均是早期的工具,極大地提高了程序質(zhì)量和生產(chǎn)率。
以后一段時期是語言工具(以及與之相關(guān)的編譯程序、調(diào)試工具、排錯程序、靜態(tài)分析和動態(tài)追蹤工具等)大發(fā)展時期。1960年麻省理工學(xué)院開發(fā)了第一個兼容分時系統(tǒng)(CTSS),該系統(tǒng)使用正文編輯程序。于是在20世紀(jì)60年代中期,正文編輯工具由行編輯、字符流編輯發(fā)展到全屏幕編輯,以至于目前的結(jié)構(gòu)編輯程序或語法制導(dǎo)的編輯工具程序。編輯工具的發(fā)展改善了人機(jī)交互界面的友好性,特別值得一提的是,圖形用戶界面工具的迅速發(fā)展,在人機(jī)交互操作方式上是一個革命性進(jìn)展,它已深刻影響到軟件開發(fā)技術(shù)的各個方面,對軟件工程環(huán)境的自動化、軟件開發(fā)生產(chǎn)率和軟件質(zhì)量都有極大推動作用。
從20世紀(jì)60年代未70年代初軟件工程技術(shù)出現(xiàn)以來,軟件工具和軟件開發(fā)環(huán)境獲得迅速發(fā)展。20世紀(jì)70年代初的軟件工程環(huán)境主要是支持程序設(shè)計的軟件環(huán)境,在認(rèn)識到編碼只占整個軟件開發(fā)工作量的15%以下,再加上軟件生存期的前面開發(fā)階段較多采用圖形技術(shù),就更加重視軟件生產(chǎn)其他各階段的支撐工具。20世紀(jì)70年代后期由于結(jié)構(gòu)化技術(shù)發(fā)展,出現(xiàn)了一批軟件工具和系統(tǒng),如1975~1977年期間,有SADT(Softech公司的結(jié)構(gòu)分析和設(shè)計技術(shù)工具);SREM(軟件需求工程方法學(xué))是一個自動需求分析工具,并使用需求陳述語言(RSL)工具。PSL/PSA(問題陳述語言/問題陳述分析)是由Michigan大學(xué)開發(fā)的ISDOS項目的一部分,它是一個計算機(jī)輔助的設(shè)計和規(guī)格說明的分析工具。
除了以上分析工具外,還有支持軟件設(shè)計的程序設(shè)計語言(PDL碼)工具和設(shè)計分析系統(tǒng)(DAS)以及大量支持測試和開發(fā)管理的工具。
20世紀(jì)80年代以來,軟件工具的發(fā)展形成了第二代的CASE工具,其特點(diǎn)是以使用圖形表示的結(jié)構(gòu)化方法的圖形工具,取代20世紀(jì)70年代基于正文的第一代CASE工具。20世紀(jì)80年代軟件工具的另一大特點(diǎn)是工具間緊密耦合的集成性替代了孤立開發(fā)的工具之間的不兼容性。所有這些對于提高軟件質(zhì)量和生產(chǎn)率,降低軟件成本起到了更大的作用。 3.當(dāng)前軟件工具發(fā)展的特點(diǎn)
20世紀(jì)80年代初,IBM公司曾對幾家大公司的軟件工具的使用情況進(jìn)行過調(diào)查,結(jié)論是由于軟件工具的開發(fā)成本太大和不易移植,以及工具集成性差、不兼容等問題,實際使用工具并不多。目前,工具開發(fā)和使用情況有了根本性改觀,工具的生產(chǎn)、銷售和使用情況均表現(xiàn)出了猛烈的增長勢頭。 軟件工具的發(fā)展有以下特點(diǎn):
(1)軟件工具由單個工具向多個工具集成化方向發(fā)展。如將編輯、編譯、運(yùn)行結(jié)合在一起構(gòu)成集成工具。注重工具間的平滑過渡和互操作性(如微軟公司的Office工具)。 (2)重視用戶界面的設(shè)計。交互式圖形技術(shù)及高分辨率圖形終端的發(fā)展,為用戶圖形提供了物質(zhì)基礎(chǔ)。多窗口管理、鼠標(biāo)器使用及圖形資源的表示等技術(shù),極大地改善了用戶界面的質(zhì)量,改善了軟件的感觀。
(3)不斷地采用新理論和新技術(shù)。如許多軟件工具的研制中采用了數(shù)據(jù)庫技術(shù)、交互圖形技術(shù)、網(wǎng)絡(luò)技術(shù)、人工智能技術(shù)和形式化技術(shù)等。
(4)軟件工具的商品化推動了軟件產(chǎn)業(yè)的發(fā)展,而軟件產(chǎn)業(yè)的發(fā)展,又增加了對軟件工具的需求,促進(jìn)了軟件工具的商品化進(jìn)程。
4.軟件工具的分類 軟件工具種類繁多、涉及面廣,如編輯、編譯、正文格式處理、靜態(tài)分析、動態(tài)追蹤、需求分析、設(shè)計分析、測試、模擬和圖形交互等。 如何對軟件工具進(jìn)行分類,一直是人們研究的熱點(diǎn),自20世紀(jì)90年代以來掀起了新的研究熱潮。Reifer和Trattner將軟件工具分為6類:模擬工具、開發(fā)工具、測試和評估工具、運(yùn)行和維護(hù)工具、性能測量工具和程序設(shè)計支持工具。Westinghouse公司于1992年公布了以下13類軟件工具分類標(biāo)準(zhǔn)和該類的范例工具以及例子:
(1)系統(tǒng)模擬和模型工具:指結(jié)構(gòu)和數(shù)據(jù)流模型、算法模擬、定時和大小工具及動畫工具。 (2)需求追蹤工具:指編輯程序、數(shù)據(jù)庫管理系統(tǒng)及在DBMS上的應(yīng)用運(yùn)行工具。
(3)需求分析工具:指正文和數(shù)據(jù)流圖工具、數(shù)據(jù)字典工具及面向?qū)ο蟮姆治龉ぞ摺?/p>
(4)設(shè)計工具:指結(jié)構(gòu)圖、模塊規(guī)格說明、偽碼、代碼生成程序及語言敏感的編輯程序。
(5)編碼和單元測試工具:指編碼程序、語言敏感的編輯程序、語言、代碼格式化程序、交叉編譯程序、連接程序及源碼層次的調(diào)試程序。 (6)測試和集成工具:指測試驅(qū)動程序、覆蓋分析程序、回歸測試及測試床。
(7)文檔工具:指桌面出版系統(tǒng)、文檔模板及格式管理系統(tǒng)。
(8)項目管理工具:指計劃和進(jìn)度、追蹤和狀態(tài)報告及成本估算和代碼行估算。
(9)配置管理工具:指訪問和版本控制機(jī)構(gòu)、產(chǎn)品基線、文件和修改管理。 (10)質(zhì)量保證工具:指檢查表、直方圖、圖形及表格。
(11)度量工具:指行計數(shù)、代碼質(zhì)量度量、管理度量及其他標(biāo)準(zhǔn)度量。
(12)軟件再用工具。
(13)其他:指數(shù)據(jù)管理、通信、電子公告牌及活頁等。16.3計算機(jī)輔助軟件工程 16.3.1CASE定義 隨著計算機(jī)硬件的突飛猛進(jìn)的發(fā)展,硬件的成本極大降低、可靠性大大提高。而計算機(jī)軟件是智力密集型產(chǎn)品,軟件成本十分昂貴,軟件質(zhì)量也因復(fù)雜性提高而難以保證。為緩解“軟件危機(jī)”,20世紀(jì)60年代末產(chǎn)生了“軟件工程”這門學(xué)科。軟件工程要求人們采用“工程”的原則、方法和技術(shù)來開發(fā)、維護(hù)和管理軟件。 CASE是一組工具和方法的集合,可以輔助軟件生存周期各階段進(jìn)行軟件開發(fā)。從學(xué)術(shù)研究角度講,CASE是多年來在軟件開發(fā)管理、軟件開發(fā)方法、軟件開發(fā)環(huán)境和軟件工具等方面研究和發(fā)展的產(chǎn)物。CASE把軟件開發(fā)技術(shù)、軟件工具和軟件開發(fā)方法集成到一個統(tǒng)一而一致的框架中,并且吸收了CAD(計算機(jī)輔助設(shè)計)、軟件工程、操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)和許多其他計算機(jī)領(lǐng)域的原理和技術(shù)。因而,CASE領(lǐng)域是一個應(yīng)用、集成和綜合的領(lǐng)域。從產(chǎn)業(yè)角度講,CASE是種類繁多的軟件開發(fā)和系統(tǒng)集成的產(chǎn)品及軟件工具的集合。其中,軟件工具不是對任何軟件開發(fā)方法的取代,而是對方法的輔助,它旨在提高軟件開發(fā)的效率,增強(qiáng)軟件產(chǎn)品的質(zhì)量。
16.3.2CASE分類
1.CASE技術(shù)種類
CASE系統(tǒng)所涉及到的技術(shù)有兩類:一類是支持軟件開發(fā)過程本身的技術(shù),如支持規(guī)約、設(shè)計、實現(xiàn)及測試等。采用這類技術(shù)的CASE系統(tǒng)研制時間較長,已有許多產(chǎn)品上市;另一類是支持軟件開發(fā)過程管理的技術(shù),如支持建模、過程管理等。這類技術(shù)不很成熟,采用這類技術(shù)的CASE系統(tǒng)會調(diào)用前一類技術(shù)的CASE系統(tǒng)。 從CASE系統(tǒng)產(chǎn)生方式來看,還有一種特殊的CASE技術(shù),即元-CASE技術(shù)。元-CASE技術(shù)是生成CASE系統(tǒng)的生成器所采用的技術(shù)。該生成器可用來創(chuàng)建支持軟件開發(fā)過程活動及過程管理的CASE系統(tǒng)。此類CASE技術(shù)尚處于探索階段。 2.CASE工具 在CASE術(shù)語尚未廣泛使用之前,人們就經(jīng)常使用軟件工具一詞。20世紀(jì)70年代末到80年代初,軟件工具的含義極為廣泛。凡是用于輔助或支持計算機(jī)軟件的開發(fā)、運(yùn)行、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)都成為軟件工具。隨著計算機(jī)軟件的發(fā)展,這種含義上的軟件工具越來越多,甚至像數(shù)據(jù)庫管理系統(tǒng)也可稱為軟件工具。因而,人們開始使用窄一些含義的軟件工具,即軟件工具是用于輔助計算機(jī)軟件的開發(fā)、運(yùn)行、維護(hù)和管理等活動的一類軟件。隨著CASE的出現(xiàn),人們也經(jīng)常使用工具這一術(shù)語。人們一般不加區(qū)別地使用軟件工具和CASE工具這兩個詞,但它們還是有細(xì)微的區(qū)別。 3.CASE工具的分類 隨著CASE的發(fā)展,出現(xiàn)了各種各樣的CASE工具。對CASE工具分類的標(biāo)準(zhǔn)可分為:
(1)功能:是對軟件進(jìn)行分類的最常用的標(biāo)準(zhǔn)。
(2)支持的過程:根據(jù)支持的過程,工具可分為設(shè)計工具、編程工具及維護(hù)工具等。
(3)支持的范圍:根據(jù)支持范圍,可分為窄支持、較寬支持和一般支持工具。窄支持指支持過程中特定的任務(wù),如創(chuàng)建一個實體關(guān)系圖,編譯一個程序等。較寬支持是指支持特定過程階段,例如設(shè)計階段。一般支持是指支持覆蓋軟件過程的全部階段或大多數(shù)階段。 1993年,F(xiàn)uggetta根據(jù)CASE系統(tǒng)對軟件過程的支持范圍,提出CASE系統(tǒng)可分為如下3類:
(1)工具:支持過程單個任務(wù),例如檢查一個設(shè)計的一致性,編譯一個程序,比較測試結(jié)果等。工具可能是通用的,獨(dú)立的(如一個字處理器),或者也可能歸組到工作臺。
(2)工作臺:支持某一過程所有活動或某些活動,例如規(guī)約,設(shè)計等。它們一般以或多或少的集成度組成工具集。
(3)環(huán)境:支持軟件過程所有活動或至少大部分。它們一般包括幾個不同的工作臺,將這些工作臺以某種方式集成起來。
圖16.2說明了該分類,并給出了這些不同類別的CASE所支持的一些例子。當(dāng)然,許多類型的工具和工作臺都未包含在該圖中。其中工作臺一般支持某種方法,該方法包含一個過程模型和一組規(guī)則/指南,以應(yīng)用來開發(fā)軟件。將環(huán)境分為集成化環(huán)境和以過程為中心的環(huán)境。集成化環(huán)境對數(shù)據(jù)、控制及表示集成提供基本支持。這一分類只是一個粗略的分類,以方便大家對CASE系統(tǒng)的理解。圖16.2工具、工作臺和環(huán)境 16.3.3CASE的集成 以一種集成的方式工作的CASE工具可獲得更多收益,因為集成方式組裝特定工具以提供對過程活動更廣泛的支持。1990年Wasserman討論軟件工程環(huán)境的集成時,提出一個5級模型,這一模型也適用于工作平臺,如下所示:
(1)平臺集成:即工具運(yùn)行在相同的硬件/操作系統(tǒng)平臺上。
(2)數(shù)據(jù)集成:即工具使用共享數(shù)據(jù)模型來操作。
(3)表示集成:即工具提供相同的用戶界面。
(4)控制集成:即工具激活后能控制其他工具的操作。
(5)過程集成:即工具在一個過程模型和“過程機(jī)”的指導(dǎo)下使用。 1.平臺集成
“平臺”或是一個單一的計算機(jī)或操作系統(tǒng)或是一個網(wǎng)絡(luò)系統(tǒng)。平臺集成是指工具或工作臺在相同的平臺上運(yùn)行。目前,大多數(shù)CASE工具運(yùn)行在UNIX系統(tǒng),或PC上的MicrosoftWindows之上。當(dāng)一個組織機(jī)構(gòu)使用異構(gòu)網(wǎng)絡(luò),網(wǎng)絡(luò)中不同的計算機(jī)運(yùn)行不同的操作系統(tǒng)時,要實現(xiàn)平臺集成很困難。即使機(jī)器全是從同一個供應(yīng)商處購買,平臺集成仍是一個問題。
2.數(shù)據(jù)集成 數(shù)據(jù)集成指不同軟件工程能相互交換數(shù)據(jù)。因而,一個工具的結(jié)果能作為另一個工具的輸入。
有許多不同級別的數(shù)據(jù)集成如下所示:
(1)共享文件:即所有工具識別一個單一文件格式。最通用的可共享文件是字符流文件。文件是一個用于信息交換的簡單方法。
(2)共享數(shù)據(jù)結(jié)構(gòu):工具使用的共享數(shù)據(jù)結(jié)構(gòu)通常包括有編程和設(shè)計信息。事前,所有的工具要認(rèn)可該數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),并把該結(jié)構(gòu)的細(xì)節(jié)嵌入工具中。
(3)共享倉庫:工具圍繞一個對象管理系統(tǒng)(OMS)來集成,該OMS包括一個公有的、共享數(shù)據(jù)模型來描述能被工具操縱的數(shù)據(jù)實體和關(guān)系。這一模型可為所有工具使用,但不是工具的內(nèi)在組成部分。
最簡單的數(shù)據(jù)集成形式是基于一個共享文件集的集成,UNIX系統(tǒng)就是這樣。UNIX有一個簡單的文件模型,即非結(jié)構(gòu)化字符流。任何工具都能把信息寫入文件中,也能讀其他工具生成的文件。UNIX還提供管道,當(dāng)進(jìn)程間通過一個管道聯(lián)系時,無須創(chuàng)建中間文件,字符流從一個進(jìn)程直接流向另一個進(jìn)程。
3.表示集成 表示集成或用戶界面集成意指一個系統(tǒng)中的工具使用共同的風(fēng)格,以及采用共同的用戶交互標(biāo)準(zhǔn)集。工具有一個相似的外觀。當(dāng)引入一個新工具時,用戶對其中一些用戶界面已經(jīng)很熟悉,這樣就減輕了用戶的學(xué)習(xí)負(fù)擔(dān)。目前,表示集成有如下3種不同級別: (1)窗口系統(tǒng)集成:其工具使用相同的基本窗口系統(tǒng),窗口有共同的外觀,操作窗口的命令也很相似,如每個窗口都有窗口移動、改變大小及圖標(biāo)化等命令。
(2)命令集成:其工具對相似的功能使用相同格式的命令。如果使用菜單和圖標(biāo)的圖形界面,相似的命令就會有相同的名字。在每個應(yīng)用程序中菜單項定位于相同位置。在所有的系統(tǒng)中,對按鈕、菜單等使用相同的表示(圖標(biāo))。
(3)交互集成:是針對那些帶有一個直接操縱界面的系統(tǒng)。通過該界面,用戶可以直接與一個實體的圖形或文本視口進(jìn)行交互。交互集成意指所有子系統(tǒng)中提供相同的直接操縱,如選擇、刪除等操作。支持交互集成的系統(tǒng)的例子有圖形編輯系統(tǒng)等。 UNIX工作站窗口系統(tǒng)集成的標(biāo)準(zhǔn)X窗口Motif工具箱,所有基于UNIX的CASE工具都認(rèn)可這一標(biāo)準(zhǔn)。然而,它只解決了窗口級的集成。來自不同銷售商的UNIX工具和工作臺很少能很好地在命令和交互級上集成。在PC平臺上,其標(biāo)準(zhǔn)是MicrosoftWindows。這比X/Motif好得多,因為它支持3個級別的表示集成。Windows除具有通常窗口系統(tǒng)所應(yīng)具有的功能外,還提供工具箱來支持其所制定的菜單構(gòu)造指南,還支持特定形式交互。這樣,運(yùn)行了Windows的CASE工具都有一致的外觀。
CASE工作臺是封閉系統(tǒng)時,通常都有良好的用戶界面集成。工作臺的不同工具能遵從一些約定和標(biāo)準(zhǔn)。用戶能從一個工具無縫地移至另一個工具。 4.控制集成 控制集成支持工作臺或環(huán)境中一個工具對系統(tǒng)中其他工具的訪問。除了能啟動和停止其他工具外,一個工具能調(diào)用系統(tǒng)中另一工具所提供的服務(wù),這些服務(wù)可通過一個程序接口來訪問。例如,一個綜合工具箱中,一個結(jié)構(gòu)化編輯器可以調(diào)用一個語法分析器來檢查所輸入的程序片段的語法。
5.過程集成 過程集成意指CASE系統(tǒng)嵌入了關(guān)于過程活動、階段、約束和支持這些活動所需的工具的知識。CASE系統(tǒng)輔助用戶調(diào)用相應(yīng)工具完成有關(guān)活動,并檢查活動完成后的結(jié)果。CASE技術(shù)對過程集成的支持依賴于過程模型的設(shè)計。 16.3.4CASE生存期
CASE工具很昂貴,引入和使用CASE技術(shù)需要仔細(xì)策劃。如果對CASE需要量不是很大,使用這種技術(shù)可能很難獲得收益。引入CASE時,必須有意識地進(jìn)行管理與維護(hù),讓開發(fā)人員認(rèn)識到CASE系統(tǒng)的優(yōu)勢所在。CASE系統(tǒng)的開銷收益是長期的,而不是短期的,不可能立即節(jié)省開銷。 一個組織中的CASE系統(tǒng)遵循從初始需求到完全廢棄這一生存期,CASE生存期各步驟如下:
(1)CASE需求:根據(jù)要開發(fā)的軟件類型選擇一個合適的CASE系統(tǒng)。 (2)CASE剪裁:調(diào)整一個CASE系統(tǒng),使之適應(yīng)一特定組織機(jī)構(gòu)或一類項目。
(3)CASE引入:即試用該CASE系統(tǒng)。在這期間,要培訓(xùn)使用這一系統(tǒng)的開發(fā)人員。
(4)CASE操作:指每天都使用CASE進(jìn)行軟件開發(fā)。
(5)CASE演化:是一個在CASE系統(tǒng)生存周期中的一個持續(xù)的活動。要修改硬件或軟件,調(diào)整系統(tǒng)適應(yīng)新需求。
(6)CASE廢棄:使該CASE系統(tǒng)在這一階段不再起作用,必須保證使用該系統(tǒng)開發(fā)的軟件仍被所在組織機(jī)構(gòu)支持。 顯然,從引入階段到裁剪階段有反饋,在演化和操作之間也有反饋。 16.3.5CASE工作臺
1.CASE工作臺概述
1)CASE工作臺的分類 一個CASE工作臺是一組工具集,支持像設(shè)計、實現(xiàn)或測試等特定的軟件開發(fā)階段。將CASE工具組裝成一個工作臺后,工具能協(xié)同工作,可提供比單一工具更好的支持??梢詫崿F(xiàn)通用服務(wù)程序,這些程序能被其他工具調(diào)用。工作臺工具能通過共享文件、共享倉庫或共享數(shù)據(jù)結(jié)構(gòu)來集成。
工作臺能支持大多數(shù)的軟件過程活動。其中,像支持分析、設(shè)計、編程等軟件過程活動的工作臺比支持另一些活動工作臺更為成熟。針對所開發(fā)軟件的類別和應(yīng)用領(lǐng)域的情況,可使用各種各樣的工作臺。工作臺有以下幾種:
(1)程序設(shè)計工作臺:由支持程序設(shè)計的一組工具組成,如將編輯器、編譯器和調(diào)試器等集成在一個宿主機(jī)上構(gòu)成程序設(shè)計工作臺供開發(fā)人員使用。
(2)分析和設(shè)計工作臺:即支持軟件過程的分析和設(shè)計階段。較為成熟的是支持結(jié)構(gòu)化方法的工作臺,現(xiàn)也有支持面向?qū)ο蠓椒ㄟM(jìn)行分析和設(shè)計的工作臺。 (3)測試工作臺:即趨于支持特定的應(yīng)用和組織機(jī)構(gòu)。它具有較好的開放性。
(4)交叉開發(fā)工作臺:是在一種機(jī)器上開發(fā)軟件,而在其他別的系統(tǒng)上運(yùn)行所開發(fā)的軟件。一個交叉開發(fā)工作臺中,可能包括的工具有交叉編譯器、目標(biāo)機(jī)模擬器、從宿主機(jī)到目標(biāo)機(jī)上下載軟件的通信軟件包以及遠(yuǎn)程運(yùn)行的監(jiān)控程序等。
(5)配置管理(CM)工作臺:即支持配置管理,如有版本管理工具、變更跟蹤工具及系統(tǒng)建造(裝配)工具等。 (6)文檔工作臺:支持高質(zhì)量文檔的制作。如字處理器、圖表圖像編輯器及文檔瀏覽器等。
(7)項目管理工作臺:支持項目管理活動,有項目規(guī)劃和質(zhì)量、開支評估和預(yù)算追蹤工具。
2)開放式工作臺和封閉式工作臺
CASE工作臺可以支持一組相關(guān)的軟件過程活動。這些活動從一個應(yīng)用領(lǐng)域到另一個應(yīng)用領(lǐng)域,從一個組織機(jī)構(gòu)到另一個組織機(jī)構(gòu)變化很大。
因而,要求CASE工作臺應(yīng)為開放系統(tǒng)。一個開放的工作臺是這樣的一個系統(tǒng),或者提供控制集成機(jī)制,或者可裁剪(編程),其數(shù)據(jù)集成或協(xié)議是公有的,而不是獨(dú)立的。目前還沒有被廣泛接受的數(shù)據(jù)集成的標(biāo)準(zhǔn),因而,大多數(shù)開發(fā)系統(tǒng)都采用基于文件集成的策略。 開放式工作臺有如下優(yōu)點(diǎn):
(1)易將某個工具加入到開放式工作臺中,還可以用新的工具取代已有的工具。
(2)可以由一個配置管理系統(tǒng)來管理由工具輸出的文件。
(3)能不斷增強(qiáng)工作臺的功能,不斷發(fā)展工作臺。 (4)工作臺不依賴于某個供應(yīng)商,而能從不同銷售商處購買工具。如果一個工具開發(fā)商不提供支持了,最多只影響該工作臺的一部分工具,其余的工具還可以繼續(xù)使用。 盡管開放式工作臺優(yōu)點(diǎn)很多,但許多CASE工作臺開發(fā)商還是決定提供封閉式系統(tǒng)。在封閉式系統(tǒng)中,系統(tǒng)集成的約定是該工作臺開發(fā)商獨(dú)有的。許多工作臺都是封閉式系統(tǒng),因為它允許更緊密地數(shù)據(jù)集成、表示集成和控制集成。出現(xiàn)在用戶面前的工作臺是一個一致的整體,而不是不同工具組成的工具箱。 2.程序設(shè)計工作臺 程序設(shè)計工作臺由支持程序開發(fā)過程的一組工具組成。將編譯器、編輯器和調(diào)試器這樣的軟件工具放在一個宿主機(jī)上,該機(jī)器是專門為程序開發(fā)而設(shè)計制作的。組成程序設(shè)計工作臺的工具可能為:
(1)語言編譯器:即將源代碼程序轉(zhuǎn)換成目標(biāo)碼。其間,創(chuàng)建一個抽象語法樹(AST)和一個符號表。
(2)結(jié)構(gòu)化編輯器:結(jié)合嵌入的程序設(shè)計語言知識,對AST中程序的語法表示進(jìn)行編輯,而不是程序的源代碼文本。 (3)連接器:將已編譯的程序目標(biāo)代碼模塊連起來。
(4)加載器:程序執(zhí)行之前將它加載到計算機(jī)內(nèi)存。
(5)交叉引用:產(chǎn)生一個交叉引用列表,顯示所有的程序名是在哪里聲明和使用的。
(6)按格式打?。簰呙鐰ST,根據(jù)嵌入的格式規(guī)則打印源文件程序。
(7)靜態(tài)分析器:分析源文件代碼,找到諸如未初始化的變量,未被執(zhí)行到的代碼,未調(diào)用的函數(shù)和過程等異常。
(8)動態(tài)分析器:產(chǎn)生帶附注的一個源文件代碼表,附注上標(biāo)有程序運(yùn)行時每個語句執(zhí)行的次數(shù)。也許還生成有關(guān)程序分支和循環(huán)的信息,統(tǒng)計處理器的使用情況。 (9)交互式調(diào)試器:允許用戶控制程序的執(zhí)行次序,顯示執(zhí)行期間的程序狀態(tài)。 個人計算機(jī)上已有許多程序設(shè)計工作臺,這些工作臺通常是封閉式系統(tǒng)。在編譯器和其他工具間,通過共享數(shù)據(jù)結(jié)構(gòu)極緊密地集成。以這種方式出售的語言有BASIC,C,C++,Pascal,Lisp和Smalltalk。 這些語言工作臺通常包括一個面向語言的編輯器、編譯器和調(diào)試系統(tǒng)。在執(zhí)行過程中程序失敗時,就初始化編輯器,并將編輯光標(biāo)定位到導(dǎo)致失敗的源程序語句處。而且,打開調(diào)試窗口顯示失敗時的程序狀態(tài)。
第四代語言(4GL)使用另一種方法集成,4GL工作臺趨于產(chǎn)生交互應(yīng)用程序,該程序從數(shù)據(jù)庫中抽取信息,將之提交給終端機(jī)或工作臺用戶,再隨用戶所做的改變來更新數(shù)據(jù)庫。用戶界面通常有一組標(biāo)準(zhǔn)表格或一個報表組成。一個4GL工作臺中可能包括如下工具:
(1)諸如SQL的數(shù)據(jù)庫查詢語言,或是直接輸入的,或是從由終端用戶填寫的表格中自動生成的。
(2)一個表格設(shè)計工具,用于創(chuàng)建表格,數(shù)據(jù)通過表格輸入和顯示。
(3)一個電子報表,用于分析和操縱數(shù)字信息。
(4)一個報告生成器,用于定義和創(chuàng)建電子數(shù)據(jù)庫信息的報告。 3.分析和設(shè)計工作臺 分析和設(shè)計工作臺是支持軟件過程的分析和設(shè)計的階段。在這一階段,系統(tǒng)模型業(yè)已建立(例如,一個數(shù)據(jù)庫模型,一個實體關(guān)系模型等)。這些工作臺通常支持結(jié)構(gòu)化方法中所用的圖形符號。支持分析和設(shè)計的工作臺有時稱為上游CASE工具。它們支持軟件開發(fā)的早期過程。程序設(shè)計工作臺則成為下游CASE工具。 這些工作臺也許支持特定的設(shè)計或分析方法,諸如JSD或Booch的面向?qū)ο蠓治?。另外,它們也可能是更為通用的圖表編輯系統(tǒng),能處理大多數(shù)通用方法的圖表類型。面向方法的工作臺提供方法規(guī)則和指南,也能進(jìn)行一些自動圖表檢查工作。
一般分析和設(shè)計工作臺有下列工具:
(1)圖表編輯器:用來創(chuàng)建數(shù)據(jù)流圖、結(jié)構(gòu)圖及實體關(guān)系圖等。
(2)設(shè)計分析和核實工具:進(jìn)行分析,并報告錯誤和異常情況,這些也許和編輯系統(tǒng)集成,以便在早期開發(fā)階段用戶能追蹤錯誤。
(3)倉庫查詢語言:允許設(shè)計者查詢倉庫,找到與設(shè)計相關(guān)的信息。
(4)數(shù)據(jù)字典:即維護(hù)系統(tǒng)設(shè)計中所用的實體信息。
(5)報告定義和生成工具:是從中央存儲器中取得信息并自動生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年標(biāo)準(zhǔn)建筑工程分包協(xié)議范本
- 人教版高中物理必修第三冊第十章靜電場中的能量10-3電勢差與電場強(qiáng)度的關(guān)系練習(xí)含答案
- 2024年度城市軌道交通工程造價概算與施工圖設(shè)計服務(wù)合同3篇
- 人教版高中地理必修第一冊第四章地貌綜合檢測卷含答案
- 2024年新科版必修2生物上冊月考試卷790
- 無線雙工對講機(jī)課程設(shè)計
- 2024年農(nóng)業(yè)綠色防控技術(shù)種子農(nóng)藥采購合同3篇
- 2022-2023學(xué)年云南省昭通市四年級上學(xué)期期中科學(xué)真題及答案
- 水資源危機(jī)課程設(shè)計
- 2024年某地塊回填土工程專項施工合同
- (建筑工程管理)常熟市建設(shè)工程施工圖審查工作
- 瑜伽基礎(chǔ)知識題庫單選題100道及答案解析
- 【中圖】八上地理知識點(diǎn)總結(jié)
- 2024年資格考試-注冊質(zhì)量經(jīng)理考試近5年真題附答案
- 密碼行業(yè)職業(yè)技能競賽參考試題及答案
- 浙江省臺州市2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 2024年秋新人教版地理七年級上冊課件 第一章 地球 1.3.1 地球的自轉(zhuǎn)
- 2024年新高考英語全國卷I分析教學(xué)設(shè)計
- 檢驗科生物安全手冊
- 2024-2025學(xué)年高中英語學(xué)業(yè)水平合格性考試模擬測試卷五含解析
- 孤殘兒童護(hù)理員技能鑒定考試題庫(含答案)
評論
0/150
提交評論