軟件技術(shù),緒論_第1頁
軟件技術(shù),緒論_第2頁
軟件技術(shù),緒論_第3頁
軟件技術(shù),緒論_第4頁
軟件技術(shù),緒論_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟件技術(shù)課程學(xué)習(xí)簡介一、課程理論學(xué)習(xí)內(nèi)容1VB程序設(shè)計語言2數(shù)據(jù)庫原理3VB數(shù)據(jù)庫設(shè)計4網(wǎng)絡(luò)編程基礎(chǔ),補(bǔ)充內(nèi)容ASP技術(shù)二、課程實驗學(xué)習(xí)內(nèi)容1要求掌握科研課題開題報告的一般寫作方法2完成一個微小型的微機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計。課題按照小組為單位進(jìn)行,每個課題組13名同學(xué)。3學(xué)習(xí)科研課題結(jié)題報告的一般寫作方法軟件技術(shù)課程學(xué)習(xí)簡介三、課程理論學(xué)習(xí)要求 VB程序設(shè)計語言、數(shù)據(jù)庫原理、VB數(shù)據(jù)庫設(shè)計、網(wǎng)絡(luò)編程基礎(chǔ)各章的基本概念和基本操作方法。 考核方式:機(jī)考四、課程實驗學(xué)習(xí)要求1學(xué)習(xí)科研課題開題報告的一般寫作方法,開題報告每個課題小組寫一份。2學(xué)習(xí)一個在可視化軟件平臺下,設(shè)計一個微小型的微機(jī)應(yīng)用系統(tǒng)。3學(xué)

2、習(xí)科研課題結(jié)題報告的一般寫作方法,結(jié)題報告每個同學(xué)寫一份。軟件技術(shù)課程學(xué)習(xí)簡介考核內(nèi)容:檢查一個微小型的微機(jī)應(yīng)用系統(tǒng)軟件設(shè)計的完成情況。1評價標(biāo)準(zhǔn)創(chuàng)新性、合理性(5)難度、復(fù)雜性(15)完整性(20)完成情況(20)界面可操作性(20)開題報告和結(jié)題報告(20) 軟件技術(shù)課程學(xué)習(xí)簡介考核內(nèi)容:檢查一個微小型的微機(jī)應(yīng)用系統(tǒng)軟件設(shè)計的完成情況。2考核方法為了最終成績的公平性,由課題小組組長組成的評議小組,給出一個平時成績。每次實驗課,由實驗老師檢查進(jìn)度,并進(jìn)行記錄。課題完成答辯,每個同學(xué)當(dāng)堂演示你完成的內(nèi)容檢查內(nèi)容,并對于你所使用平臺工具的基本技術(shù)理論、課題中使用技術(shù),以及功能和性能等方面的問題進(jìn)

3、行提問。第1章 概論11 程序設(shè)計語言12 程序的基本概念13 軟件的基本概念14 應(yīng)用系統(tǒng)軟件的開發(fā) 11 程序設(shè)計語言 程序設(shè)計語言的分類 程序設(shè)計語言可以從不同的角度進(jìn)行分類。 從發(fā)展過程分,第一代語言(機(jī)器語言)、第二代語言(匯編語言)、第三代語言(高級語言)、第四代與第五代計算機(jī)語言(可視化、面向?qū)ο?、網(wǎng)絡(luò)) 從應(yīng)用范圍來分,分為通用語言與專用語言;再可細(xì)分為系統(tǒng)程序設(shè)計語言、科學(xué)計算語言、事務(wù)處理語言、實時控制語言、腳本語言、教學(xué)用語言以及用于解決非確定性問題的語言等。 從程序設(shè)計方法上來分,分為結(jié)構(gòu)化語言、模塊化語言與面向?qū)ο笳Z言。 113 程序設(shè)計語言的評價標(biāo)準(zhǔn)程序設(shè)計語言7種

