




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2.1軟件開發(fā)中的困難一、軟件開發(fā)的基本知識1、軟件開發(fā)過程的兩個轉換:首先是從用戶的理解到程序員的理解,其次是從程序員的理解到程序的實現(xiàn)。l2、兩個轉換的基本情況:第一個轉換是用戶對軟件功能的理解和程序員對軟件功能的理解之間的轉換。保證這一轉換順利完成的手段就是利用盡可能標準化的方法編寫程序設計任務書,用明確的語言或圖形、表格,把程序要處理的信息的內容、格式、來源、去向、存儲與處理清楚的表達出來,作為雙方共同的理解。l第二個轉換所要解決的是人和機器之間交流與協(xié)調問題:人和機器之間在思維方式、工作方式上都有許多根本區(qū)別。做好第二個轉換的關鍵在于程序員的知識水平與實際經驗。3、對于單個程序員來說
2、,做好軟件工作的關鍵是以上兩個轉換。二、大型軟件開發(fā)中的困難(大題)l當程序的規(guī)模超出一個人的力量范圍時,一系列新的、更難以克服的困難就出現(xiàn)在人們的面前了。(1)一致性的保持成為十分困難的問題。(2)測試的困難大大增加。名詞水波效應:當我們修改程序的某一處錯誤時,由于沒有充分考慮到這一修改對相關部分帶來的影響,結果出現(xiàn)新的錯誤。黑箱檢驗方法(只能證明程序有錯而不能證明程序沒錯)l(3)工作進度難以控制。(與其他工作相比,大型軟件開發(fā)中的進度控制是非常困難的)(4)文檔與代碼協(xié)調十分困難。(文檔包括:功能說明書、總體設計、各模塊的設計任務書、每個部分的研制報告、測試報告,直到最終的驗收報告和給使
3、用者的用戶手冊)(5)版本更新帶來的困難。(大量的工作在于審核與回顧)總之,如果說單個程序員的軟件開發(fā)工作面臨的困難是一分的話,那么多人參加的大型軟件開發(fā)工作面臨的困難將是十分的,或者更多。三、困難產生的原因原因是復雜的、多方面的,不能得意地歸結為程序員或軟件工作者的弱點:首先,這些困難來自大系統(tǒng)的復雜性。其次,許多具有主動性的個人之間的組織與協(xié)調本身也會帶來大量的困難。另外,各個應用領域之間的差別也導致這些困難的加重。最后,時間的因素、變化的因素也給軟件開發(fā)工作帶來許多困難。軟件危機的研究與克服,是當代人類思想發(fā)展的前沿課題之一。2.2軟件開發(fā)方法的發(fā)展l軟件開發(fā)的方法:結構化程序設計、軟件
4、工程方法、面向對象的方法、即插即用的程序設計方法、可視化設計編程2.2軟件開發(fā)方法的發(fā)展軟件開發(fā)方法的發(fā)展l軟件開發(fā)過程中的角色和任務:2223角色:任務:用戶:提出要求、驗收、使用、要求修改項目負責人:分析需求、向程序員分配任務、驗收程序員的工作成果(代碼和文檔)、對這個軟件進行聯(lián)調程序員:編寫程序和文檔、調試自己的程序、向項目負責人提交成果計算機:無一、結構化程序設計:l 1、程序結構與設計的技術一書中關于好的程序結構的各種看法:(1)它能夠保證程序正常地,按照功能說明書運行;(2)它具有靈活性,沒有錯誤,即使有了錯誤也能夠很快地改正;(3)它的文檔齊全,一旦需要變更,很容易找到應當改動的
5、地方;(4)它運行速度快;(5)它在經濟上能夠保證投資很快地得到回報。l 2、程序的結構分解成三種基本模塊:處理單元、循環(huán)機制、二分決策機制。問題的關鍵在于合理地劃分模塊l 3、模塊的劃分應當符合以下三條基本的要求:(1)模塊的功能在邏輯上盡可能地單一化、明確化,最好做到模塊與任務的一一對應,即每一個模塊實現(xiàn)一項明確的任務,反之每項任務僅由一個模塊來完成。(凝聚性)(2)模塊之間的聯(lián)系及互相影響盡可能地少,對于必需的聯(lián)系都應當加以明確的說明,如參數(shù)傳遞,共享文件的內容民格式等。(各種聯(lián)系及相互影響稱為耦合,應當盡量避免邏輯耦合,而僅限于數(shù)據(jù)耦合。)l (3)模塊的規(guī)模應當足夠小,以便使它本身的
6、調試易于進行。如果一個軟件能夠分解成滿足上述三條原則的模塊,那么它就可以稱為有良好結構的軟件,能夠避免前面所講的各種問題。實施這種方法應當采取自頂向下的方法。自上而下、逐步分解的辦法。4、結構化程序設計的基本思想24a限制甚至不用GOTO語句,絕對禁止超越模塊邊界的GOTO語句b子程序盡可能做到只有一個入口、一個出口c程序設計應當盡量明確、清晰,包括適當?shù)淖⑨?,書寫格式體現(xiàn)層次結構,變量名稱盡量具有邏輯意義d程序編寫的同時完成文檔編輯,不拖時結構化程序設計方法主要是為程序員服務的。結構化程序設計方法的缺點:增大了程序工作量,增加了編輯中的麻煩與瑣碎的工作,并且降低了程序的運行效率。但這種是為保
7、證軟件的可靠、準確度與易于修改付出的代價。二、軟件工程的方法l 1、工程思想的核心有兩點:標準化的表達方法與規(guī)范化的工作步驟。2、軟件工程的產生背景:由于軟件危機的發(fā)生,人們認識到,把軟件的質量寄托于各個程序員的技能與認真負責上是不牢靠的、危險的、不現(xiàn)實的。(P25)l 3、軟件開發(fā)工作中需要加強的兩個方面一方面,對工作的步驟作出了嚴格的規(guī)定。每一個階段都有各自明確的任務、明確的起點、明確的終點,特別是要有確切的、可以檢查的成果。另一方面,在質量、表達方式等方面要有統(tǒng)一的、為人們共同遵守的標準。4、對軟件開發(fā)工作過程進行規(guī)范化:第一階段,需求分析,也可以稱之為企業(yè)模型建立階段。任務:了解企業(yè)的
8、結構與功能,掌握組織及管理者的信息需求,弄清信息流通的實際情況。第二階段,分析與設計階段,任務:進行功能分解及數(shù)據(jù)分析,完成處理過程及數(shù)據(jù)庫的邏輯設計。第三階段,編程階段,任務:完成具體的程序編寫工作。第四階段,測試階段,任務:對已有的代碼進行認真的檢測與試用。第五階段,作用及維護階段,任務:組織使用者有效地作用,并及時檢查與修正發(fā)現(xiàn)的錯誤。l5、標準化方面主要從兩個方面去探索:一方面是表達方式的標準化。另一方面是對工作的質量及檢查制訂標準。l6、軟件工程的思想主要集中于加強項目管理者的工作,對程序員關系不大。完全的工程化還遠遠沒有做到。三、面向對象的方法l 面向對象的程序設計(OOP)的基本
9、思想可以歸納為以下四點:(1)客觀世界的任何事物都是對象,它們都有一些靜態(tài)屬性,也都有一些有關的操作。(封裝性)(2)對象之間有抽象與具體、群體與個體、整體與部分等幾種關系。(3)抽象的、較大的對象所具有的性質包括靜態(tài)屬性和動態(tài)操作,自然地成為它的子類的性質。(遺傳性)l(4)對象之間可以互關消息,這一消息可以是傳送一個參數(shù),也可以是使這個對象開始某個操作。摒棄了持續(xù)許久的自頂向下和自底向上的爭論,把對于復雜系統(tǒng)的認識歸結為對一批對象及其關系的認識。面向對象的程序設計語言使用軟件工作進一步向用戶靠近,這對于計算機應用深入到各個領域是十分有利的。四、即插即用的程序設計(是在面向對象的程序設計方法
10、的基礎上提出來的)l1、基本思想:一部分人專門生產軟件組件(相當于芯片),而另一部分人則設計軟件的結構(相當于計算機結構),并且把軟件組件插入這個結構,以便迅速地完成大型軟件的研制工作。2、即插即用的程序設計的實現(xiàn)有一定的困難首先,標準化的問題就十分困難其次,軟件部件的提供方式也是問題。五、可視化程序設計:l是指用圖標、圖像、圖表,甚至隨手畫的素描等可視化的元素來編制程序。運用可視元素時所用的技術手段:(1)指點與卡嗒(2)刪剪與粘貼(3)拖拉與扔下2.3軟件開發(fā)過程的管理l 對于軟件開發(fā)來說,核心是質量問題。一、什么樣的軟件才是好的(好軟件的評價準)(重要的簡答)(1)正確地實現(xiàn)所要求的功能
11、,準確地給出預定的輸出結果;(2)用戶界面友好,符合實際用戶的使用習慣與知識水平;(3)具有足夠的速度(而不是越快越好),能在符合用戶要求的時間限度內,給出所要求的處理結果;(4)具有足夠的可靠性,能夠在各種干擾下保持正常的工作;(5)程序易讀,結構良好,文檔齊全,從而保證系統(tǒng)易于修改。二、好程序員與好項目組l 1、單個程序員的主要的指標(P29)(1)具有程序設計所需要的基本知識與技能,如關于數(shù)理邏輯的知識與訓練,關于各類數(shù)據(jù)結構的概念及處理方法等;(2)對本項目所在的領域有較深入的了解,從而能夠準確地理解用戶的信息需求,正確地把握有關的信息流程與信息處理原則;(3)對于軟件開發(fā)的技術環(huán)境比
12、較熟悉,包括硬件設備、軟件環(huán)境和網絡環(huán)境,特別是對所用的語言,應當有足夠的、實際運用的經驗。以上三個條件基本上能保證程序員單獨地承擔軟件開發(fā)任務。2、項目組的一員必須嚴格遵循:l (1)保證嚴格地在本模塊范圍內操作,決不要使用可能干擾其它模塊的命令或函數(shù);(2)嚴格按總體設計的要求和理解去傳遞參數(shù)值,決不要隨意修改其內容或含義;(3)在對公用的文件或數(shù)據(jù)庫進行存取時,必須完全地、準確地按統(tǒng)一規(guī)定的格式去操作,決不能擅自改變;(4)在使用標識符時,應按照統(tǒng)一的原則,盡量使用易于看出邏輯含義的名稱。特別是涉及公用數(shù)據(jù)及參數(shù)的時候。(5)嚴格按照統(tǒng)一的要求編寫文檔,在內容、格式、表達方式、符號使用上
13、遵循項目組的統(tǒng)一規(guī)定;(6)盡量保持程序風格的一致??傊?,項目組的成員,必須放棄自己的某些自由去接受項目組的限制和約束,服從項目組的管理。必須具有高度的組織和團隊精神。三、怎樣建立一個好的項目組l CCM模型。一個好的項目組應當具備以下幾個條件l (1)有嚴格的、成文工作規(guī)范和文檔標準,而且應當為全體成員所熟知,并且切實得到遵l (2)人員之間必須有嚴格的分工,除了程序員之外,必須有專門的秘書,必須有專門的測試人員,特別是要有專職的、不陷入具體編程的項目負責人。l (3)每個項目都要事先制定詳細的時間表,并且得到嚴格招待。每一項目完成之后都有完整的資料,并得到妥善保存,一旦需要修改或更新版本時
14、可以立即使用。練習l試述軟件組件的概念試述軟件組件的概念l什么是對象什么是對象?l試述結構化程序設計的要點試述結構化程序設計的要點l試述結構化程序設計的要點試述結構化程序設計的要點l工程化思想的要點是什么?工程化思想的要點是什么?l軟件工程的基本方法是什么?軟件工程的基本方法是什么?l面向對象的程序設計方法的要點是什么?面向對象的程序設計方法的要點是什么?l大型軟件開發(fā)中的困難有哪些?大型軟件開發(fā)中的困難有哪些?l試述試述OOP的基本特征。的基本特征。l軟件評價的主要方面是什么軟件評價的主要方面是什么?l怎樣建立一個好的項目組怎樣建立一個好的項目組?l項目組對程序員的約束有哪些項目組對程序員的約束有哪些?l軟件質量的評測有哪些軟件質量的評測有哪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZNZ 264.1-2024 重金屬中度污染農田土壤修復和安全利用技術規(guī)范 第1部分:超積累東南景天與油葵輪作
- 二零二五年度車輛轉讓與二手車交易及金融服務協(xié)議
- 2025年度蛋糕店與體育賽事合作贊助協(xié)議
- 2025年度道路橋梁維修施工安全協(xié)議書
- 2025年度網絡安全產品銷售提成與技術服務合同
- 二零二五年度企業(yè)員工宿舍三方租賃協(xié)議
- 二零二五年度臨時廚房工作人員聘用合同
- 二零二五年度個體商戶勞動合同(體育賽事組織與運營)
- 中學生環(huán)保行動策劃案解讀
- 監(jiān)控項目合作合同監(jiān)控施工合同
- DB11 489-2016 建筑基坑支護技術規(guī)程
- 2022年江蘇農林職業(yè)技術學院職業(yè)適應性測試題庫及答案解析
- 2022年安全生產費用投入臺賬(模版報表)
- 供水設施水池基礎土石方開挖施工組織方案
- 《魚類的骨骼系統(tǒng)》
- 車輛工程畢業(yè)設計(論文)-電動叉車設計
- 《建筑識圖》匯總題庫(學生用)
- 印刷制品QC工程圖
- 傳感器及檢測技術教案
- 手工焊錫知識
- 《采油工程》講義
評論
0/150
提交評論