版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
詳細設計的目標詳細設計的根本目標是:詳細設計的基本任務為每個模塊進行詳細的算法設計;為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設計;對數(shù)據(jù)庫進行物理設計;其他設計:
確定程序模塊間的詳細接口,根據(jù)軟件系統(tǒng)的類型,還可能要進行代碼設計、輸入輸出格式設計、人機界面設計等設計;
編寫詳細設計說明書;對詳細設計進行評審。第6章詳細設計(模塊設計)第6章詳細設計(模塊設計)6.1結(jié)構(gòu)化程序設計(SP)6.2人機界面設計6.3過程設計工具6.4面向數(shù)據(jù)結(jié)構(gòu)的設計方法6.5程序復雜程度的定量度量一.結(jié)構(gòu)化程序設計(SP)
的主要思想6.1結(jié)構(gòu)化程序設計主要思想設計方法:自頂向下、逐步求精結(jié)構(gòu)化程序設計:指導人們用良好的思想方法開發(fā)出易理解、易驗證的程序。需求分析階段SA方法總體設計階段SD方法詳細設計階段SP方法一.結(jié)構(gòu)化程序設計(SP)
的主要思想6.1結(jié)構(gòu)化程序設計二.結(jié)構(gòu)化程序設計(SP)
的三種基本控制結(jié)構(gòu)1966年,C.Bohm和G.Jacopini證明:只用三種基本控制結(jié)構(gòu)就能實現(xiàn)任何單入口單出口的程序。結(jié)構(gòu)化程序設計的三種基本控制結(jié)構(gòu)
共同特征:嚴格地只有一個入口和一個出口順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)ABexpATF分支結(jié)構(gòu)expABTF6.1結(jié)構(gòu)化程序設計三.結(jié)構(gòu)化程序設計(SP)
的設計準則一個程序模塊內(nèi)的基本結(jié)構(gòu)(即順序、選擇和循環(huán))應盡量少;
將一個基本結(jié)構(gòu)組成一個容易識別的程序塊;
程序塊的入/出口都只有一個
6.1結(jié)構(gòu)化程序設計四.如何把非結(jié)構(gòu)化的程序
轉(zhuǎn)化成結(jié)構(gòu)化的程序1.重復編碼法:6.1結(jié)構(gòu)化程序設計1243goto語句非結(jié)構(gòu)化程序1243結(jié)構(gòu)化程序4WHILEpDOBEGIN…IFqTHENGOTOL1;A;BEND;L1:…非結(jié)構(gòu)化程序四.如何把非結(jié)構(gòu)化的程序
轉(zhuǎn)化成結(jié)構(gòu)化的程序2.布爾標識法:6.1結(jié)構(gòu)化程序設計bool:=true;WHILE(pandbool)DOBEGIN…IFqTHENbool:=false
ELSEBEGINA;BENDEND;…結(jié)構(gòu)化程序圖6.2其他常用的控制結(jié)構(gòu)五、結(jié)構(gòu)化程序設計經(jīng)典的結(jié)構(gòu)程序設計:只允許使用順序、IF-THEN-ELSE型分支和DO-WHILE型循環(huán)這3種基本控制結(jié)構(gòu)。擴展的結(jié)構(gòu)程序設計:還允許使用DO-CASE型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)結(jié)構(gòu);修正的結(jié)構(gòu)程序設計:再加上允許在循環(huán)體中使用LEAVE(或BREAK)結(jié)構(gòu)。五、結(jié)構(gòu)化程序設計六.結(jié)構(gòu)化程序設計(SP)的優(yōu)點自頂向下、逐步求精:采用先整體后局部、先抽象后具體的方法開發(fā)出來的軟件具有良好的結(jié)構(gòu),且開發(fā)出的程序易于理解;單入口單出口:良好的結(jié)構(gòu)特征,降低復雜度,增強可讀性,可維護性,可驗證性等,從而提高軟件開發(fā)工程的成功率和生產(chǎn)率;有利于程序正確性的證明。6.1結(jié)構(gòu)化程序設計人機界面(Human-ComputerInterface,簡稱HCI)又稱人-機接口或用戶界面,它是用戶與計算機系統(tǒng)交換信息的媒介,更是用戶使用計算機系統(tǒng)的綜合操作環(huán)境。設計用戶界面不僅需要計算機科學的理論和知識,而且需要認知心理學以及人-機工程學、語言學等學科的知識。人機界面概述6.2人機界面設計最有影響的事件和成果
1963年發(fā)明鼠標器的美國斯坦福研究所的D.Engelbart,他預言鼠標器比其他輸入設備都好,并在超文本系統(tǒng)、導航工具方面做了杰出的成果(AugmentedHumanIntellectproject),而獲1997年ACM圖靈獎。10年后鼠標器經(jīng)不斷改進,成為影響當代計算機使用的最重要成果。最有影響的事件和成果70年代Xerox研究中心的AlanKay提出了Smalltalk面向?qū)ο蟪绦蛟O計等思想,并發(fā)明了重疊式多窗口系統(tǒng)。1989年TimBerners-Lee在日內(nèi)瓦的CERN用HTML及HTTP開發(fā)了WWW網(wǎng),隨后出現(xiàn)了各種瀏覽器(網(wǎng)絡用戶界面),使互聯(lián)網(wǎng)飛速發(fā)展起來。最有影響的事件和成果90年代美國麻省理工學院N.Negroponte領導的媒體實驗室在新一代多通道用戶界面方面(包括語音、手勢、智能體等),做了大量開創(chuàng)性的工作。90年代美國Xerox公司PARC的首席科學家MarkWeiser首先提出“無所不在計算(UbiquitousComputing)”思想。人機界面的風格——四代。第一代界面——命令和詢問方式。通信完全以正文形式并通過用戶命令和用戶對系統(tǒng)詢問的響應來完成。例如:D>runprog1.exe/debug='on'/out=pl/in=t1/alloc=1000kRUNALLOCATIONTOBEQUEUED?>>yesAUTOMATICCHECKPOINTINGINTERVAL?>>5缺點:易出錯、不友好,且不易于學習。6.2人機界面設計人機界面概述第二代界面——簡單的菜單式,例如:
chooseprogramoptionthatisdesired:1=inputdatamanually2=inputdatafromexistingdatafile3=performsimplifiedanalysis4=performdetailedanalysis5=producetabularoutput6=producegraphicaloutput7=otheroptionsclassesselectoption?_這種方式與命令行方式相比不易出錯,但使用起來仍然乏味。6.2人機界面設計人機界面概述第三代界面——面向窗口的點選界面(pointandpickinterface)亦稱為WIMP界面,即:窗口(windows)、四位一體,圖標(icons)、形成桌面(desktop)
菜單(menus)、
指示器(pointingdevice)6.2人機界面設計人機界面概述第三代界面的優(yōu)點1.能同時顯示不同種類的信息,使用戶可在幾個工作環(huán)境中切換而不丟失幾個工作之間的聯(lián)系。2.用戶通過下拉式菜單(pull?downmenu)可方便地執(zhí)行控制型和對話型任務。3.引入圖標、按鈕和滾動條技術(shù),可大大減少鍵盤輸入,這對那些不精于打字的用戶無疑提高了交互效率,極大地推動了計算機應用。6.2人機界面設計人機界面概述第四代界面:最新一代HCI,把第三代HCI技術(shù)與超文本、多任務概念結(jié)合起來,使用戶可同時執(zhí)行多個任務(以用戶的觀點)。第四代界面已出現(xiàn)在許多工作站和高性能PC機上。6.2人機界面設計人機界面概述人機界面技術(shù)的進展自然、高效的多通道交互移動手持設備的人機交互智能用戶界面1.自然、高效的多通道交互多通道用戶界面多通道交互(Multi-ModalInteraction):一種使用多種通道與計算機通信的人機交互方式。采用這種方式的計算機用戶界面稱為“多通道用戶界面”。
通道(Modality):源于心理學的概念,涵蓋了用戶表達意圖、執(zhí)行動作或感知反饋信息的各種通信方法,如言語、眼神、臉部表情、唇動、手動、手勢、頭動、肢體姿勢、觸覺、嗅覺或味覺等。多通道交互多通道交互是近年來迅速發(fā)展的一種人機交互技術(shù),它既適應了“以人為中心”的自然交互準則,也推動了互聯(lián)網(wǎng)時代信息產(chǎn)業(yè)(包括移動計算,移動通信、網(wǎng)絡服務器等)的快速發(fā)展。多通道交互的各類通道(界面)技術(shù)中,有不少已經(jīng)實用化、產(chǎn)品化、商品化。其中我國科技人員做出了不少優(yōu)異的工作。
手寫漢字識別中科院自動化所開發(fā)的“漢王筆”手寫漢字識別系統(tǒng),經(jīng)過近20年的研究和開發(fā),已能識別27000漢字,當用非草寫漢字、以每分鐘12個漢字的速度書寫時,識別率可達99.8%。我國現(xiàn)在已約有300萬手寫漢字識別系統(tǒng)的用戶。
筆式交互技術(shù)在筆式交互技術(shù)研究中,中國科學院軟件所人機交互技術(shù)與智能信息處理實驗室在筆式交互軟件開發(fā)平臺、面向教學的筆式辦公套件(包括課件制作、筆式授課、筆式數(shù)學公式計算器、筆式簡譜制作等)、面向兒童的神筆馬良系統(tǒng)的開發(fā)應用方面均有出色的工作,其中不少已經(jīng)實用化、產(chǎn)品化。
基于筆的字處理EasyEditor手寫數(shù)學公式視線跟蹤(眼動)技術(shù)視線跟蹤(眼動)技術(shù)由于其可能代替鍵盤輸入、鼠標移動的功能,可能達到“所視即所得”(WhatYouLookatisWhatYouGet),因而對殘疾人和飛行員等使用有極大的吸引力。視線跟蹤(眼動)技術(shù)目前一類產(chǎn)品是采用頭戴微型攝像頭的設備,它用來獲取兩眼瞳孔(或角膜)中視點。其采樣率、精度高,可靠。另一類是在PC機前裝了兩個微型攝像頭的設備,精度不高,適合殘疾人操作計算機使用。
2.移動手持設備的人機交互移動手持設備的交互移動手持計算設備是指具有計算功能的PDA、掌上電腦、智能手機這類小型設備。將計算功能嵌入手機、通信功能加入掌上電腦已成潮流。移動手持設備的交互北京大學人機交互和多媒體研究室,開發(fā)了TGH
是在手持移動設備上開發(fā)的一個導游系統(tǒng),支持語音和筆的多通道交互方式。使用語音合成與文字、圖片相結(jié)合的方式輸出。其中引入了多種上下文輔助交互,如用戶地理空間位置、用戶移動方向、時間等。3.
智能用戶界面智能空間及智能用戶界面智能空間(SmartSpace)是指一個嵌入了計算、信息設備和多通道傳感器的工作空間。由于在智能空間里,用戶能方便地訪問信息和獲得計算機的服務,因而可高效地單獨工作或與他人協(xié)同工作。智能用戶界面的最終目標是使人機交互成為和人-人交互一樣自然、方便。
智能空間及智能用戶界面國際上已開展了許多智能空間的項目MIT IntelligentRoomStanford InteractiveWorkspaceGeorgiaTech. AwareHomeMicrosoft EasyLiving
IBM BlueSpaceGMD iLand
清華大學 智能教室MIT IntelligentRoom
清華大學 智能教室
設計人機界面,必須考慮四個方面:系統(tǒng)的響應時間;用戶幫助設施;出錯信息處理;命令方式。1)系統(tǒng)響應時間指當用戶執(zhí)行了某個控制動作后(如,點擊鼠標器等),系統(tǒng)做出反應的時間(指輸出信息或執(zhí)行對應的動作)。系統(tǒng)響應時間過長、不同命令在響應時間上的差別過于懸殊,用戶將難以接受。6.2人機界面設計一.設計問題2)用戶都希望得到聯(lián)機幫助。
聯(lián)機幫助設施有兩類:集成式和附加式。①集成式幫助一般都與軟件設計同時考慮,上下文敏感,整個幫助過程快捷而友好;②附加式幫助一般是在軟件完成后附上一個受限的聯(lián)機用戶手冊。此外,還要考慮諸如幫助范圍(僅考慮部分還是全部功能)、用戶求助的途徑、幫助信息的顯示、用戶如何返回正常交互工作及幫助信息本身如何組織等一系列問題。6.2人機界面設計一.設計問題3)出錯信息處理出錯信息應選用用戶明了、含義準確的術(shù)語描述,同時還應盡可能提供一些有關錯誤恢復的建議。此外,顯示出錯信息時,若輔以聽覺(如鈴聲)、視覺(專用顏色)刺激,則效果更佳。6.2人機界面設計一.設計問題4)命令交互鍵盤命令曾經(jīng)一度是用戶與軟件系統(tǒng)之間最通用的交互方式,隨著面向窗口的界面的出現(xiàn),鍵盤命令雖不再是唯一的交互形式,但許多有經(jīng)驗的熟練的軟件人員仍喜愛這一方式,更多的情形是菜單與鍵盤命令并存,供用戶自由選用。6.2人機界面設計一.設計問題用戶界面設計是一個迭代過程,直至與用戶模型和系統(tǒng)假想一致為止。修改設計創(chuàng)建新界面原型用戶評審界面創(chuàng)建界面原型1初步設計設計人員分析用戶評審意見界面設計完畢圖12-3-1界面設計演進過程6.2人機界面設計二.設計過程一.過程設計工具分類6.3過程設計工具圖形表格語言詳細設計編碼實現(xiàn)程序流程圖盒圖(N-S圖)問題分析圖(PAD圖)判定樹判定表過程設計語言PDL或偽碼(Psudo-code)基于某種程序設計語言的源程序代碼要求:無二義性描述二.程序流程圖
歷史最悠久,使用最廣泛;但使用最混亂.程序流程圖中使用的符號6.3過程設計工具程序流程圖也稱為程序框圖,它使用五種基本控制結(jié)構(gòu):優(yōu)點:簡單易用、容易修改;對控制流程直觀、易于理解、易于復審,便于初學者掌握。缺點:誘使程序員過早考慮控制流程,而不考慮程序的全局結(jié)構(gòu);不是逐步求精的過程。采用箭頭表示控制流,隨意轉(zhuǎn)移控制,導致破壞結(jié)構(gòu)程序設計的精神;不易表示數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)的處理與變換不清楚;6.3過程設計工具二.程序流程圖
三.盒圖(N-S圖)不允許違背結(jié)構(gòu)化程序設計精神沒有箭頭,因此不允許隨意轉(zhuǎn)移控制。由美國I.Nassi和B.Shneiderman,1973年提出。
功能域(即一個結(jié)構(gòu)的作用域)明確
不可能任意轉(zhuǎn)移控制
易于確定局部和全局數(shù)據(jù)的作用域
易于表現(xiàn)嵌套關系和模塊的層次結(jié)構(gòu)堅持使用盒圖作為詳細設計的工具,可以使程序員逐步養(yǎng)成用結(jié)構(gòu)化的方式思考問題和解決問題的習慣。6.3過程設計工具三.盒圖(N-S圖)N-S圖的基本符號then部分F條件Tif-then結(jié)構(gòu)then部分else部分F條件Tif-then-else結(jié)構(gòu)循環(huán)條件do-while部分do-while結(jié)構(gòu)循環(huán)條件do-until部分do-until結(jié)構(gòu)子程序P調(diào)用子程序
case條件值1case1部分值2case2部分值ncasen部分case結(jié)構(gòu)任務1任務2任務3順序結(jié)構(gòu)6.3過程設計工具三.盒圖(N-S圖)例6.3過程設計工具x4TFDo-Untilx5ighfkx1TFbDo-Untilx6ajx21cDo-Whilex323dek:四.問題分析圖(ProblemAnalysisDiagram
圖)6.3過程設計工具PAD圖日立公司,1973年發(fā)明采用二維樹形結(jié)構(gòu)來表示程序的控制流。它即克服了傳統(tǒng)的流程圖不能清晰表現(xiàn)程序結(jié)構(gòu)的缺點,又不像N-S圖那樣受到把全部程序約束在一個方框內(nèi)的限制,這就是其優(yōu)勢所在。
四.問題分析圖(ProblemAnalysisDiagram
圖)P1P2順序結(jié)構(gòu)Case分支與分層結(jié)構(gòu)
(用def細化處理框)P1P2PnX=L1L2LnP11While型循環(huán)結(jié)構(gòu)WHILECP連接(語句標號)6.3過程設計工具Until型循環(huán)結(jié)構(gòu)UNTILCPP1P2C選擇結(jié)構(gòu)(ifCthenP1elseP2)def四.問題分析圖(ProblemAnalysisDiagram
圖)開始結(jié)束aj
Untilx5i
Untilx6bx1kfx4ghdefkx2de123Whilex3c6.3過程設計工具四.問題分析圖(ProblemAnalysisDiagram
圖)主要優(yōu)點:(1)由該圖設計出的程序必為結(jié)構(gòu)化的(2)結(jié)構(gòu)非常清晰,豎線的條數(shù)即程序的層次數(shù)(3)所表現(xiàn)的程序邏輯易讀、易懂、易記(4)可利用軟件工具自動轉(zhuǎn)換為高級語言源程序(5)既可表示程序邏輯,也可描繪數(shù)據(jù)結(jié)構(gòu)(6)支持自頂向下、逐步求精(利用def)面向高級語言:FORTRAN,PASCAL等都有相應的圖形符號,所以將PAD圖轉(zhuǎn)換成對應的高級語言程序比較容易6.3過程設計工具五.判定表判定表:6.3過程設計工具條件
(所有條件)條件組合項(條件組合的矩陣)操作(所有可能的動作)操作執(zhí)行項(與每種條件組合相應的動作)復雜的條件組合應做的動作建立判定表的步驟五.判定表6.3過程設計工具判定表的分析過程五.判定表6.3過程設計工具步驟1:求出各種判定條件可能的取值;五.判定表6.3過程設計工具步驟2:根據(jù)條件取值數(shù),計算條件組合數(shù)五.判定表6.3過程設計工具步驟3:在判定表中列出所有條件組合,求出各組合的操作判定值五.判定表6.3過程設計工具五.判定表6.3過程設計工具五.判定表6.3過程設計工具五.判定表6.3過程設計工具五.判定表6.3過程設計工具五.判定表6.3過程設計工具五.判定表6.3過程設計工具五.判定表6.3過程設計工具下面以行李托運費的算法為例說明判定表的組織方法。假設某航空公司規(guī)定,乘客可以免費托運重量不超過30kg的行李。當行李重量超過30kg時,對頭等艙的國內(nèi)乘客超重部分每公斤收費4元,對其他艙的國內(nèi)乘客超重部分每公斤收費6元,對外國乘客超重部分每公斤收費比國內(nèi)乘客多一倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半。五.判定表6.3過程設計工具五.判定表RulesRuleConditionrowsActionrows判定表適合描述:包含復雜的條件組合,并要根據(jù)這些條件選擇動作執(zhí)行的模塊;缺點:不能表示:循環(huán)、順序和選擇。當條件為多值條件時(如機票分為頭等艙、二等艙、經(jīng)濟艙等多種級別),判定表的簡潔程度也下降。其含義不能一眼看出,初用者需要一個簡短的學習過程六.判定樹6.3過程設計工具行李費算法行李重量W>30行李重量W30免費國內(nèi)乘客外國乘客頭等艙其他艙殘疾乘客正常乘客(W-30)2(W-30)4殘疾乘客正常乘客(W-30)3(W-30)6頭等艙其他艙殘疾乘客正常乘客(W-30)4(W-30)8殘疾乘客正常乘客(W-30)6(W-30)12判定樹:判定表的變種;形式簡單,但簡潔性不如判定表判定樹形式簡單:不用任何說明,一眼可看出含義;易學易用。缺點:簡潔性較差:同一個數(shù)據(jù)元素的值往往要要重復寫多遍。分支的次序:對判定樹的簡潔程度有較大影響七.過程設計語言PDL(偽碼)6.3過程設計工具偽碼:一種以正文形式表示數(shù)據(jù)和處理過程的設計工具,是一種混合語言。偽碼=嚴格的關鍵字外部語法+自然語言的詞匯用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)靈活表示實際操作和條件C、PASCAL,借用某種結(jié)構(gòu)化的程序設計語言的語法控制框架。英語/漢語,某種自然語言(1)、數(shù)據(jù)說明:格式:TYPE<變量名>AS<限定詞1><限定詞2>其功能是定義數(shù)據(jù)的類型和作用域說明:1.變量名:是一個模塊內(nèi)部使用的變量或模塊間共用的全局變量名。
2.限定詞1:標明數(shù)據(jù)類型
3.限定詞2:標明該變量的作用域
TYPEnumberASSTRING
LENGTH(12)(2)、程序塊:PDL的過程成分是由塊結(jié)構(gòu)構(gòu)成的,而塊將作為一個單個的實體來執(zhí)行。
BEGIN<塊名><一組偽代碼語句>END(3)、子程序結(jié)構(gòu):把PDL中的過程稱為子程序。
PROCEDURE<子程序名><一組屬性>INTERFACE<參數(shù)表><程序塊或一組偽代碼語句>END(4)、基本控制結(jié)構(gòu):
IF<條件>THEN<程序塊/偽代碼語句組>;
ELSE<程序塊/偽代碼語句組>;
ENDIF
---選擇型結(jié)構(gòu)
READ/WRITETO<設備><I/O表>
---輸入/輸出結(jié)構(gòu)
DOWHILE<條件描述><程序塊/偽代碼語句組>;
ENDDO
REPEATUNTIL<條件描述><程序塊/偽代碼語句組>;
ENDREP
---重復型結(jié)構(gòu)
DOLOOP<條件描述><程序塊/偽代碼語句組>;
EXITWHENENDLOOP
DOFOR<下標=下標表,表達式><程序塊/偽代碼語句組>;
ENDFOR
---重復型結(jié)構(gòu)
----多路選擇結(jié)構(gòu)
CASEOF<case變量名>;
WHEN<case條件1>SELECT<程序塊/偽代碼語句組>;
WHEN<case條件2>SELECT<程序塊/偽代碼語句組>;
……DEFAULT:<缺省或錯誤case:<程序塊/偽代碼語句組>;
ENDCASEPDL的特性七.過程設計語言PDL(偽碼)6.3過程設計工具示例:拼寫檢查程序七.過程設計語言PDL(偽碼)6.3過程設計工具使用PDL語言逐步求精七.過程設計語言PDL(偽碼)6.3過程設計工具使用PDL語言逐步求精七.過程設計語言PDL(偽碼)6.3過程設計工具PDL的優(yōu)點七.過程設計語言PDL(偽碼)6.3過程設計工具八.總結(jié)6.3過程設計工具要求掌握:程序流程圖N-S圖PAD圖PDL語言(偽碼)判定樹判定表相互轉(zhuǎn)換面向數(shù)據(jù)結(jié)構(gòu)的設計方法
原理:重復出現(xiàn)的數(shù)據(jù)通常由循環(huán)控制結(jié)構(gòu)處理;選擇數(shù)據(jù)通常由分支控制結(jié)構(gòu)。缺點:沒有足夠重視和體現(xiàn)模塊獨立原理適用范圍:詳細設計階段面向數(shù)據(jù)結(jié)構(gòu)的設計方法:Jackson方法:英國人M.Jackson在1973年提出Warnier方法:法國人J.D.Warnier在1973年提出6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法面向數(shù)據(jù)結(jié)構(gòu)的設計方法
6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法映射數(shù)據(jù)結(jié)構(gòu)(Jackson圖)程序結(jié)構(gòu)(Jackson圖)程序過程表示(Jackson偽代碼)程序分析程序設計一.Jackson圖6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法Jackson圖描述數(shù)據(jù)結(jié)構(gòu)小圈表示選擇結(jié)構(gòu),星號表示重復結(jié)構(gòu)。AB°
D°
C°ACBDAB*選擇結(jié)構(gòu)根據(jù)條件,A是B或C或D中的某一個重復結(jié)構(gòu)A由B出現(xiàn)N次(N≥0)組成順序結(jié)構(gòu)A由B、C、D3個元素順序組成每個元素只出現(xiàn)一次,出現(xiàn)的次序依次為B、C、D
Jackson圖有下述優(yōu)點:1.便于表示層次結(jié)構(gòu),而且是對結(jié)構(gòu)進行自頂向下分解的有力工具;2.形象直觀可讀性好;3.既能表示數(shù)據(jù)結(jié)構(gòu)也能表示程序結(jié)構(gòu)(因為結(jié)構(gòu)程序設計也只使用上述3種基本控制結(jié)構(gòu))。6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法一.Jackson圖二.改進的Jackson圖6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法改進:選擇條件或循環(huán)結(jié)束條件直接在圖上表示出來,增強圖的表達能力,容易直接把圖翻譯成程序框間連線為直線而不是斜線,從而容易在行式打印機上輸出。二.改進的Jackson圖6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法選擇重復AB*I(i)順序ACBDAB°—°S(i)AB°D°S(i)C°可選在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復出現(xiàn)或選擇出現(xiàn)的元素即:第一個圖中的BCD不能是在右上角有小圓圈或星號的元素。Jackson圖、層次圖和層次方框圖的區(qū)別:6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法圖名方框連線用途階段Jackson圖數(shù)據(jù)或程序組成設計模塊內(nèi)部處理過程詳細設計層次圖模塊調(diào)用描繪軟件總體結(jié)構(gòu)總體設計層次方框圖數(shù)據(jù)抽象分析用戶需要的數(shù)據(jù)結(jié)構(gòu)需求分析二.改進的Jackson圖
三.Jackson方法6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法總之,描繪程序結(jié)構(gòu)的Jackson圖應該綜合輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的層次關系而導出來。
步驟4:列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并分配到程序結(jié)構(gòu)圖的適當位置。步驟5:用偽碼表示程序。偽碼和Jackson圖是完全對應的。順序ACBDAseqBCDAend三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法3種基本結(jié)構(gòu)對應的偽碼選擇AB°D°S(i)C°Aselectcond1
BAorcond2CAorcond3DAend三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法重復AB*I(i)Aiter
untilcondBAendAiter
whilecondBAend三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法八.總結(jié)6.3過程設計工具要求掌握:程序流程圖N-S圖PAD圖PDL語言(偽碼)判定樹判定表相互轉(zhuǎn)換面向數(shù)據(jù)結(jié)構(gòu)的設計方法
6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法映射數(shù)據(jù)結(jié)構(gòu)(Jackson圖)程序結(jié)構(gòu)(Jackson圖)程序過程表示(Jackson偽代碼)程序分析程序設計二.改進的Jackson圖6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法選擇重復AB*I(i)順序ACBDAB°—°S(i)AB°D°S(i)C°可選在構(gòu)成順序結(jié)構(gòu)的元素中不能有重復出現(xiàn)或選擇出現(xiàn)的元素即:第一個圖中的BCD不能是在右上角有小圓圈或星號的元素。三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法三.Jackson方法
1.五個基本步驟6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法總之,描繪程序結(jié)構(gòu)的Jackson圖應該綜合輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)的層次關系而導出來。
步驟4:列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),并分配到程序結(jié)構(gòu)圖的適當位置。步驟5:用偽碼表示程序。偽碼和Jackson圖是完全對應的。6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法三.Jackson方法
2.實例分析三.Jackson方法
2.實例分析6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法輸入、輸出的數(shù)據(jù)結(jié)構(gòu)及對應關系分別為:輸入數(shù)據(jù)結(jié)構(gòu)輸出數(shù)據(jù)結(jié)構(gòu)正文文件字符串*字符*非空格°空格°IIS輸出表格表格體串信息*空格數(shù)字符串空格總數(shù)I6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法三.Jackson方法
2.實例分析6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法3導出程序JackSon結(jié)構(gòu)圖
統(tǒng)計空格程序體處理字符串*印總數(shù)I處理非空格°處理空格°分析字符*S印字符串印空格數(shù)分析字符串I輸出表格表格體串信息*空格數(shù)字符串空格總數(shù)I三.Jackson方法
2.實例分析6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法3導出程序JackSon結(jié)構(gòu)圖統(tǒng)計空格程序體處理字符串*印總數(shù)I處理非空格°處理空格°分析字符*S印字符串印空格數(shù)分析字符串I正文文件字符串*字符*非空格°空格°IIS列出所有操作和條件,并且把它們分配到程序結(jié)構(gòu)圖的適當位置。(1)停止 (2)打開文件(3)關閉文件 (4)印出字符串(5)印出空格數(shù)目 (6)印出空格總數(shù)(7)sum:=sum+1 //sum是保存空格個數(shù)的變量(8)totalsum:=totalsum+sum//totalsum保存空格總數(shù)(9)讀入字符串 (10)sum:=0(11)totalsum:=0 (12)pointer:=1//指示當前分析的字符在字符串中的位置(13)pointer:=pointer+1I(1)文件結(jié)束、 I(2)字符串結(jié)束
S(3)字符是空格三.Jackson方法
2.實例分析6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法經(jīng)過簡單分析不難把這些操作和條件分配到程序結(jié)構(gòu)圖的適當位置。三.Jackson方法
2.實例分析6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法5、寫出偽碼。統(tǒng)計空格seq
打開文件 讀入字符串
totalsum∶=0
程序體iteruntil文件結(jié)束 處理字符串seq
印字符串seq
印出字符串 印字符串end sum∶=0 pointer∶=1
分析字符串iteruntil字符串結(jié)束 分析字符select字符是空格 處理空格seq sum∶=sum+1 pointer∶=pointer+1
處理空格end
分析字符or字符不是空格 處理非空格seq pointer∶=pointer+1
處理非空格end
分析字符end
分析字符串end
印空格數(shù)seq
印出空格數(shù)目 印空格數(shù)end
totalsum∶=totalsum+sum
讀入字符串 處理字符串end
程序體end
印總數(shù)seq
印出空格總數(shù) 印總數(shù)end
關閉文件 停止統(tǒng)計空格end三.Jackson方法
3.Jackson方法小結(jié)6.4面向數(shù)據(jù)結(jié)構(gòu)設計方法程序復雜度主要指模塊內(nèi)程序的復雜性。它直接關聯(lián)到軟件開發(fā)費用的多少,開發(fā)周期的長短和軟件內(nèi)部潛伏錯誤的多少。減少程序復雜度,可提高軟件的簡單性和可理解性,并使軟件開發(fā)費用減少,開發(fā)周期縮短,軟件內(nèi)部潛藏錯誤減少。6.5程序復雜度定量度量程序復雜度6.5程序復雜度定量度量定量度量程序復雜程度的用處:程序的復雜程度乘以適當常數(shù)估算出軟件中錯誤的數(shù)量以及所需的開發(fā)工作量,可用于比較兩個不同的設計或兩個不同算法的優(yōu)劣;可以作為模塊規(guī)模的精確限度。程序復雜度為了度量程序復雜性,要求復雜性度量應滿足以下假設:●對于不合理的程序,例如對于長度動態(tài)增長的程序,或者對于原則上無法排錯的程序,不應當使用它進行復雜性計算;●它可以用來計算任何一個程序的復雜性;一.McCabe方法6.5程序復雜度定量度量什么是程序圖?一.McCabe方法6.5程序復雜度定量度量程序圖的基本元素一.McCabe方法6.5程序復雜度定量度量一.McCabe方法6.5程序復雜度定量度量程序流程圖與對應的流圖6.5程序復雜度定量度量一.McCabe方法6.5程序復雜度定量度量流圖中的結(jié)點可能具有以下的含義:過程塊:一組連續(xù)執(zhí)行的無分支的語句。在過程塊中,如果塊中的某個語句被執(zhí)行,那么塊中的所有其它語句也將會被執(zhí)行。例如:結(jié)點2和3、4和5。反例:3和4不是過程塊;匯聚點:程序中控制流的結(jié)合點(如果程序流程圖中這個結(jié)合點沒有對應的處理框應該在流圖中補上)。例如:結(jié)點9和10判定點(謂詞結(jié)點):程序中控制流的分叉點。例如:結(jié)點3、6圖由PDL翻譯成的流圖一.McCabe方法6.5程序復雜度定量度量環(huán)形復雜度V(G):強連通圖G中線性無關的有向環(huán)的個數(shù)。三種計算方法:V(G)=圖中平面區(qū)域的個數(shù)V(G)=P(判定結(jié)點的個數(shù))+1V(G)=E(邊數(shù))–N(結(jié)點數(shù))+2環(huán)形復雜性的計算方法6.5程序復雜度定量度量環(huán)形復雜性的計算方法6.5程序復雜度定量度量環(huán)形復雜性的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版(三起)(2001)三年級上冊 第5課 用計算機娛樂 說課稿
- 《第5課 算法的執(zhí)行》說課稿教學反思-2023-2024學年小學信息技術(shù)浙教版23六年級上冊
- Unit 2 Hobbies Reading 說課稿 -2024-2025學年譯林版七年級英語上冊
- 健身彈力帶操 說課稿-2024-2025學年高一上學期體育與健康人教版必修第一冊
- 8《紅樓春趣》說課稿-2024-2025學年五年級下冊語文統(tǒng)編版
- 二零二五年度安全生產(chǎn)文明工地安全防護設施設計及施工合同3篇
- 全國電子工業(yè)版初中信息技術(shù)第六冊第3單元3.1活動3《垃圾智能分類的圖像采集》說課稿
- 2024年酒店弱電設施升級改造工程合同范本
- 2025年度附期限個人信用貸款合同書(2025版)6篇
- 2025年度股權(quán)投資合同:初創(chuàng)企業(yè)投資與股權(quán)分配協(xié)議3篇
- 菏澤2024年山東菏澤市中心血站招聘15人筆試歷年典型考點(頻考版試卷)附帶答案詳解版
- 供熱通風與空調(diào)工程施工企業(yè)生產(chǎn)安全事故隱患排查治理體系實施指南
- 精-品解析:廣東省深圳市羅湖區(qū)2023-2024學年高一上學期期末考試化學試題(解析版)
- 記賬實操-基金管理公司的會計處理分錄示例
- 中國慢性便秘診治指南
- 兒童流感診療及預防指南(2024醫(yī)生版)
- 沐足行業(yè)嚴禁黃賭毒承諾書
- 2025年蛇年紅色喜慶中國風春節(jié)傳統(tǒng)節(jié)日介紹
- 河北省承德市2023-2024學年高一上學期期末物理試卷(含答案)
- 山西省2024年中考物理試題(含答案)
- 矯形器師(三級)試題
評論
0/150
提交評論