4、基本評價標(biāo)準(zhǔn): (1)用戶界面好,操作簡便; (2)對硬件、軟件環(huán)境要求低; (3)對硬件資源利用的程度高; (4)代碼質(zhì)量高,目標(biāo)程序運行速度快,可靠性高,結(jié)構(gòu)化性能高,可讀性好; (5)應(yīng)用范圍廣泛; (6)調(diào)用其它軟件容易; (7)自身發(fā)展快。如果一種程序設(shè)計語言,能在上述7個方面都有較高的得分,那它就是一種比較理想的語言。 114程序設(shè)計語言的選擇標(biāo)準(zhǔn)開發(fā)軟件時的程序設(shè)計語言4個選擇標(biāo)準(zhǔn):1)應(yīng)用范圍 各種程序設(shè)計語言都有自己的適用范圍。在科學(xué)計算領(lǐng)域,F(xiàn)ORTRAN常常是首選語言。在事務(wù)處理方面,Visual Basic語言是較理想的選擇在實時處理方面,選擇匯編語言及C語言比較合適。

5、在開發(fā)系統(tǒng)軟件方面,可選擇Visual C+、Visual J+、Borland C+、Visual Basic、JBuilder、Delphi及C+ Builder等語言。如果開發(fā)的軟件中含有大量的數(shù)據(jù)操作,則可采用SQL、Visual Foxpro等數(shù)據(jù)庫語言。在網(wǎng)絡(luò)開發(fā)中, Web服務(wù)器軟件可以選擇Microsoft公司的IIS、Apache組織開發(fā)的Apache服務(wù)器等。2)算法及計算復(fù)雜性FORTRAN、Pascal、C、C+等語言都能支持較復(fù)雜的算法與計算。而絕大多數(shù)數(shù)據(jù)庫語言都只能支持較簡單的算法與計算。3)數(shù)據(jù)結(jié)構(gòu)C、C+、Pascal語言都提供了數(shù)組、記錄數(shù)據(jù)結(jié)構(gòu)及帶指針的動

6、態(tài)數(shù)據(jù)結(jié)構(gòu)。它們適合于設(shè)計系統(tǒng)程序以及需要復(fù)雜數(shù)據(jù)結(jié)構(gòu)的應(yīng)用程序。4)效率 有些實時應(yīng)用系統(tǒng)要求具有很快的響應(yīng)速度,可以選擇匯編語言或C語言。有時應(yīng)用系統(tǒng)中只是某一部分要求具有很快的響應(yīng)速度,在這種情況下,可以選用匯編語言來編寫這一部分程序.12 程序的基本概念1. 程序是由程序設(shè)計語言的抽象符號的集合程序設(shè)計語言有面向機(jī)器的匯編語言,以及面向過程和面向?qū)ο蟮母呒壋绦蛟O(shè)計語言。2程序是對數(shù)據(jù)施行算法的過程算法決定了程序的質(zhì)量:同樣的數(shù)據(jù)用不同的算法實現(xiàn),其所需的時空開銷大不相同。要達(dá)到時間和空間性能的最佳,需要遵循一定的算法來編寫程序。在不同情況下需要選用不同算法來達(dá)到效率、質(zhì)量的最佳。面向?qū)?/p>

7、象的程序也需要算法:從對象的角度來看,程序是對對象的行為和狀態(tài)及對象間關(guān)系的描述。在面向?qū)ο蟮某绦蚶?,同樣需要算法,因為,狀態(tài)和屬性是用數(shù)據(jù)表示的,狀態(tài)改變的方法就包含了算法。只是面向?qū)ο笳Z言提供了更高抽象的對象概念。13 軟件的基本概念軟件的定義:計算機(jī)程序、方法、規(guī)則、程序有關(guān)的各種文檔以及在計算機(jī)上運行所必需的數(shù)據(jù)的總稱。軟件不僅是程序,還包括其功能和性能的說明性信息。軟件不僅有功能和性能要求,還有質(zhì)量、成本、交貨期、使用壽命要求。1 軟件質(zhì)量的評價標(biāo)準(zhǔn) 軟件的質(zhì)量10條主要的標(biāo)準(zhǔn)。1)可理解性(Understandablity)一個軟件產(chǎn)品具有可理解性,主要指的是該軟件的用途對用戶來說

