版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2.1軟件開發(fā)中的困難一、軟件開發(fā)的基本知識1、軟件開發(fā)過程的兩個轉(zhuǎn)換:首先是從用戶的理解到程序員的理解,其次是從程序員的理解到程序的實(shí)現(xiàn)。l2、兩個轉(zhuǎn)換的基本情況:第一個轉(zhuǎn)換是用戶對軟件功能的理解和程序員對軟件功能的理解之間的轉(zhuǎn)換。保證這一轉(zhuǎn)換順利完成的手段就是利用盡可能標(biāo)準(zhǔn)化的方法編寫程序設(shè)計任務(wù)書,用明確的語言或圖形、表格,把程序要處理的信息的內(nèi)容、格式、來源、去向、存儲與處理清楚的表達(dá)出來,作為雙方共同的理解。l第二個轉(zhuǎn)換所要解決的是人和機(jī)器之間交流與協(xié)調(diào)問題:人和機(jī)器之間在思維方式、工作方式上都有許多根本區(qū)別。做好第二個轉(zhuǎn)換的關(guān)鍵在于程序員的知識水平與實(shí)際經(jīng)驗(yàn)。3、對于單個程序員來說
2、,做好軟件工作的關(guān)鍵是以上兩個轉(zhuǎn)換。二、大型軟件開發(fā)中的困難(大題)l當(dāng)程序的規(guī)模超出一個人的力量范圍時,一系列新的、更難以克服的困難就出現(xiàn)在人們的面前了。(1)一致性的保持成為十分困難的問題。(2)測試的困難大大增加。名詞水波效應(yīng):當(dāng)我們修改程序的某一處錯誤時,由于沒有充分考慮到這一修改對相關(guān)部分帶來的影響,結(jié)果出現(xiàn)新的錯誤。黑箱檢驗(yàn)方法(只能證明程序有錯而不能證明程序沒錯)l(3)工作進(jìn)度難以控制。(與其他工作相比,大型軟件開發(fā)中的進(jìn)度控制是非常困難的)(4)文檔與代碼協(xié)調(diào)十分困難。(文檔包括:功能說明書、總體設(shè)計、各模塊的設(shè)計任務(wù)書、每個部分的研制報告、測試報告,直到最終的驗(yàn)收報告和給使
3、用者的用戶手冊)(5)版本更新帶來的困難。(大量的工作在于審核與回顧)總之,如果說單個程序員的軟件開發(fā)工作面臨的困難是一分的話,那么多人參加的大型軟件開發(fā)工作面臨的困難將是十分的,或者更多。三、困難產(chǎn)生的原因原因是復(fù)雜的、多方面的,不能得意地歸結(jié)為程序員或軟件工作者的弱點(diǎn):首先,這些困難來自大系統(tǒng)的復(fù)雜性。其次,許多具有主動性的個人之間的組織與協(xié)調(diào)本身也會帶來大量的困難。另外,各個應(yīng)用領(lǐng)域之間的差別也導(dǎo)致這些困難的加重。最后,時間的因素、變化的因素也給軟件開發(fā)工作帶來許多困難。軟件危機(jī)的研究與克服,是當(dāng)代人類思想發(fā)展的前沿課題之一。2.2軟件開發(fā)方法的發(fā)展l軟件開發(fā)的方法:結(jié)構(gòu)化程序設(shè)計、軟件
4、工程方法、面向?qū)ο蟮姆椒?、即插即用的程序設(shè)計方法、可視化設(shè)計編程2.2軟件開發(fā)方法的發(fā)展軟件開發(fā)方法的發(fā)展l軟件開發(fā)過程中的角色和任務(wù):2223角色:任務(wù):用戶:提出要求、驗(yàn)收、使用、要求修改項目負(fù)責(zé)人:分析需求、向程序員分配任務(wù)、驗(yàn)收程序員的工作成果(代碼和文檔)、對這個軟件進(jìn)行聯(lián)調(diào)程序員:編寫程序和文檔、調(diào)試自己的程序、向項目負(fù)責(zé)人提交成果計算機(jī):無一、結(jié)構(gòu)化程序設(shè)計:l 1、程序結(jié)構(gòu)與設(shè)計的技術(shù)一書中關(guān)于好的程序結(jié)構(gòu)的各種看法:(1)它能夠保證程序正常地,按照功能說明書運(yùn)行;(2)它具有靈活性,沒有錯誤,即使有了錯誤也能夠很快地改正;(3)它的文檔齊全,一旦需要變更,很容易找到應(yīng)當(dāng)改動的
5、地方;(4)它運(yùn)行速度快;(5)它在經(jīng)濟(jì)上能夠保證投資很快地得到回報。l 2、程序的結(jié)構(gòu)分解成三種基本模塊:處理單元、循環(huán)機(jī)制、二分決策機(jī)制。問題的關(guān)鍵在于合理地劃分模塊l 3、模塊的劃分應(yīng)當(dāng)符合以下三條基本的要求:(1)模塊的功能在邏輯上盡可能地單一化、明確化,最好做到模塊與任務(wù)的一一對應(yīng),即每一個模塊實(shí)現(xiàn)一項明確的任務(wù),反之每項任務(wù)僅由一個模塊來完成。(凝聚性)(2)模塊之間的聯(lián)系及互相影響盡可能地少,對于必需的聯(lián)系都應(yīng)當(dāng)加以明確的說明,如參數(shù)傳遞,共享文件的內(nèi)容民格式等。(各種聯(lián)系及相互影響稱為耦合,應(yīng)當(dāng)盡量避免邏輯耦合,而僅限于數(shù)據(jù)耦合。)l (3)模塊的規(guī)模應(yīng)當(dāng)足夠小,以便使它本身的
6、調(diào)試易于進(jìn)行。如果一個軟件能夠分解成滿足上述三條原則的模塊,那么它就可以稱為有良好結(jié)構(gòu)的軟件,能夠避免前面所講的各種問題。實(shí)施這種方法應(yīng)當(dāng)采取自頂向下的方法。自上而下、逐步分解的辦法。4、結(jié)構(gòu)化程序設(shè)計的基本思想24a限制甚至不用GOTO語句,絕對禁止超越模塊邊界的GOTO語句b子程序盡可能做到只有一個入口、一個出口c程序設(shè)計應(yīng)當(dāng)盡量明確、清晰,包括適當(dāng)?shù)淖⑨專瑫鴮懜袷襟w現(xiàn)層次結(jié)構(gòu),變量名稱盡量具有邏輯意義d程序編寫的同時完成文檔編輯,不拖時結(jié)構(gòu)化程序設(shè)計方法主要是為程序員服務(wù)的。結(jié)構(gòu)化程序設(shè)計方法的缺點(diǎn):增大了程序工作量,增加了編輯中的麻煩與瑣碎的工作,并且降低了程序的運(yùn)行效率。但這種是為保
7、證軟件的可靠、準(zhǔn)確度與易于修改付出的代價。二、軟件工程的方法l 1、工程思想的核心有兩點(diǎn):標(biāo)準(zhǔn)化的表達(dá)方法與規(guī)范化的工作步驟。2、軟件工程的產(chǎn)生背景:由于軟件危機(jī)的發(fā)生,人們認(rèn)識到,把軟件的質(zhì)量寄托于各個程序員的技能與認(rèn)真負(fù)責(zé)上是不牢靠的、危險的、不現(xiàn)實(shí)的。(P25)l 3、軟件開發(fā)工作中需要加強(qiáng)的兩個方面一方面,對工作的步驟作出了嚴(yán)格的規(guī)定。每一個階段都有各自明確的任務(wù)、明確的起點(diǎn)、明確的終點(diǎn),特別是要有確切的、可以檢查的成果。另一方面,在質(zhì)量、表達(dá)方式等方面要有統(tǒng)一的、為人們共同遵守的標(biāo)準(zhǔn)。4、對軟件開發(fā)工作過程進(jìn)行規(guī)范化:第一階段,需求分析,也可以稱之為企業(yè)模型建立階段。任務(wù):了解企業(yè)的
8、結(jié)構(gòu)與功能,掌握組織及管理者的信息需求,弄清信息流通的實(shí)際情況。第二階段,分析與設(shè)計階段,任務(wù):進(jìn)行功能分解及數(shù)據(jù)分析,完成處理過程及數(shù)據(jù)庫的邏輯設(shè)計。第三階段,編程階段,任務(wù):完成具體的程序編寫工作。第四階段,測試階段,任務(wù):對已有的代碼進(jìn)行認(rèn)真的檢測與試用。第五階段,作用及維護(hù)階段,任務(wù):組織使用者有效地作用,并及時檢查與修正發(fā)現(xiàn)的錯誤。l5、標(biāo)準(zhǔn)化方面主要從兩個方面去探索:一方面是表達(dá)方式的標(biāo)準(zhǔn)化。另一方面是對工作的質(zhì)量及檢查制訂標(biāo)準(zhǔn)。l6、軟件工程的思想主要集中于加強(qiáng)項目管理者的工作,對程序員關(guān)系不大。完全的工程化還遠(yuǎn)遠(yuǎn)沒有做到。三、面向?qū)ο蟮姆椒╨ 面向?qū)ο蟮某绦蛟O(shè)計(OOP)的基本
9、思想可以歸納為以下四點(diǎn):(1)客觀世界的任何事物都是對象,它們都有一些靜態(tài)屬性,也都有一些有關(guān)的操作。(封裝性)(2)對象之間有抽象與具體、群體與個體、整體與部分等幾種關(guān)系。(3)抽象的、較大的對象所具有的性質(zhì)包括靜態(tài)屬性和動態(tài)操作,自然地成為它的子類的性質(zhì)。(遺傳性)l(4)對象之間可以互關(guān)消息,這一消息可以是傳送一個參數(shù),也可以是使這個對象開始某個操作。摒棄了持續(xù)許久的自頂向下和自底向上的爭論,把對于復(fù)雜系統(tǒng)的認(rèn)識歸結(jié)為對一批對象及其關(guān)系的認(rèn)識。面向?qū)ο蟮某绦蛟O(shè)計語言使用軟件工作進(jìn)一步向用戶靠近,這對于計算機(jī)應(yīng)用深入到各個領(lǐng)域是十分有利的。四、即插即用的程序設(shè)計(是在面向?qū)ο蟮某绦蛟O(shè)計方法
10、的基礎(chǔ)上提出來的)l1、基本思想:一部分人專門生產(chǎn)軟件組件(相當(dāng)于芯片),而另一部分人則設(shè)計軟件的結(jié)構(gòu)(相當(dāng)于計算機(jī)結(jié)構(gòu)),并且把軟件組件插入這個結(jié)構(gòu),以便迅速地完成大型軟件的研制工作。2、即插即用的程序設(shè)計的實(shí)現(xiàn)有一定的困難首先,標(biāo)準(zhǔn)化的問題就十分困難其次,軟件部件的提供方式也是問題。五、可視化程序設(shè)計:l是指用圖標(biāo)、圖像、圖表,甚至隨手畫的素描等可視化的元素來編制程序。運(yùn)用可視元素時所用的技術(shù)手段:(1)指點(diǎn)與卡嗒(2)刪剪與粘貼(3)拖拉與扔下2.3軟件開發(fā)過程的管理l 對于軟件開發(fā)來說,核心是質(zhì)量問題。一、什么樣的軟件才是好的(好軟件的評價準(zhǔn))(重要的簡答)(1)正確地實(shí)現(xiàn)所要求的功能
11、,準(zhǔn)確地給出預(yù)定的輸出結(jié)果;(2)用戶界面友好,符合實(shí)際用戶的使用習(xí)慣與知識水平;(3)具有足夠的速度(而不是越快越好),能在符合用戶要求的時間限度內(nèi),給出所要求的處理結(jié)果;(4)具有足夠的可靠性,能夠在各種干擾下保持正常的工作;(5)程序易讀,結(jié)構(gòu)良好,文檔齊全,從而保證系統(tǒng)易于修改。二、好程序員與好項目組l 1、單個程序員的主要的指標(biāo)(P29)(1)具有程序設(shè)計所需要的基本知識與技能,如關(guān)于數(shù)理邏輯的知識與訓(xùn)練,關(guān)于各類數(shù)據(jù)結(jié)構(gòu)的概念及處理方法等;(2)對本項目所在的領(lǐng)域有較深入的了解,從而能夠準(zhǔn)確地理解用戶的信息需求,正確地把握有關(guān)的信息流程與信息處理原則;(3)對于軟件開發(fā)的技術(shù)環(huán)境比
12、較熟悉,包括硬件設(shè)備、軟件環(huán)境和網(wǎng)絡(luò)環(huán)境,特別是對所用的語言,應(yīng)當(dāng)有足夠的、實(shí)際運(yùn)用的經(jīng)驗(yàn)。以上三個條件基本上能保證程序員單獨(dú)地承擔(dān)軟件開發(fā)任務(wù)。2、項目組的一員必須嚴(yán)格遵循:l (1)保證嚴(yán)格地在本模塊范圍內(nèi)操作,決不要使用可能干擾其它模塊的命令或函數(shù);(2)嚴(yán)格按總體設(shè)計的要求和理解去傳遞參數(shù)值,決不要隨意修改其內(nèi)容或含義;(3)在對公用的文件或數(shù)據(jù)庫進(jìn)行存取時,必須完全地、準(zhǔn)確地按統(tǒng)一規(guī)定的格式去操作,決不能擅自改變;(4)在使用標(biāo)識符時,應(yīng)按照統(tǒng)一的原則,盡量使用易于看出邏輯含義的名稱。特別是涉及公用數(shù)據(jù)及參數(shù)的時候。(5)嚴(yán)格按照統(tǒng)一的要求編寫文檔,在內(nèi)容、格式、表達(dá)方式、符號使用上
13、遵循項目組的統(tǒng)一規(guī)定;(6)盡量保持程序風(fēng)格的一致??傊椖拷M的成員,必須放棄自己的某些自由去接受項目組的限制和約束,服從項目組的管理。必須具有高度的組織和團(tuán)隊精神。三、怎樣建立一個好的項目組l CCM模型。一個好的項目組應(yīng)當(dāng)具備以下幾個條件l (1)有嚴(yán)格的、成文工作規(guī)范和文檔標(biāo)準(zhǔn),而且應(yīng)當(dāng)為全體成員所熟知,并且切實(shí)得到遵l (2)人員之間必須有嚴(yán)格的分工,除了程序員之外,必須有專門的秘書,必須有專門的測試人員,特別是要有專職的、不陷入具體編程的項目負(fù)責(zé)人。l (3)每個項目都要事先制定詳細(xì)的時間表,并且得到嚴(yán)格招待。每一項目完成之后都有完整的資料,并得到妥善保存,一旦需要修改或更新版本時
14、可以立即使用。練習(xí)l試述軟件組件的概念試述軟件組件的概念l什么是對象什么是對象?l試述結(jié)構(gòu)化程序設(shè)計的要點(diǎn)試述結(jié)構(gòu)化程序設(shè)計的要點(diǎn)l試述結(jié)構(gòu)化程序設(shè)計的要點(diǎn)試述結(jié)構(gòu)化程序設(shè)計的要點(diǎn)l工程化思想的要點(diǎn)是什么?工程化思想的要點(diǎn)是什么?l軟件工程的基本方法是什么?軟件工程的基本方法是什么?l面向?qū)ο蟮某绦蛟O(shè)計方法的要點(diǎn)是什么?面向?qū)ο蟮某绦蛟O(shè)計方法的要點(diǎn)是什么?l大型軟件開發(fā)中的困難有哪些?大型軟件開發(fā)中的困難有哪些?l試述試述OOP的基本特征。的基本特征。l軟件評價的主要方面是什么軟件評價的主要方面是什么?l怎樣建立一個好的項目組怎樣建立一個好的項目組?l項目組對程序員的約束有哪些項目組對程序員的約束有哪些?l軟件質(zhì)量的評測有哪些軟件質(zhì)量的評測有哪
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色倉儲倉房買賣合同范本環(huán)保解讀3篇
- 2025年度旅游單項服務(wù)保障合同4篇
- 2024-2025學(xué)年高中英語Unit4Breakingboundaries突破語法大沖關(guān)教師用書外研版選擇性必修第二冊
- 2024-2025學(xué)年新教材高中歷史第八單元20世紀(jì)下半葉世界的新變化第18課冷戰(zhàn)與國際格局的演變課時作業(yè)含解析新人教版必修中外歷史綱要下
- 二零二五版工程招投標(biāo)與合同管理法律法規(guī)匯編及解讀3篇
- 2024版汽車維修工具套件租賃合同
- 2024版廣西事業(yè)單位聘用合同樣板
- 2025年屋頂雨水排水管及配套設(shè)施銷售與安裝服務(wù)合同2篇
- 二零二五年度教育合作辦班合同范本3篇
- 2024版汽車修理廠土地租賃合同
- 2023年上海英語高考卷及答案完整版
- 西北農(nóng)林科技大學(xué)高等數(shù)學(xué)期末考試試卷(含答案)
- 金紅葉紙業(yè)簡介-2 -紙品及產(chǎn)品知識
- 《連鎖經(jīng)營管理》課程教學(xué)大綱
- 《畢淑敏文集》電子書
- 頸椎JOA評分 表格
- 員工崗位能力評價標(biāo)準(zhǔn)
- 定量分析方法-課件
- 朱曦編著設(shè)計形態(tài)知識點(diǎn)
- 110kV變電站工程預(yù)算1
- 某系統(tǒng)安全安全保護(hù)設(shè)施設(shè)計實(shí)施方案
評論
0/150
提交評論