《大學計算機基礎(第二版)》-課件第7章 第15講 程序設計方法和軟件工程基礎_第1頁
《大學計算機基礎(第二版)》-課件第7章 第15講 程序設計方法和軟件工程基礎_第2頁
《大學計算機基礎(第二版)》-課件第7章 第15講 程序設計方法和軟件工程基礎_第3頁
《大學計算機基礎(第二版)》-課件第7章 第15講 程序設計方法和軟件工程基礎_第4頁
《大學計算機基礎(第二版)》-課件第7章 第15講 程序設計方法和軟件工程基礎_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機基礎科學系主要教學內容程序設計方法1軟件工程基礎2小結3計算機基礎科學系學習目標1了解結構化程序設計方法的優(yōu)點和缺點;掌握面向對象程序設計的基本概念和基本特征。2了解面向主體的程序設計方法;掌握軟件工程的基本概念。3掌握軟件工程的生命周期;了解軟件的測試方法;了解優(yōu)質軟件的評價方面。計算機基礎科學系重點與難點

面對對象程序設計的基本概念與基本思想,軟件工程的目標、軟件生命周期、軟件測試方法與軟件質量的評價是本講的重點,面向對程序設思想的領悟是本講的難點。計算機基礎科學系1.程序設計方法對象是獨立存在的客觀事物,是組成程序的構件,由屬性和方法構成。以模塊化設計為中心,結構按功能劃分成若干個模塊。模塊功能通過子程序調用實現(xiàn)。用主體模擬人的思想和行為,用多主體系統(tǒng)模擬社會結構化程序設計面向對象程序設計面向主體程序設計計算機基礎科學系1.1結構化程序設計結構化程序設計方法由迪克斯特拉(E.W.dijkstra)在1969年提出。基本思想:把一個待求解的問題按功能自頂向下分解成一個個相對簡單的子問題,即小模塊;然后用子程序或函數(shù)來解決這些子問題,用子程序或函數(shù)之間的數(shù)據(jù)通信來模擬這些子問題間的聯(lián)系;最后把這些子程序或函數(shù)裝配起來以形成解決問題的完整程序。開發(fā)方法:自上向下,逐步分解,分而治之計算機基礎科學系1.1結構化程序設計優(yōu)點缺點1.各模塊相對獨立、功能單一、結構清晰、接口簡單2.控制了程序設計的復雜性3.提高元件的可靠性4.縮短開發(fā)周期5.避免程序開發(fā)的重復勞動6.易于維護和功能擴充1.代碼的可重用性差

2.可維護性差

3.穩(wěn)定性差計算機基礎科學系1.2面向對象程序設計在面向對象程序設計中,設計人員直接用一種稱為“對象”的程序構件來描述客觀問題中的實體,并用“對象”間的“消息”來模擬實體間的聯(lián)系,用“類”來模擬這些實體間的共性。

(1)對象

對象是獨立存在的客觀事物。例如,一個人、一臺電腦、一輛汽車等都是一個對象。每個對象都有其相應的屬性及附屬于它的行為。例如:一輛汽車有型號、外殼、顏色等特性,又有啟動、加速、停止等行為。換檔開大燈剎車開冷氣顏色排檔數(shù)排氣量輪胎型號基本概念計算機基礎科學系1.2面向對象程序設計對象有兩個特征:屬性狀態(tài)和行為。例如:一個人有他的身高或體重作屬性,

并有他的行為:如唱歌、打球、騎摩托車、開汽車。而在程序設計中,軟件對象的概念由真實世界對象而來。對象的概念是面向對象,軟件對象將狀態(tài)保存在變量或稱數(shù)據(jù)字段里。而行為則借助方法為工具來實現(xiàn)。datafield1datafieldnmethod1methodn數(shù)據(jù)字段(狀態(tài))方法(行為)計算機基礎科學系1.2面向對象程序設計又如:在下圖中,有一個對話框對象,三個標簽對象,三個文本框對象,兩個命令按鈕對象,這些對象的組合構成了加法運算程序的界面。

作為對象之一的“確定”命令按鈕的主要屬性有按鈕的寬度與高度,按鈕的標題等;方法是用戶為命令按鈕寫的程序代碼。該程序代碼將兩個文本框中的數(shù)相加顯示在第三個文本框中。圖1加法運算程序計算機基礎科學系1.2面向對象程序設計(2)類類在漢語詞典中的解釋為“很多相似事物的綜合,如種類、類別、人類等”。在面向對象程序設計中,類是具有相同屬性和相同操作(服務)的對象的集合,是一個抽象的概念,而一個對象則是類的一個“實例”。例如:汽車是一個抽象的類,具體的對象可以是:轎車、吉普車、中巴車、客車、跑車等。又如,在面向對象程序中,按鈕是類,具體的按鈕是由按鈕類來創(chuàng)建的一個實例。又如,Shape也是類,通過改變Shape的屬性可以創(chuàng)建圓、正方形、橢圓等形狀。

計算機基礎科學系1.2面向對象程序設計(3)消息對象之間進行通信的結構叫做消息。在對象的操作中,當一個消息發(fā)送給某個對象時,消息包含接收對象去執(zhí)行某種操作的信息。如當你(一個對象)發(fā)動汽車(另一個對象),踩油門(交互)后,汽車內部就發(fā)生一連串復雜的行為。datafield1datafieldnmethodnmethod1對象A對象B消息計算機基礎科學系1.2面向對象程序設計抽象封裝繼承