8、是十分清楚的。除了軟件的功能之外,軟件各部分之間、各子系統(tǒng)之間的分工,及其相互關(guān)系也應(yīng)該是清楚的。當(dāng)用戶按規(guī)定調(diào)用軟件的某個部分時,軟件應(yīng)能按用戶的要求作出明確的響應(yīng),解決用戶的問題。2)可靠性(Reliablity) 軟件產(chǎn)品的可靠性主要是指在軟件整個生命周期內(nèi),它能否按照設(shè)計的要求,實現(xiàn)所需要的各功能。即軟件設(shè)計的功能是否能正確實現(xiàn),運行中會有多少隱藏的錯誤出現(xiàn),錯誤出現(xiàn)的后果是什么等。3)效率(Efficiency) 軟件產(chǎn)品的效率指的是完成給定功能時所需占用的資源(時間和空間)。在這里,資源主要指的是存儲空間、CPU時間、接口占用等等。4)可維護(hù)性(Maintainablity)軟件產(chǎn)

9、品的可維護(hù)性是指為了滿足新的要求,軟件產(chǎn)品應(yīng)該是很容易修改和維護(hù)的。 5)完整性(Completencess)完整性要求軟件自成體系,即軟件應(yīng)該具備問題處理的全部環(huán)節(jié)(如輸入、編輯、處理、輸出等等)。此外,完整性還要求軟件應(yīng)具有相應(yīng)的容錯能力,即自動排除錯誤和恢復(fù)工作的能力。6)簡明性(concisess) 軟件的簡明性指的是其本身和其表現(xiàn)形式的能見度,使用戶對發(fā)生的事情一目了然,知道是否出了問題,問題出在什么地方,以及如何解決問題;簡明性的另一層含義是指用軟件書寫的程序具有較少的命令行數(shù)。7)可移植性(Portability) 可移植性是指軟件在多種類型的計算機(jī)配置上都能容易而有效地操作。廣

10、義地說,軟件應(yīng)在任何硬件配置與操作系統(tǒng)下都能正常有效地運行。8)可測試性(Testablity)軟件的可測試性是指對該軟件的技術(shù)性能及質(zhì)量是否能夠確定測試的手段和方法。一個可測試性好的軟件,能夠比較容易地對它確定出測試的方法,以便對它的技術(shù)性能作出評價。9)結(jié)構(gòu)性(Structuredness)軟件相互依賴的部分,其結(jié)構(gòu)應(yīng)具有確定的形式。一般所說的結(jié)構(gòu)性指的是模塊化的程度,其編制是否符合結(jié)構(gòu)化和模塊化的原則等。當(dāng)然,在追求高可靠性,高運行效率時可能會使結(jié)構(gòu)性能變差。10)友好性(Friendliness) 一個優(yōu)秀的軟件產(chǎn)品應(yīng)該具有友好的用戶界面。有豐富的操作提示和聯(lián)機(jī)幫助信息,使用戶能夠隨時

11、得到提示和幫助。2 軟件的特征軟件主要包括程序和相關(guān)文檔。從靜態(tài)角度來看,程序是求解客觀問題的邏輯描述,需檢查程序的語法是否符合規(guī)則形式要求;從動態(tài)角度來看,需要驗證程序的所有邏輯流結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否正確。是否能夠完成特定的操作和數(shù)據(jù)處理。軟件的核心是其運行過程中動態(tài)變化的處理過程。軟件生產(chǎn)屬于資金密集和人力密集的行業(yè)。大型軟件開發(fā)投入人力較多,時間長,費用高。 1)軟件是一種邏輯產(chǎn)品軟件和硬件是截然不同的兩種產(chǎn)品和概念。軟件是一種邏輯產(chǎn)品,具有無形性,是腦力勞動的結(jié)晶。軟件產(chǎn)品在設(shè)計和生產(chǎn)過程中,首先要抽象出問題求解的數(shù)學(xué)模型或邏輯模型,再把這些模型轉(zhuǎn)化為求解模型,然后根據(jù)求解模型寫出程序,

