版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
§4計(jì)算機(jī)軟件系統(tǒng)計(jì)算機(jī)軟件的分類(lèi)與發(fā)展操作系統(tǒng)程序設(shè)計(jì)語(yǔ)言及其處理程序算法和數(shù)據(jù)結(jié)構(gòu)軟件工程數(shù)據(jù)庫(kù)及其應(yīng)用
§4計(jì)算機(jī)軟件系統(tǒng)
計(jì)算機(jī)軟件也是計(jì)算機(jī)系統(tǒng)重要的組成部分,如果把計(jì)算機(jī)硬件看成是計(jì)算機(jī)的軀體,那么計(jì)算機(jī)軟件就是計(jì)算機(jī)系統(tǒng)的靈魂。沒(méi)有軟件支持的計(jì)算機(jī)稱(chēng)為“裸機(jī)”,只是一些物理設(shè)備的堆砌,幾乎是不能工作的。
計(jì)算機(jī)軟件及分類(lèi)一、什么是計(jì)算機(jī)軟件計(jì)算機(jī)軟件是指計(jì)算機(jī)程序及其相關(guān)文檔的總和。與傳統(tǒng)觀念不同的是,程序≠軟件,軟件的定義更加強(qiáng)調(diào)文檔的重要性,文檔為軟件的設(shè)計(jì)、開(kāi)發(fā)、維護(hù)提供了重要的依據(jù)和支持。二、軟件的分類(lèi)計(jì)算機(jī)軟件可以分為系統(tǒng)軟件和應(yīng)用軟件兩大類(lèi)。系統(tǒng)軟件
系統(tǒng)軟件是負(fù)責(zé)管理、控制、維護(hù)、開(kāi)發(fā)計(jì)算機(jī)的軟硬件資源,提供給用戶(hù)一個(gè)便利的操作界面,也提供編制應(yīng)用軟件的資源環(huán)境。系統(tǒng)軟件主要包括操作系統(tǒng),另外還有程序設(shè)計(jì)語(yǔ)言及其處理程序和數(shù)據(jù)庫(kù)管理系統(tǒng)等。操作系統(tǒng)在軟件系統(tǒng)中居于核心地位,負(fù)責(zé)對(duì)所有的軟、硬件資源進(jìn)行統(tǒng)一管理、調(diào)度及分配。它是用戶(hù)和計(jì)算機(jī)的一個(gè)接口。程序設(shè)計(jì)語(yǔ)言是供程序員編制軟件,實(shí)現(xiàn)數(shù)據(jù)處理的特殊語(yǔ)言,語(yǔ)言處理程序提供對(duì)程序進(jìn)行編輯、解釋、編譯、連接的功能。數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)也是十分重要的一個(gè)系統(tǒng)軟件。因?yàn)榇罅康膽?yīng)用軟件都需要數(shù)據(jù)庫(kù)的支持,如信息管理系統(tǒng)、電子商務(wù)系統(tǒng)等。而目前比較流行的數(shù)據(jù)庫(kù)管理系統(tǒng)有MicsosoftSQLServer、Oracle、Sybase和Informix等。
應(yīng)用軟件
應(yīng)用軟件是指為解決某一領(lǐng)域的具體問(wèn)題而編制的軟件產(chǎn)品,比如辦公軟件、圖像處理程序、各類(lèi)信息管理系統(tǒng)等。應(yīng)用軟件因其應(yīng)用領(lǐng)域的不同而豐富多彩。
計(jì)算機(jī)軟件的發(fā)展
軟件的發(fā)展大致經(jīng)歷了三個(gè)階段:第一階段(20世紀(jì)40年代到50年代中)。發(fā)展初期。在這個(gè)階段,軟件開(kāi)發(fā)采用低級(jí)語(yǔ)言,效率低下,應(yīng)用領(lǐng)域基本局限于科學(xué)和工程的數(shù)值計(jì)算。人們不重視軟件文檔的編制,注重考慮代碼的編寫(xiě)。第二階段(20世紀(jì)50年代中期到60年代后期)。相繼誕生了大量的高級(jí)語(yǔ)言,程序開(kāi)發(fā)的效率顯著提高,并產(chǎn)生了成熟的操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)。在后期,由于軟件規(guī)模不斷擴(kuò)大,復(fù)雜度大幅提高,產(chǎn)生了“軟件危機(jī)”,也出現(xiàn)了有針對(duì)性地進(jìn)行軟件開(kāi)發(fā)方法的理論研究和實(shí)踐。第三階段(20世紀(jì)70年代至今)。軟件應(yīng)用領(lǐng)域和規(guī)模持續(xù)擴(kuò)大,大型軟件的開(kāi)發(fā)成為一項(xiàng)工程性的任務(wù),由此產(chǎn)生了“軟件工程”并得到長(zhǎng)足發(fā)展。同時(shí)軟件開(kāi)發(fā)技術(shù)繼續(xù)發(fā)展,并逐步轉(zhuǎn)向智能化、自動(dòng)化、集成化、并行化和開(kāi)發(fā)化。
2.操作系統(tǒng)操作系統(tǒng)(OperatingSystem,簡(jiǎn)稱(chēng)OS)是給計(jì)算機(jī)系統(tǒng)中最重要的系統(tǒng)軟件,它的主要功能是負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)中的硬件資源和軟件資源,提高資源利用率,同時(shí)為計(jì)算機(jī)用戶(hù)提供各種強(qiáng)有力的使用功能和方便的服務(wù)界面。只有在操作系統(tǒng)的支持下,計(jì)算機(jī)系統(tǒng)才能正常運(yùn)行,如果操作系統(tǒng)遭到破壞,計(jì)算機(jī)系統(tǒng)就無(wú)法正常工作。
操作系統(tǒng)的功能
操作系統(tǒng)通過(guò)內(nèi)部命令和外部命令提供5中主要功能:任務(wù)管理、存儲(chǔ)管理、文件管理、設(shè)備管理和作業(yè)管理。
任務(wù)管理
操作系統(tǒng)提供的任務(wù)管理有三種不同的方式:進(jìn)程管理、分時(shí)和并行處理。
(1)進(jìn)程管理
進(jìn)程是CPU調(diào)度和資源分配的基本單位,它可以反映程序的一次執(zhí)行過(guò)程。進(jìn)程管理主要是對(duì)處理機(jī)資源進(jìn)行管理。由于CPU是計(jì)算機(jī)系統(tǒng)中最寶貴的資源,為了提高CPU的利用率,一般采用多進(jìn)程技術(shù)。操作系統(tǒng)的進(jìn)程管理就是按照一定的調(diào)度策略,協(xié)調(diào)多道程序之間的關(guān)系,解決CPU資源的分配和回收等問(wèn)題,以使CPU資源得到最充分的利用。
(2)分時(shí)
在較大的計(jì)算機(jī)系統(tǒng)中,如有多個(gè)用戶(hù)同時(shí)執(zhí)行存取操作,操作系統(tǒng)就會(huì)采用分時(shí)的策略進(jìn)行處理。分時(shí)的基本思想是把CPU時(shí)間劃分為多個(gè)“時(shí)間片”,輪流為多個(gè)用戶(hù)服務(wù)。如果一個(gè)程序在一個(gè)時(shí)間片內(nèi)沒(méi)有完成,它將掛起,到下一次輪到時(shí)間片時(shí)繼續(xù)處理。由于CPU速度很快,用戶(hù)并不會(huì)感覺(jué)到與他人分享CPU,好像個(gè)人獨(dú)占CPU一樣。
(3)并行處理
在某些多處理器系統(tǒng)中,操作系統(tǒng)可以把沒(méi)有關(guān)聯(lián)的多個(gè)任務(wù)分配給多個(gè)處理器同時(shí)運(yùn)行,以提高處理效率。顯然,實(shí)現(xiàn)并行處理需要操作系統(tǒng)合理的分析和調(diào)度。
存儲(chǔ)管理
存儲(chǔ)管理的基本任務(wù)是為程序運(yùn)行提供良好的環(huán)境,方便用戶(hù)使用存儲(chǔ)器,提高存儲(chǔ)器的利用率。盡管內(nèi)存容量不斷增加,但是受到價(jià)格、CPU尋址能力等因素的制約,內(nèi)存的容量終究是有限的。尤其是多個(gè)程序共享內(nèi)存時(shí),就需合理分配它們的內(nèi)存空間,既要互不干擾,又要實(shí)現(xiàn)必要的共享。內(nèi)存不夠時(shí),還要實(shí)現(xiàn)內(nèi)存的擴(kuò)充。操作系統(tǒng)就是通過(guò)存儲(chǔ)管理來(lái)完成內(nèi)存分配、內(nèi)存保護(hù)、內(nèi)存回收、地址映射和內(nèi)存擴(kuò)充等功能。文件管理
計(jì)算機(jī)中的信息多以文件的形式存放在外存儲(chǔ)器中,需要時(shí)才載入內(nèi)存。文件管理的任務(wù)就是有效支持文件的存儲(chǔ)、檢索、修改等操作,解決文件的共享、保密和保護(hù)功能,使用戶(hù)能夠安全、方便地訪問(wèn)他所需要的文件。
設(shè)備管理
設(shè)備管理是指計(jì)算機(jī)系統(tǒng)中除了CPU和內(nèi)存以外的所有I/O設(shè)備的管理。從內(nèi)部看,設(shè)備管理就是按照一定的算法、策略,分配、管理I/O設(shè)備,以保證設(shè)備高效地、有條不紊地工作。從外部看,設(shè)備管理要提供良好的操作界面,使用戶(hù)在不涉及設(shè)備物理特性的前提下方便、靈活地使用這些設(shè)備。
作業(yè)管理
作業(yè)是指用戶(hù)在一次計(jì)算或一個(gè)事務(wù)處理中,要求計(jì)算機(jī)系統(tǒng)所做全部工作的集合,即計(jì)算機(jī)完成的某項(xiàng)任務(wù)。作業(yè)管理包括作業(yè)調(diào)度和作業(yè)控制,目的就是為用戶(hù)使用系統(tǒng)提供良好的環(huán)境,讓用戶(hù)有效組織作業(yè)的工作流程。
操作系統(tǒng)的類(lèi)型
多道批處理系統(tǒng)
在多道批處理系統(tǒng)控制下,用戶(hù)作業(yè)逐批地進(jìn)入、處理、離開(kāi)系統(tǒng)。作業(yè)與作業(yè)之間的過(guò)渡不需要用戶(hù)的干預(yù)。多道即在主存內(nèi)同時(shí)有幾道相互獨(dú)立的作業(yè)在單CPU情況下交替地運(yùn)行或在多CPU情況下并行運(yùn)行。批處理系統(tǒng)的優(yōu)點(diǎn)在于提高了系統(tǒng)資源的利用率和作業(yè)的吞吐量,缺點(diǎn)是無(wú)交互性。這類(lèi)操作系統(tǒng)主要裝配在用于科學(xué)計(jì)算的大型計(jì)算機(jī)上。
分時(shí)系統(tǒng)
分時(shí)系統(tǒng)一般連接多個(gè)終端,用戶(hù)通過(guò)相應(yīng)的終端使用計(jì)算機(jī)。它為每個(gè)用戶(hù)提供適當(dāng)大小的時(shí)間片,采用輪轉(zhuǎn)的方法為用戶(hù)服務(wù)。若能保證足夠快的響應(yīng)時(shí)間并提供交互會(huì)話功能,則每個(gè)用戶(hù)都感覺(jué)到好像獨(dú)占1臺(tái)計(jì)算機(jī)一樣。在分時(shí)系統(tǒng)中必須注意響應(yīng)時(shí)間的改善。減少用戶(hù)數(shù)目和減少時(shí)間片的大小無(wú)疑會(huì)改善響應(yīng)時(shí)間,但這會(huì)損害系統(tǒng)的性能。所以往往采用多種技術(shù)減少內(nèi)外存之間的對(duì)換信息量,從而使CPU有更多的時(shí)間去處理終端用戶(hù)作業(yè),縮短響應(yīng)時(shí)間。
實(shí)時(shí)系統(tǒng)
實(shí)時(shí)操作系統(tǒng)能夠及時(shí)響應(yīng)隨機(jī)發(fā)生的外部事件,并在規(guī)定的時(shí)間范圍內(nèi)完成事件的處理。實(shí)時(shí)系統(tǒng)廣泛運(yùn)用于軍事指揮、武器系統(tǒng)、電力系統(tǒng)、證券系統(tǒng)等。
實(shí)時(shí)系統(tǒng)分為兩類(lèi),一類(lèi)是實(shí)時(shí)控制系統(tǒng),主要用于自動(dòng)控制系統(tǒng),比如軍事、制造、電力等。另一類(lèi)是實(shí)時(shí)信息處理系統(tǒng),主要用于情報(bào)檢索、證券交易等領(lǐng)域。
網(wǎng)絡(luò)操作系統(tǒng)
計(jì)算機(jī)網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)配置各自的操作系統(tǒng),而網(wǎng)絡(luò)操作系統(tǒng)則把它們有機(jī)地聯(lián)系起來(lái),用統(tǒng)一的方法管理整個(gè)網(wǎng)絡(luò)中的共享資源。因此,網(wǎng)絡(luò)操作系統(tǒng)除了具備存儲(chǔ)管理、處理機(jī)管理、設(shè)備管理、信息管理和作業(yè)管理外,還具有高效可靠的網(wǎng)絡(luò)通信能力和多種網(wǎng)絡(luò)服務(wù)能力。網(wǎng)絡(luò)用戶(hù)只有通過(guò)網(wǎng)絡(luò)操作系統(tǒng)才能享受網(wǎng)絡(luò)所提供的各種服務(wù)。
常見(jiàn)的操作系統(tǒng)
Windows操作系統(tǒng)UNIX操作系統(tǒng)
LINUX操作系統(tǒng)
Windows操作系統(tǒng)
Windows系列操作系統(tǒng)由美國(guó)微軟公司開(kāi)發(fā),是目前應(yīng)用最廣泛的操作系統(tǒng)。它的特點(diǎn)是:1、界面圖形化:使計(jì)算機(jī)操作生動(dòng)有趣,所見(jiàn)即所得。2、多任務(wù):允許多個(gè)應(yīng)用程序同時(shí)運(yùn)行。3、良好的網(wǎng)絡(luò)支持:內(nèi)置TCP/IP協(xié)議,輕松上網(wǎng),同時(shí)對(duì)局域網(wǎng)支持良好。4、多媒體功能:提供了出色的多媒體功能支持。5、可以支持幾乎所有常用硬件,即插即用的技術(shù)簡(jiǎn)化了硬件安裝。6、眾多應(yīng)用程序支持:有大量程序員基于Windows系統(tǒng)進(jìn)行軟件開(kāi)發(fā),這些軟件的應(yīng)用領(lǐng)域廣泛,幾乎涉及所有的行業(yè)。但是Windows也存在大量不足,Windows體積龐大,是一個(gè)非常脆弱的系統(tǒng),自身的修復(fù)能力比較弱,更主要的是Windows系統(tǒng)漏洞百出,這些漏洞為病毒和黑客對(duì)系統(tǒng)的非法入侵和攻擊創(chuàng)造了機(jī)會(huì)。
UNIX操作系統(tǒng)
UNIX操作系統(tǒng)是貝爾實(shí)驗(yàn)室于六十年代末用C語(yǔ)言研制開(kāi)發(fā)的,是一個(gè)多用戶(hù)多任務(wù)的分時(shí)系統(tǒng)。經(jīng)過(guò)幾十年的發(fā)展,已經(jīng)成為國(guó)際上目前使用最廣泛、影響最大的操作系統(tǒng)之一。從大型機(jī)、小型機(jī)到工作站甚至微機(jī)都可以看到它的身影,很多操作系統(tǒng)都是它的變體,比如惠普公司的HP-UX、SUN公司的Solaris、IBM公司的AIX等,也包括著名的LINUX。UNIX具有結(jié)構(gòu)緊湊、功能強(qiáng)、效率高、使用方便和可移植性好等優(yōu)點(diǎn),尤其在網(wǎng)絡(luò)功能方面,UNIX表現(xiàn)穩(wěn)定,網(wǎng)絡(luò)性能好,負(fù)載吞吐力大,易于實(shí)現(xiàn)高級(jí)網(wǎng)絡(luò)功能配置,是Internet中服務(wù)器的首選操作系統(tǒng)。相對(duì)Windows2000,UNIX的用戶(hù)界面略有不足,操作設(shè)置不便。
LINUX操作系統(tǒng)
LINUX是由芬蘭赫爾辛基大學(xué)的一個(gè)大學(xué)生LinusB.Torvolds在1991年首次編寫(xiě)的,Linux是一個(gè)免費(fèi)的操作系統(tǒng),用戶(hù)可以免費(fèi)獲得其源代碼,并能夠隨意修改。LINUX是一種類(lèi)Unix系統(tǒng),具有許多Unix系統(tǒng)的功能和特點(diǎn)。
Linux憑借出色的性能和完全免費(fèi)的特性,受到越來(lái)越多用戶(hù)的關(guān)注,在短時(shí)間內(nèi)異軍突起,對(duì)Windows構(gòu)成了強(qiáng)有力的威脅,并被寄予突破Windows壟斷地位的厚望。但是,微軟的Windows系統(tǒng)仍然占據(jù)個(gè)人電腦的主導(dǎo)地位,絕大多數(shù)的軟件公司都支持Windows。這使得Windows平臺(tái)的應(yīng)用軟件應(yīng)有盡有。相對(duì)而言,Linux最大的缺憾在于應(yīng)用軟件的不足,同時(shí)硬件廠商對(duì)Linux的支持也稍稍落后于Windows。但隨著Linux的發(fā)展,越來(lái)越多的軟件廠商會(huì)支持Linux,它應(yīng)用的范圍也會(huì)越來(lái)越廣。
3.程序設(shè)計(jì)語(yǔ)言及其處理程序程序設(shè)計(jì)語(yǔ)言分類(lèi)程序設(shè)計(jì)語(yǔ)言按其級(jí)別可以分為機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言三大類(lèi)。機(jī)器語(yǔ)言
機(jī)器語(yǔ)言采用二進(jìn)制代碼形式,是計(jì)算機(jī)唯一可以直接識(shí)別、直接運(yùn)行的語(yǔ)言。機(jī)器語(yǔ)言依賴(lài)于計(jì)算機(jī)的指令系統(tǒng),因此不同型號(hào)的計(jì)算機(jī),其機(jī)器語(yǔ)言是不同的,存在互不兼容的問(wèn)題。機(jī)器語(yǔ)言的執(zhí)行效率高,但是不易記憶和理解,編寫(xiě)的程序難以修改和維護(hù),所以很少有直接用機(jī)器語(yǔ)言編寫(xiě)程序。匯編語(yǔ)言
為了提高編程效率,人們?cè)O(shè)計(jì)了匯編語(yǔ)言。匯編語(yǔ)言用助記符來(lái)代替機(jī)器語(yǔ)言的操作數(shù)、操作碼,比如ADD表示加法。相對(duì)機(jī)器語(yǔ)言,匯編語(yǔ)言更加直觀,容易記憶。但是匯編語(yǔ)言和機(jī)器語(yǔ)言存在對(duì)應(yīng)關(guān)系,所以仍然依賴(lài)于計(jì)算機(jī)的指令系統(tǒng),兼容性問(wèn)題依然存在。同時(shí)匯編程序代碼的結(jié)構(gòu)不清晰,仍然較難理解。
高級(jí)語(yǔ)言
為了進(jìn)一步提高效率,人們?cè)O(shè)計(jì)了接近自然語(yǔ)言的程序設(shè)計(jì)語(yǔ)言,這就是高級(jí)語(yǔ)言,因?yàn)樗梢悦枋鼍唧w的算法,又稱(chēng)算法語(yǔ)言。用高級(jí)語(yǔ)言編寫(xiě)代碼接近于解決問(wèn)題的表示方法,具有通用性,一定程度上與機(jī)器無(wú)關(guān)。由此可見(jiàn),高級(jí)語(yǔ)言易學(xué)、易用、易維護(hù),對(duì)軟件開(kāi)發(fā)的效率和普及都起到了重要的作用。高級(jí)語(yǔ)言盡管接近于自然語(yǔ)言,但相互之間仍有較大差距,每種語(yǔ)言都有極為嚴(yán)格的語(yǔ)法規(guī)范,對(duì)采用的符號(hào)、語(yǔ)句格式等都有專(zhuān)門(mén)的規(guī)定。
常見(jiàn)的高級(jí)語(yǔ)言有C、BASIC、Pascal、C++、C#、Java等。還有一類(lèi)語(yǔ)言,本質(zhì)上仍然是高級(jí)語(yǔ)言,但在語(yǔ)句格式等方面的限制比較少,顯得更加“智能化”如SQL(結(jié)構(gòu)化查詢(xún)語(yǔ)言)等。
語(yǔ)言處理程序
除了機(jī)器語(yǔ)言之外,任何其它語(yǔ)言編寫(xiě)的程序都不能直接在計(jì)算機(jī)上執(zhí)行,需要先對(duì)它們進(jìn)行適當(dāng)?shù)淖儞Q,而這個(gè)任務(wù)就是由語(yǔ)言處理程序承擔(dān)。語(yǔ)言處理程序通常都包含一個(gè)翻譯程序,它把一種語(yǔ)言的程序翻譯成等價(jià)的另一種語(yǔ)言的程序。被翻譯的語(yǔ)言和程序稱(chēng)為源語(yǔ)言和源程序,翻譯生成的語(yǔ)言和程序則稱(chēng)為目標(biāo)語(yǔ)言和目標(biāo)程序。按照不同的翻譯處理方法,翻譯程序分為以下三類(lèi):(1)匯編程序:從匯編語(yǔ)言到機(jī)器語(yǔ)言的翻譯程序。(2)解釋程序:將源程序中的語(yǔ)句逐條翻譯,并立即執(zhí)行這條語(yǔ)句的翻譯程序。(3)編譯程序:從高級(jí)語(yǔ)言到機(jī)器語(yǔ)言的翻譯程序。
解釋程序
解釋程序?qū)υ闯绦虻恼Z(yǔ)句從頭到尾逐句掃描,逐句翻譯,逐句執(zhí)行。解釋程序?qū)崿F(xiàn)簡(jiǎn)單,但是運(yùn)行效率比較低,對(duì)反復(fù)執(zhí)行的語(yǔ)句,它也同樣要反復(fù)翻譯、解釋和執(zhí)行。
編譯程序
編譯程序?qū)υ闯绦蜻M(jìn)行一次或幾次掃描后,最終形成可以直接執(zhí)行的目標(biāo)代碼。編譯程序?qū)崿F(xiàn)的過(guò)程比較復(fù)雜,但是編譯產(chǎn)生的目標(biāo)代碼可以重復(fù)執(zhí)行,不需要重新編譯,因此,執(zhí)行效率更高、更快。
程序的整個(gè)處理過(guò)程
除了翻譯程序外,語(yǔ)言處理系統(tǒng)通常還包括正文編輯程序、連接程序和裝入程序。其中正文編輯程序用于建立和修改源程序文件,而連接程序能將多個(gè)編譯或匯編過(guò)的目標(biāo)程序和庫(kù)文件進(jìn)行組合,裝入程序則負(fù)責(zé)將連接好的可執(zhí)行程序裝入內(nèi)存并啟動(dòng)執(zhí)行。圖1.32顯示了編譯型高級(jí)語(yǔ)言程序的整個(gè)處理過(guò)程。
圖1.32程序的整個(gè)處理過(guò)程
(1)C語(yǔ)言和C++語(yǔ)言
C語(yǔ)言是1972年至1973年間由AT&T公司Bell實(shí)驗(yàn)室的D.M.Ritchie在BCPL語(yǔ)言基礎(chǔ)上設(shè)計(jì)而成的,著名的UNIX操作系統(tǒng)就是用C語(yǔ)言編寫(xiě)的。C語(yǔ)言特點(diǎn)包括:語(yǔ)言與運(yùn)行支撐環(huán)境分離、可移植性好、語(yǔ)言規(guī)模小且具有指針類(lèi)型等。C語(yǔ)言本身簡(jiǎn)潔,高度靈活,程序運(yùn)行效率高。此外,C語(yǔ)言還有不少操作是直接對(duì)應(yīng)實(shí)際機(jī)器所執(zhí)行的動(dòng)作,在許多場(chǎng)合可以代替匯編語(yǔ)言。是當(dāng)前使用最為廣泛的通用程序設(shè)計(jì)語(yǔ)言之一。在C的基礎(chǔ)上,一九八三年由貝爾實(shí)驗(yàn)室又推出了C++,它是由BjarneStrou-strup設(shè)計(jì)的。
C++進(jìn)一步擴(kuò)充和完善了C語(yǔ)言,使之成為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。C++目前流行的最新版本是BorlandC++、SymantecC++和MicrosoftVisualC++。(2)Java語(yǔ)言
Java是一個(gè)由Sun公司開(kāi)發(fā)而成的新一代完全面向?qū)ο蟮木幊陶Z(yǔ)言。它的最大特點(diǎn)是可以支持跨平臺(tái)開(kāi)發(fā),使用它可在各式各樣的,不同種類(lèi)的機(jī)器和操作平臺(tái)上開(kāi)發(fā)軟件。由于Java基本上采用的是C語(yǔ)言的語(yǔ)法,所以學(xué)過(guò)C語(yǔ)言的人,再學(xué)Java會(huì)相對(duì)容易一些。
高級(jí)語(yǔ)言的控制結(jié)構(gòu)
高級(jí)語(yǔ)言千差萬(wàn)別,但是其基本成分可以歸納為三種:(1)數(shù)據(jù)成分,用來(lái)描述程序處理的數(shù)據(jù)對(duì)象;(2)運(yùn)算類(lèi)型,用來(lái)說(shuō)明程序所包含的運(yùn)算;(3)控制結(jié)構(gòu),用來(lái)描述程序中語(yǔ)句的執(zhí)行順序。下面就控制結(jié)構(gòu)作一簡(jiǎn)單介紹。
從理論上已經(jīng)證明,求解任何問(wèn)題的程序框架都可以用順序、選擇、循環(huán)這三種控制結(jié)構(gòu)的組合來(lái)描述。
(1)順序結(jié)構(gòu)
順序結(jié)構(gòu)就是按照語(yǔ)句的書(shū)寫(xiě)順序依次執(zhí)行的控制結(jié)構(gòu),比如下一段C程序代碼,先執(zhí)行A語(yǔ)句,接著執(zhí)行B語(yǔ)句如圖1.33所示: {
A; B; }圖1.33順序結(jié)構(gòu)
(2)選擇結(jié)構(gòu)
選擇結(jié)構(gòu)就是根據(jù)給定的條件決定某些語(yǔ)句執(zhí)行或不執(zhí)行的控制結(jié)構(gòu),典型的一段C程序代碼如下: {
if P A; Else B; }
在執(zhí)行過(guò)程中,首先判斷條件P是否成立,如果成立,執(zhí)行代碼A,否則執(zhí)行代碼B(如圖1.34所示)。選擇結(jié)構(gòu)可以嵌套,因此可以實(shí)現(xiàn)二選一或多選一的功能。
圖1.34選擇結(jié)構(gòu)
(3)循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)為重復(fù)執(zhí)行某一段程序代碼提供了控制手段,循環(huán)結(jié)構(gòu)有多種形式,如while型循環(huán)結(jié)構(gòu),Until型循環(huán)結(jié)構(gòu)等。C語(yǔ)言中While型循環(huán)的一般形式為:
WhileP{A;}存儲(chǔ)結(jié)構(gòu)
我們研究數(shù)據(jù)結(jié)構(gòu)的目的是為了在計(jì)算機(jī)中實(shí)現(xiàn)對(duì)它的操作,為此還需要研究如何在計(jì)算機(jī)中表示一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的標(biāo)識(shí)(又稱(chēng)映像)稱(chēng)為數(shù)據(jù)的物理結(jié)構(gòu),或稱(chēng)存儲(chǔ)結(jié)構(gòu)。它所研究的是數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)方法,包括數(shù)據(jù)結(jié)構(gòu)中元素的表示及元素間關(guān)系的表示。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)可采用順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)的方法。順序存儲(chǔ)方法是把邏輯上相鄰的元素存儲(chǔ)在物理位置相鄰的存儲(chǔ)單元中,由此得到的存儲(chǔ)表示稱(chēng)為順序存儲(chǔ)結(jié)構(gòu)(圖1.37)。順序存儲(chǔ)結(jié)構(gòu)是一種最基本的存儲(chǔ)表示方法,通常借助于程序設(shè)計(jì)語(yǔ)言中的數(shù)組來(lái)實(shí)現(xiàn)。
圖1.37順序存儲(chǔ)結(jié)構(gòu)示意圖
圖1.38鏈?zhǔn)酱鎯?chǔ)
鏈?zhǔn)酱鎯?chǔ)方法對(duì)邏輯上相鄰的元素不要求其物理位置相鄰,元素間的邏輯關(guān)系通過(guò)附設(shè)的指針字段來(lái)表示,由此得到的存儲(chǔ)表示稱(chēng)為鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(圖1.38),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)通常借助于程序設(shè)計(jì)語(yǔ)言中的指針類(lèi)型來(lái)實(shí)現(xiàn)。
除了通常采用的順序存儲(chǔ)方法和鏈?zhǔn)酱鎯?chǔ)方法外,有時(shí)為了查找的方便還采用索引存儲(chǔ)方法和散列存儲(chǔ)方法。
5.軟件工程軟件危機(jī)
軟件工程的方法要點(diǎn)
軟件工程的傳統(tǒng)途徑
面向?qū)ο筌浖こ?/p>
軟件危機(jī)
軟件是程序再加上程序?qū)崿F(xiàn)和系統(tǒng)維護(hù)時(shí)所必需的文檔的總稱(chēng)。計(jì)算機(jī)的應(yīng)用領(lǐng)域越來(lái)越廣,對(duì)軟件的要求也越來(lái)越高。由于軟件開(kāi)發(fā)本身又是一個(gè)“思考”的過(guò)程,很難進(jìn)行管理,開(kāi)發(fā)人員以“手工作坊”的開(kāi)發(fā)方式來(lái)開(kāi)發(fā)軟件,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)和規(guī)范可以遵循,導(dǎo)致了軟件開(kāi)發(fā)中各種問(wèn)題的出現(xiàn)或失?。寒a(chǎn)品錯(cuò)誤百出,拖延開(kāi)發(fā)進(jìn)度,大大超出預(yù)算等。軟件開(kāi)發(fā)的高成本與軟件產(chǎn)品的低質(zhì)量之間的尖銳矛盾,終于導(dǎo)致了軟件危機(jī)的發(fā)生。軟件危機(jī)產(chǎn)生的主要原因有三個(gè):軟件危機(jī)產(chǎn)生的主要原因(1)對(duì)軟件需求分析的重要性認(rèn)識(shí)不夠。忽略用戶(hù)的應(yīng)用需求。(2)軟件開(kāi)發(fā)過(guò)程是開(kāi)發(fā)人員的思考過(guò)程,對(duì)這樣的過(guò)程進(jìn)行質(zhì)量管理和進(jìn)度控制有很大的難度。(3)人們處理問(wèn)題的效率隨著問(wèn)題復(fù)雜度的增加而下降,開(kāi)發(fā)軟件所需時(shí)間和費(fèi)用則隨之增加。軟件危機(jī)的發(fā)生,一方面與軟件本身的特點(diǎn)有關(guān),另一方面也與軟件開(kāi)發(fā)、維護(hù)方法不正確有關(guān),在這樣的背景之下,軟件工程產(chǎn)生了。軟件工程是運(yùn)用工程、數(shù)學(xué)、計(jì)算機(jī)等學(xué)科的概念、方法和原理來(lái)指導(dǎo)軟件開(kāi)發(fā)、管理和維護(hù)的一門(mén)學(xué)科。軟件工程的方法要點(diǎn)
軟件工程學(xué)的基本目標(biāo)在于研究一套科學(xué)的工程方法,設(shè)計(jì)一套方便的工具系統(tǒng),以達(dá)到投資少、效率高、質(zhì)量?jī)?yōu)的目的。(1)軟件開(kāi)發(fā)技術(shù)。對(duì)開(kāi)發(fā)的策略、原則、步驟和文檔做出規(guī)定,使軟件開(kāi)發(fā)規(guī)范化和工程化,克服手工式方式分析和設(shè)計(jì)軟件的隨意性。(2)軟件工程管理。對(duì)軟件生產(chǎn)中的重要環(huán)節(jié),要按預(yù)先制定的計(jì)劃、進(jìn)度和預(yù)算執(zhí)行,以實(shí)現(xiàn)預(yù)期的經(jīng)濟(jì)效益和社會(huì)效益。(3)軟件開(kāi)發(fā)方法。主要有結(jié)構(gòu)化生命周期方法、原型法以及面向?qū)ο蟮姆治鲈O(shè)計(jì)方法等。(4)軟件開(kāi)發(fā)工具。軟件開(kāi)發(fā)工具的發(fā)展促進(jìn)了軟件開(kāi)發(fā)的高質(zhì)量和高速度。它可支持軟件開(kāi)發(fā)生命周期的各個(gè)階段和各項(xiàng)任務(wù)的完成。
軟件工程的傳統(tǒng)途徑
軟件工程的傳統(tǒng)途徑是生命周期方法學(xué)。所謂軟件的生命周期,是指一個(gè)軟件從問(wèn)題提出到最終被廢棄的時(shí)間間隔。生命周期方法學(xué)即從時(shí)間的角度對(duì)軟件開(kāi)發(fā)和維護(hù)的復(fù)雜問(wèn)題進(jìn)行分解,把軟件生命周期劃分為若干個(gè)階段,每個(gè)階段都有相對(duì)獨(dú)立的任務(wù),每個(gè)階段任務(wù)的結(jié)束就是下一階段的開(kāi)始。但是,在每個(gè)階段結(jié)束之前,都需要按照標(biāo)準(zhǔn)對(duì)這個(gè)階段的工作進(jìn)行嚴(yán)格的技術(shù)審查和管理審查,只有審查通過(guò)后,這個(gè)階段的任務(wù)才算完成,否則必須返工。生命周期法一般把軟件生命周期劃分為軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)三個(gè)時(shí)期,其中軟件定義進(jìn)一步劃分為問(wèn)題定義、可行性研究、需求分析三個(gè)階段,軟件開(kāi)發(fā)通常由總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試、綜合測(cè)試四個(gè)階段組成(如圖1.40)。圖1.40軟件生命周期面向?qū)ο筌浖こ?/p>
傳統(tǒng)的生命周期方法學(xué)取得了一定的成功,但是它仍然有不足之處。其中一個(gè)最重要問(wèn)題是它在每個(gè)階段所采用的表示法都是相互獨(dú)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流行業(yè)安全防范教育方案
- 2024年業(yè)務(wù)外包合同標(biāo)的及服務(wù)內(nèi)容
- 家長(zhǎng)參與雙減工作方案
- 2024年個(gè)人車(chē)輛借款質(zhì)押協(xié)議
- 建筑材料采購(gòu)制度
- 床頭末端裝置相關(guān)行業(yè)投資方案
- 職業(yè)病防治專(zhuān)項(xiàng)集體合同正式文本
- 2024年城市公共交通設(shè)施建設(shè)合同協(xié)議
- 2024年國(guó)際體育賽事轉(zhuǎn)播權(quán)合同
- 2(2024版)企業(yè)融資借款合同及擔(dān)保協(xié)議
- 2023-2024學(xué)年浙江“七彩陽(yáng)光”新高考研究聯(lián)盟高一上學(xué)期期中聯(lián)考生物試題(解析版)
- 機(jī)械設(shè)備維修保養(yǎng)合同范本2024年
- 2024年江蘇省南京市國(guó)土資源信息中心招聘2人(高頻重點(diǎn)提升專(zhuān)題訓(xùn)練)共500題附帶答案詳解
- 六年級(jí)上冊(cè)道德與法治教案表格版
- 【專(zhuān)家共識(shí)】胎兒生長(zhǎng)受限專(zhuān)家共識(shí)(2019版)-完整版
- 公文寫(xiě)作智慧樹(shù)知到期末考試答案章節(jié)答案2024年廣州大學(xué)
- 人教版五年級(jí)數(shù)學(xué)上冊(cè)第一單元《小數(shù)乘法》(大單元教學(xué)設(shè)計(jì))
- 家庭約法三章合同
- 2024新老物業(yè)移交協(xié)議
- 在線網(wǎng)課知道智慧《電路(1)(山大)》單元測(cè)試考核答案
- 不履行合同義務(wù)催告函范文
評(píng)論
0/150
提交評(píng)論