同類事物具有共同性,每個事物又具有其特殊性。運用抽象的原則舍棄對象的特殊性,抽取其共同性,則得到一個適應于一批對象的類,這便是父類,而把具有特殊性的類稱為子類。封裝可被理解為一種用做保護的包裝器,以防止代碼和數(shù)據(jù)被外部代碼任意訪問,而要對其訪問時則通過一個明確定義的接口實現(xiàn)。在軟件程序中,并不需要知道一個類的完整結構,只要知道調用的方法。好比開車換檔時,不須知道變速箱、齒輪等是如何運作的,只要知道將檔排到哪里即可?;咎卣饔嬎銠C基礎科學系1.2面向對象程序設計1.模塊化:一個對象的原始文件可以獨立地被撰寫及維護而不影響其他對象。而且對象可以輕易地在系統(tǒng)中來回地傳遞使用。就好像你借車給朋友,而它仍能正常地運作一樣。2.信息隱藏:一個對象有一個公開的接口可供其他的對象與之溝通,但對象仍然維持私有的信息及方法,這些信息及方法可以在任何時間被修改,而不影響那些依賴此對象的其他對象。3.軟件復用:類的封裝特性使得類可重用性大為提高,這樣的有機單元特別適宜構建大型標準化的應用軟件系統(tǒng),可以大幅度地提高生產(chǎn)效率。封裝的好處:計算機基礎科學系1.2面向對象程序設計繼承多態(tài)繼承

繼承是指一個對象從另一個對象中獲得屬性的過程,它支持按層次分類的概念。例如,波斯貓是貓的一種,貓又是哺乳動物的一種,哺乳動物又是動物的一種。

子類的對象擁有其父類的全部或部分屬性與方法,即稱子類對父類的繼承。

同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結果,即多態(tài)性。比如同樣的加法,把兩個時間加在一起和把兩個整數(shù)加在一起完全不同?;咎卣饔嬎銠C基礎科學系1.2面向對象程序設計

注意:當對“父類”進行修改后,這種修改會立即反映到所有以該“父類”為基礎而建立的全部“子類”中,不管這些“子類”是在“父類”修改前還是修改后建立的?!白宇悺睂Α案割悺钡睦^承如此,以一個“類”為基礎建立的“對象”,對所屬“類”的繼承也是如此。在子類繼承父類的同時,可以重新定義某些屬性,并重寫某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能。繼承的好處:實現(xiàn)代碼重用計算機基礎科學系1.3面向主體程序設計

面向主體方法是希望通過對人解決應用問題的智能行為進行模擬,在軟件解空間中建立一種嵌入在不斷變化,不確定世界中,能進行感知并能自主采取行動的計算實體。主體是含有心智成分,如信念,愿望,能力,職責,承諾等的實體。學習能力反應性社會性自主性主體的特征主體在沒有人直接干預下能夠采取行動,并能控制自己的行為和內部狀態(tài)。主體能夠感知它們的環(huán)境,并以實時方式響應環(huán)境中發(fā)生的變化。主體能夠根據(jù)其求解狀態(tài)和技能,在合適的時候與其他主體交互,以提高自己的問題求解能力或幫助其他主體的問題求解活動。主體通過學習以往的經(jīng)驗不斷改善自己對同一問題的求解能力。計算機基礎科學系2.軟件工程基礎IEEE【IEE83】給出的軟件工程定義:“軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法?!盜EEE【IEE93】給出了一個更加綜合的定義:“將系統(tǒng)化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將工程化應用于軟件中?!避浖こ淌菓糜嬎銠C科學、數(shù)學及管理科學等原理開發(fā)軟件的工程。它借鑒傳統(tǒng)工程的原則、方法,以提高質量,降低成本為目的。

計算機軟件是包括程序、數(shù)據(jù)及相關文檔資料的完整的集合。

軟件工程則是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序的總稱。軟件工程包括軟件開發(fā)與設計的方法,軟件開發(fā)過程使用的工具,以及軟件開發(fā)的過程。計算機基礎科學系2.1軟件工程的目標

軟件工程的目標是:在給定成本、進度的前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的軟件產(chǎn)品。軟件工程是一門工程性學科,目的是成功地建造一個大型軟件系統(tǒng)。所謂成功,即:付出較低的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護用費;能按時完成開發(fā)任務,及時交付使用;以及開發(fā)的軟件可靠性高等等。計算機基礎科學系2.2軟件生命周期問題定義及規(guī)劃需求分析軟件設計程序編碼軟件測試軟件生命周期軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用的過程。運行維護計算機基礎科學系2.3軟件測試方法軟件測試是發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試方法AddYourText靜態(tài)測試白盒測試動態(tài)測試黑盒測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量或不實際運行軟件,這種測試方法主要通過人工進行。主要方法有邏輯覆蓋、基本路徑測試。主要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)結構或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯誤。計算機基礎科學系2.3軟件測試方法系統(tǒng)測試驗收測試集成測試單元測試

軟件測試的目的就是要在軟件投入生產(chǎn)運行之前,盡可能多地發(fā)現(xiàn)軟件中的錯誤。大量統(tǒng)計資料表明,軟件測試的工作量往往占軟件開發(fā)總工作量的40%以上,在極端情況下,軟件測試所花費的成本,可能相當于軟件工程其它開發(fā)步驟總成本的3~5倍。因此,必須高度重視軟件測試工作。測試過程計算機基礎科學系2.4軟件質量

軟件工程學的最終目標是獲得優(yōu)質量的軟件。所謂優(yōu)質軟件是指軟件能夠滿足用戶顯式或隱式的需求,文檔齊全,符合組織的操作標準,在其開發(fā)使用的硬件上高效運行。

可靠性效率可理解性可維護性如何評價軟件質量?計算機基礎科學系總結對象是獨立存在的客觀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論