12、經(jīng)過調(diào)試和運行程序,最后得到求解的結(jié)果。整個開發(fā)過程是通過人腦進(jìn)行的邏輯思維完成的,其無形化的特征給軟件的開發(fā)、生產(chǎn)過程的管理帶來不便,進(jìn)度難以控制,開發(fā)質(zhì)量難以評價和保證。如果在軟件運行中發(fā)現(xiàn)錯誤,很可能是一個在開發(fā)階段隱藏的、在測試階段沒能檢測出來的故障。因此,軟件維護(hù)通常意味著修改原來的設(shè)計,這就在客觀上決定了軟件維護(hù)是相當(dāng)復(fù)雜的工作。2)軟件產(chǎn)品的質(zhì)量需通過實踐來驗證軟件產(chǎn)品在設(shè)計、編程和實現(xiàn)過程中的各個階段其質(zhì)量難以保證和檢驗,只有在實際問題求解過程中被證實是可行的,才能成為產(chǎn)品。3)軟件產(chǎn)品的成本構(gòu)成具有上升的趨勢在軟件產(chǎn)品生存周期中,其成本構(gòu)成中人力資源占了相當(dāng)大的比重。這其中,

13、設(shè)計和生產(chǎn)只占很小比重,而維護(hù)卻占了很大比重,據(jù)統(tǒng)計數(shù)據(jù)表明,軟件維護(hù)的費用占軟件總費用的55%70%。軟件的費用具有上升的趨勢。這是因為實際問題的復(fù)雜性決定了實用軟件的系統(tǒng)規(guī)模龐大,軟件結(jié)構(gòu)復(fù)雜。例如,龐大系統(tǒng)中各個模塊之間邏輯接口的定義、數(shù)據(jù)結(jié)構(gòu)的描述、所有開發(fā)人員的協(xié)調(diào)和組織等等。 4)軟件產(chǎn)品的故障率隨著軟件維護(hù)而下降在軟件產(chǎn)品生存周期中,軟件在其生命周期的初始階段存在較高的故障率,當(dāng)開發(fā)過程中的錯誤被糾正后,其故障率下降到一定的水平并保持相對穩(wěn)定,直到該軟件被廢棄不用。軟件是只有過時而無“磨損”的商品。所謂過時往往是它所在的硬件環(huán)境升級,導(dǎo)致配套軟件必須做相應(yīng)的升級,否則不能再用;或

14、者同類軟件產(chǎn)品功已更新?lián)Q代,使得本產(chǎn)品不具備競爭力。 3軟件的分類 按軟件功能劃分和按軟件規(guī)模劃分。1)按軟件的功能劃分按功能劃分,軟件通??梢苑譃橄到y(tǒng)軟件和應(yīng)用軟件兩大類。如下圖所示。 軟件系統(tǒng)軟件應(yīng)用軟件操作系統(tǒng)網(wǎng)絡(luò)系統(tǒng)編譯系統(tǒng)工具軟件信息管理實時控制科學(xué)計算人工智能專用領(lǐng)域嵌入式軟件多媒體技術(shù)(1)系統(tǒng)軟件:系統(tǒng)軟件定義:是為計算機(jī)系統(tǒng)提供基本功能服務(wù)的程序集合;系統(tǒng)軟件的功能:支持計算機(jī)系統(tǒng)的正常運行,并實現(xiàn)用戶提交的各種操作。系統(tǒng)軟件的主要特征:與計算機(jī)硬件系統(tǒng)有很強(qiáng)的交互性,能對共享資源進(jìn)行調(diào)度管理,能解決并發(fā)性操作處理中存在的協(xié)調(diào)問題。系統(tǒng)軟件的用戶接口:一般為用戶提供多樣化的外

15、部接口,便于用戶管理和使用系統(tǒng)資源。 系統(tǒng)軟件主要包括:操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、計算機(jī)語言編譯(解釋)系統(tǒng)以及實用工具軟件系統(tǒng)等。操作系統(tǒng)是計算機(jī)軟件系統(tǒng)的核心,是對計算機(jī)系統(tǒng)的全部硬、軟件資源(如CPU、內(nèi)存、硬盤、打印機(jī)等外部設(shè)備和各種軟件)進(jìn)行統(tǒng)一管理、調(diào)度和分配的軟件系統(tǒng),并向上層軟件提供服務(wù),各種應(yīng)用程序都是在操作系統(tǒng)的支持下運行的,用戶是通過操作系統(tǒng)對計算機(jī)進(jìn)行操作的。操作系統(tǒng):包括CPU及進(jìn)程管理、內(nèi)存管理、外設(shè)管理、文件系統(tǒng)管理。網(wǎng)絡(luò)系統(tǒng):承擔(dān)著整個網(wǎng)絡(luò)范圍內(nèi)的任務(wù)管理和資源管理,幫助用戶共享整個網(wǎng)絡(luò)中的信息資源,對網(wǎng)絡(luò)內(nèi)的共享設(shè)備進(jìn)行訪問,并支持網(wǎng)絡(luò)中各個站點之間的通信,使網(wǎng)絡(luò)中

16、各個部分遵守協(xié)議,協(xié)調(diào)一致,有條不紊地工作。程序設(shè)計語言編譯系統(tǒng):把該語言編寫的程序“翻譯”成計算機(jī)能直接執(zhí)行的機(jī)器指令。工具軟件:幫助操作系統(tǒng)更有效地完成計算機(jī)系統(tǒng)的管理和維護(hù),提高工作效率,實現(xiàn)普通用戶無法實現(xiàn)的一些操作。數(shù)據(jù)庫管理系統(tǒng):DBMS是專門用于數(shù)據(jù)庫定義、管理和維護(hù)的系統(tǒng)軟件,是用戶和數(shù)據(jù)庫間的接口。微機(jī)Windows平臺的數(shù)據(jù)庫管理系統(tǒng)有Access、Visual FoxPro、Paradox等,常見的大型關(guān)系數(shù)據(jù)庫系統(tǒng)有 SQL Server、Infomix、Oracale以及Sybase等。隨著多媒體、Internet和WWW 技術(shù)的發(fā)展,現(xiàn)在的大型數(shù)據(jù)庫大都支持多媒體數(shù)

17、據(jù)類型,并以各種方式提供了對WWW的支持,使異地、異構(gòu)機(jī)之間的數(shù)據(jù)共享成為現(xiàn)實。 (2)應(yīng)用軟件是為滿足用戶不同領(lǐng)域和不同問題的應(yīng)用需求而設(shè)計的軟件,可以拓寬計算機(jī)系統(tǒng)的應(yīng)用領(lǐng)域。應(yīng)用軟件主要包括下列幾類軟件: 管理軟件系統(tǒng) (Management Information System,MIS)軟件MIS的核心是數(shù)據(jù)庫管理系統(tǒng) (DataBase Management System,DBMS)。MIS的特點是有一個或多個數(shù)據(jù)庫,存放所有業(yè)務(wù)的信息,而應(yīng)用程序是離散的,如工資、會計、倉庫、生產(chǎn)計劃調(diào)度,彼此只有數(shù)據(jù)聯(lián)系。 實時(Real-time)控制軟件實時控制軟件是對現(xiàn)實世界中隨時(極短時間

18、內(nèi))發(fā)生的事件進(jìn)行監(jiān)測、分析和控制的軟件,其包括從外部環(huán)境收集信息(模擬量數(shù)據(jù)要通過A/D、D/A變換),分析后按應(yīng)用要求轉(zhuǎn)移信息,處理后作出響應(yīng) (到外部的輸出),實時處理要求即時響應(yīng)用戶的服務(wù)請求,并在較短時間內(nèi)完成數(shù)據(jù)處理??茖W(xué)計算數(shù)據(jù)處理軟件科學(xué)計算數(shù)據(jù)處理軟件:應(yīng)用在數(shù)值領(lǐng)域,解決數(shù)值算法的速度和精度。包括可視化計算、大量圖形的計算機(jī)輔助設(shè)計,以及在多處理機(jī)系統(tǒng)中實現(xiàn)并行計算和系統(tǒng)仿真等技術(shù)。 人工智能軟件人工智能軟件建立在基于知識庫以及相應(yīng)規(guī)則的專家系統(tǒng)上。專家系統(tǒng)也稱為基于知識的問題求解系統(tǒng)。實用的人工智能軟件有模式識別、定理證明、專家系統(tǒng)、輔助決策支持、圖像語音識別、神經(jīng)網(wǎng)絡(luò)系

19、統(tǒng)等。近年來圖像、聲音識別、自學(xué)習(xí)、人工神經(jīng)網(wǎng)絡(luò)也發(fā)展迅速,例如,語音輸入和機(jī)器語言翻譯等。 嵌入式(Embeded)軟件嵌入式軟件:用于工業(yè)產(chǎn)品的自動化和智能化,在每個工業(yè)產(chǎn)品中嵌入一個的單片機(jī),其中的軟件可根據(jù)傳感器傳入的數(shù)據(jù)控制該產(chǎn)品行為。這些軟件首先在宿主機(jī)(host)上以某種語言開發(fā),經(jīng)交叉編譯后成為單片機(jī)的機(jī)器碼程序,燒入單片機(jī),故為嵌入式。應(yīng)用程序的開發(fā)、調(diào)試、修改和升級全在宿主機(jī)上完成。近年來,Java芯片和Java嵌入式應(yīng)用發(fā)展特別迅速。 多媒體軟件多媒體軟件包括多媒體數(shù)據(jù)傳輸和多媒體數(shù)據(jù)處理,例如,圖形處理、圖像處理、動畫制作、音頻視頻播放、音頻視頻編輯、電視會議、多媒體寫

20、作工具以及桌面排版等應(yīng)用軟件。 2按軟件規(guī)模劃分軟件系統(tǒng)可以劃分為6種不同的規(guī)模系統(tǒng)規(guī)模 人年源程序代碼微型系統(tǒng)1人研制14周500行小型系統(tǒng)1人研制16個月10002000行中型系統(tǒng)25人研制12年500010000行較大型系統(tǒng)520人研制23年50000100000行大型系統(tǒng)1001000人研制45年1 百萬行;極大型系統(tǒng)20005000人研制510年1 百萬10百萬行 14 應(yīng)用系統(tǒng)軟件的開發(fā)初學(xué)者在軟件開發(fā)中存在的問題沒有準(zhǔn)確、完整地了解用戶的實際需求,就急于編程。重編程,輕需求分析;重開發(fā),輕維護(hù);重程序,輕文檔。這樣做的后果就是在軟件系統(tǒng)中“埋藏”了許多故障隱患,直接危害著系統(tǒng)的可

21、靠性和穩(wěn)定性。而在軟件開發(fā)過程中,問題發(fā)現(xiàn)得越早,解決它所花費的代價就越??;而問題發(fā)現(xiàn)得越晚,解決它所花費的代價就越高。在進(jìn)行軟件設(shè)計時應(yīng)當(dāng)注意以下幾點:(1)注重分析解決問題。軟件開發(fā)過程實際上就是用程序語言來描述解決問題的方法和步驟。所以軟件開發(fā)的基本過程是分析用戶的需求,找出需要解決的問題,發(fā)現(xiàn)解決問題的方法。(2)掌握應(yīng)用系統(tǒng)設(shè)計方法。分析和綜合是處理復(fù)雜系統(tǒng)的基本方法,面對一個大的系統(tǒng),應(yīng)該學(xué)會使用分解與綜合的應(yīng)用系統(tǒng)設(shè)計方法,把復(fù)雜問題分解為若干子問題,分散難點,各個擊破,再把設(shè)計出的各個子模塊綜合為一大系統(tǒng)。(3)廣泛了解當(dāng)前的最新計算機(jī)應(yīng)用技術(shù)。由于計算機(jī)技術(shù)發(fā)展飛速,每年都有

22、新的技術(shù)或者已有技術(shù)的升級版本出現(xiàn),選準(zhǔn)適合的新技術(shù)來實現(xiàn)設(shè)計目標(biāo),具有事半功倍的效果。實現(xiàn)一個系統(tǒng),往往會使用幾種程序設(shè)計語言或者工具軟件。(4)學(xué)會建立抽象模型。軟件設(shè)計需要根據(jù)物理模型抽象出其邏輯模型,通過建立的模型描述抽象事物間的關(guān)系。例如,建立系統(tǒng)需要分析模型、解題需要算法模型,在算法中采用符號語言代替計算機(jī)動作;在程序文檔中采用規(guī)格說明抽象軟件行為。 (5)力求系統(tǒng)結(jié)構(gòu)清晰?,F(xiàn)在的軟件越來越復(fù)雜,需要重視程序結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、結(jié)構(gòu)化數(shù)據(jù)、程序的體系結(jié)構(gòu)等軟件設(shè)計的關(guān)鍵技術(shù),在編寫程序代碼前,要對系統(tǒng)結(jié)構(gòu)有一個清晰明了概念,設(shè)計出一個好的結(jié)構(gòu)可以使解決問題的步驟變得清晰、簡潔、高效。(

23、6)注意形式化、一致性和規(guī)范化。程序語言、數(shù)學(xué)公式都是形式系統(tǒng),只有按照約定的形式符號才能讓計算機(jī)理解編程意圖。隨著軟件系統(tǒng)的越來越復(fù)雜,開發(fā)人員越來越多,需要符號定義、表示風(fēng)格、文檔格式盡可能規(guī)范和一致。以利于模塊的綜合、開發(fā)和調(diào)試。(7)重視書寫程序文檔。以便幫助閱讀和發(fā)現(xiàn)程序中的錯誤。一些不正確的觀念 觀念之一:我們擁有一套講述如何開發(fā)軟件的書籍,書中充滿了標(biāo)準(zhǔn)與示例,可以幫助我們解決軟件開發(fā)中遇到的任何問題??陀^情況:好的參考書無疑能指導(dǎo)我們的工作。充分利用書籍中的方法、技術(shù)和技巧,可以有效地解決軟件開發(fā)中大量常見的問題。但實踐者并不能因此依賴于書籍,這是因為:(1)現(xiàn)實的工作中,由于

24、條件千差萬別,即使是相當(dāng)成熟的軟件工程規(guī)范,常常也無法套用。(2)軟件技術(shù)日新月異,沒有哪一種軟件標(biāo)準(zhǔn)能長盛不衰。祖?zhèn)髅胤皆谀承╊I(lǐng)域很吃香,而在軟件領(lǐng)域則意味著落后。觀念之二:既然需求分析很困難,不管三七二十一先把軟件做了再說,反正軟件是靈活的,隨時可以修改。客觀情況:對需求把握得越準(zhǔn)確,軟件的修修補(bǔ)補(bǔ)就越少。有些需求在一開始時很難確定,在開發(fā)過程中要不斷地加以改正。軟件修改越早代價越少,修改越晚代價越大,就跟治病一樣道理。進(jìn)度安排存在的問題 (1)主管臆斷制定了不現(xiàn)實的期限,按照不合理的進(jìn)度表開展工作。(2)客戶的需求發(fā)生了變化,但沒有對進(jìn)度表作出相應(yīng)的修改。(3)低估了項目的規(guī)模與難度,導(dǎo)

25、致投入的人力和物力不足。(4)并未預(yù)見到存在難以克服的技術(shù)障礙。(5)開發(fā)人員之間不能很好的交流、協(xié)作,導(dǎo)致各階段任務(wù)難以如期完成。一些有益的建議 (1)進(jìn)度表要經(jīng)過開發(fā)小組的討論,在得到大部數(shù)人的支持后才能實施。避免出現(xiàn)一廂情愿的局面。(2)進(jìn)度安排并不見得一定要符合邏輯順序。應(yīng)盡可能地先做技術(shù)難度高的事,后做難度低的事。也就是辛苦在前,輕松在后。(3)開發(fā)一個大的軟件項目,應(yīng)該將進(jìn)度表分為若干個里程碑。一個里程碑之內(nèi)的多個任務(wù)可以同步進(jìn)行。(4)進(jìn)度表中必須留有緩沖時間,并將緩沖時間用到不確定的事情上。因為人們對即將要做的事情知之甚少,所以要留一些時間以防不測。Microsoft公司的一些

26、開發(fā)小組甚至制定了“50% 緩沖規(guī)則” 。零缺陷質(zhì)量管理的觀念 高目標(biāo)做一個項目通常需要多個人的協(xié)作。假設(shè)項目的總質(zhì)量(最高為1)是十個開發(fā)人員的工作質(zhì)量之積。如果每個人的質(zhì)量目標(biāo)是0.95,那么十個人的累積質(zhì)量不會超過0.19。如果每個人的質(zhì)量目標(biāo)是0.9分,那么十個人的累積質(zhì)量不會超過0.03。只有每個人都做到1,項目總質(zhì)量才會是1。軟件的質(zhì)量因素 “運行正確”的程序不見得就是高質(zhì)量的程序。這個程序也許運行速度很低并且浪費內(nèi)存;也許代碼寫得一塌糊涂,除了開發(fā)者本人誰也看不懂也不會使用。正確性只是反映軟件質(zhì)量的一個因素而已。軟件的質(zhì)量因素很多,如正確性、精確性、可靠性、容錯性、性能、效率、易

27、用性、可理解性、簡潔性、可復(fù)用性、可擴(kuò)充性、兼容性等等(還可以列出十幾個)。這些質(zhì)量因素之間“你中有我,我中有他”。為了便于理解,可以參照武俠小說中的武學(xué)分類,將質(zhì)量因素粗略地分成幾大派。 正確性與精確性易用性可理解性與簡潔性性能與效率可復(fù)用性與可擴(kuò)充性少林派、武當(dāng)派華山派昆侖派峨嵋派崆峒派正確性與精確性 正確性與精確性排在質(zhì)量因素的第一位,因為如果軟件運行不正確或者不精確,就會給用戶造成不便甚至造成損失。即使一個軟件能100% 地按需求規(guī)格執(zhí)行,但是如果需求分析錯了,那么對客戶而言這個軟件也存在錯誤。即使需求分析完全符合客戶的要求,但是如果軟件沒有100% 地按需求規(guī)格執(zhí)行,那么這個軟件也存在錯誤。開發(fā)一個大的軟件項目,程序員要為“正確”、“精確”四個字竭盡精力。容錯性和可靠性容錯性和可靠性是與正確性、精確性相關(guān)的質(zhì)量因素容錯性承認(rèn)軟件系統(tǒng)存在不正確與不精確的因素,為了防止?jié)撛诘牟徽_與不精確因素引發(fā)災(zāi)難,系統(tǒng)為此設(shè)計了安全措施。在一些高風(fēng)險的軟件系統(tǒng),如航空航天、武器、金融等系統(tǒng)中,容錯性設(shè)計非常重要??煽啃允侵冈谝欢ǖ沫h(huán)境下,在給定的時間內(nèi),系統(tǒng)不發(fā)生故障的概率。我們無法對軟件進(jìn)行徹底地測試,無法根除軟件中潛在的錯誤。平時軟件運行得好好的,說不準(zhǔn)哪一天就不正常了,如“2000年”問題。性能與效率 用戶都希望軟件的運行速度高些(高性能),并且占用資源少些(高效率),

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論