軟件工程詳細設計_第1頁
軟件工程詳細設計_第2頁
軟件工程詳細設計_第3頁
軟件工程詳細設計_第4頁
軟件工程詳細設計_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1/15/2023

第3章結構化分析與設計之詳細設計1/15/20232

主要內容詳細設計的目的和內容結構化程序設計界面設計詳細設計的工具

-程序流程圖、盒圖、PAD圖和PDL偽碼1/15/20233

詳細設計的目的和內容

詳細設計的目的:

為軟件結構圖(SC)中的每一個模塊確定采用的算法和模塊內

數(shù)據(jù)結構,用某種選定的表達工具給出清晰的描述。1/15/20234

詳細設計階段的主要任務為每一模塊確定算法確定每一模塊使用的數(shù)據(jù)結構確定模塊的外部接口和用戶界面為每一模塊設計一組測試用例1/15/20235……if(A.LT.B)goto120if(B.LT.C)goto110100write(6,*)C

goto140

110write(6,*)B

goto140

120if(A.LT.C)goto130

goto100

130write(6,*)A140continue

結構化程序設計1/15/2023無節(jié)制地使用了GOTO語句所產生的程序流程

M1/15/2023

結構化程序設計:背景資料-提出了信號量和PV原語-解決了“哲學家聚餐”問題-最短路徑算法的創(chuàng)造者-第一個Algol60編譯器的設計者-THE操作系統(tǒng)的設計和開發(fā)者-1972年獲圖靈獎-與D.E.Knuth并稱為我們這個時代最偉大的計算機科學家EdsgerW.Dijkstra1/15/2023GoToStatementConsideredHarmful,Dijkstra,1968

“goto,又見goto”-“thequalityofprogrammersisadecreasingfunctionofthedensityofgotostatementsintheprogramstheyproduce.”-“thegotostatementshouldbeabolishedfromall‘higherlevel’programminglanguages.”1/15/2023對goto應當取其精華,去其糟粕

“goto,又見goto”-Java語言中取消了goto語句,而且嚴格限制了標簽的使用范圍:標簽只能緊靠在循環(huán)語句之前out:for(i=0;i<m;i++)for(j=0;j<n;j++)if(a[i][j]==key)breakout;-很多面向對象語言引入了異常處理1/15/2023結構程序設計

結構化程序設計-1966年,B?hm和Jacopini證明,只需要順序、選擇和循環(huán)結構就可以寫出所有單入單出的程序-1977年,Mills提出程序應該單入單出1/15/2023

結構化程序設計:背景資料-數(shù)學家-IBM客座科學家-DistinguishedInformationScienceAwardin1985-WarnierPrizein1987-凈室(Cleanroom)軟件工程理論的提出者HarlanMills1/15/2023結構化程序設計最傳統(tǒng)的定義

結構化程序設計-僅通過順序、選擇、循環(huán)這3種結構進行連接-每個模塊只有一個入口一個出口修正和擴展-有助于提高程序可讀性和效率的情況下可以使用goto語句-可以使用break等語句(受限制的goto)-可以使用do-until,switch-case語句1/15/2023從鼠標說起:

界面設計-自動吸附的Winamp1/15/2023

界面設計-按鈕跟隨鼠標的ACDSee1/15/2023

界面設計-Windows左下角的“開始”-MacOS界面設計專家BruceTognazzini說過:“屏幕上用鼠標最容易指到的5個位置是:屏幕的四個角和鼠標指針當前的位置”1/15/2023界面設計的基本要求:好用,好看

界面設計-大學教育存在缺陷:沒有開設人機工程學、美學、心理學這些必修課。學生不知道如何設計出易用、美觀的界面,甚至想都沒有想過。當他們畢業(yè)后真正參與軟件開發(fā)時,只好憑著個人的經驗與感覺設計軟件的界面,結果往往得不到大眾用戶的認可開發(fā)人員的能力缺陷-開發(fā)人員還常犯“錯位”的毛病,以為只要自己感覺漂亮、使用方便,那么用戶也一定會滿意1/15/2023課件制作人:謝希仁原則1:用戶界面適合于軟件的功能

用戶界面設計:基本原則-軟件的功能需要通過用戶界面來展現(xiàn)-例如,對于一個三維建模軟件而言,如果用戶不能使用鼠標對模型進行旋轉、移動、縮放等操作,那么這個軟件的用戶界面就不適合于軟件的功能。如果不改進用戶界面的話,即使軟件的內核功能很強(如算法很先進),這個軟件也很難賣得出去1/15/202318原則2:容易理解

用戶界面設計:基本原則如果用戶很難理解界面的意圖,那么他使用起來肯定很費勁,因此:

-界面元素應當提供充分的提示,例如當鼠標移動到工具欄上的某個按鈕時,應當在該圖標旁邊出現(xiàn)功能提示1/15/202319

用戶界面設計:基本原則界面結構能夠清晰地反映工作流程,以便用戶按部就班地操作,比如提供向導

1/15/2023原則3:風格一致

用戶界面設計:基本原則-同類的界面元素應當有相同的視感和操作方式-同類型軟件的用戶界面應當有一定程度的相似性。例如office家族里的Word、Excel、PowerPoint、Outlook等軟件所提供的“復制、剪切、粘貼”等功能的操作方式都是相同的-風格一致的最大好處就是能夠減少用戶的記憶量、減少出錯幾率,并且迅速積累操作經驗。所以熟悉word軟件的人基本上不用翻閱手冊就能使用PowerPoint軟件,可謂“無師自通”1/15/2023原則4:及時反饋信息

用戶界面設計:基本原則用戶進行某項操作后,如果過了一會兒界面一點反應都沒有,用戶會感到迷茫和不安及時反饋信息可以讓用戶心里有數(shù),例如:

下載一個文件,界面上應當顯示“百分比”等數(shù)據(jù)來表示下載進度給出提示信息如“正在處理,請等待。。?!碧峁┮恍﹦赢嬜層脩裘靼总浖诟苫睿瑳]有死機1/15/2023原則5:出錯處理

用戶界面設計:基本原則用戶難免會出現(xiàn)一些操作錯誤。在設計界面時必須考慮出錯處理,讓用戶不必為避免犯錯誤而提心吊膽、小心翼翼,比如:

對輸入數(shù)據(jù)的合法性進行校驗在某些情況下不應該使用的按鈕,將其“失效”(如變成灰色)可以有效防止該功能被錯誤地使用提供Undo/Redo功能執(zhí)行破壞性操作之前,應當獲得用戶的確認1/15/202323原則6:適應各種用戶

用戶界面設計:基本原則

一個軟件產品可能有許多類型的用戶。在設計界面時應考慮不同類型用戶的需求和水平,使用戶在操作軟件的時候感覺不到差異和麻煩1/15/202324原則7:國際化

用戶界面設計:基本原則盡可能使用標準的圖解方式和國際通行的語言,要求簡單易懂,易于翻譯,方便于不同母語的用戶特別要留意下列易變的元素:字體、提示信息、在線幫助;貨幣、度量單位;數(shù)字、日期格式;人的名字、電話號碼、通信地址;圖標、標簽;聲音;閱讀順序或習慣1/15/202325原則8:個性化

用戶界面設計:基本原則對于普通的應用軟件而言,有個性化的界面顯然比大眾化的界面更具有吸引力設計人員應當根據(jù)軟件的需求以及廣大用戶的喜好,在使用戶界面具備必要的“一致性”的前提下,突出該軟件的“個性”。不僅讓用戶使用起來方便,而且對軟件留下深刻的印象1/15/202326原則9:合理的布局

用戶界面設計:基本原則首先,界面的布局應當符合邏輯,最好能夠與工作流程吻合

其次,界面的布局應當整潔

-界面元素應當在水平或者垂直方向對齊

-行、列的間距保持一致

-窗體、控件的尺寸/間距要合適

-要善于利用窗體和控件的空白,以及分割用的線條1/15/202327原則10:和諧的色彩

用戶界面設計:基本原則用戶界面是否美觀,主要取決于該界面的布局和色彩搭配設計和諧的色彩需要一定的美學知識1/15/202328設計好的界面的基本方法

用戶界面設計模仿:著名公司已經在此投入了巨資遵循一些基本規(guī)則界面設計的一般流程1/15/202329描述工具程序流程圖N-S

圖PAD

圖PDL

偽代碼詳細設計的工具1/15/202330A1、順序型一、程序流程圖

B幾個連續(xù)的加工依次序排列expFTA

B2、選擇型

由某個判斷式的取值決定選擇兩個加工中的一個1/15/2023313、當型循環(huán)型

當循環(huán)控制條件成立時,重復執(zhí)行特定的加工。expFTS4、直到型循環(huán)型

重復執(zhí)行特定的加工,直到循環(huán)控制條件成立時。

expFTS1/15/2023325、多情況選擇型

列出多種加工情況,根據(jù)控制變量的取值,選擇執(zhí)行其一。exp=1FTS1exp=2exp=nS2TSnTFF1/15/2023課件制作人:謝希仁33-----具有嵌套形式的程序流程圖X1FTaX4cTfTFF入口bX2X3deghiX5X6FTFT=1=2=31/15/202334

標準程序流程圖的規(guī)定符號

起止端點

輸入/輸出

一般處理

預備或預處理

預定義處理X1

條件判斷

文件或文檔

外接

內接

流程線虛線

省略線

并行方式

注解或注釋1/15/202335

程序流程圖:舉例1/15/202337缺點

本質上不具備逐步求精的特點,對于提高大型系統(tǒng)的可理解性作用甚微不易表示數(shù)據(jù)結構

任何復雜的程序流程圖都應由以上五種基本結構組合而成

程序流程圖優(yōu)點

容易掌握,且歷史“悠久”,使用廣泛趨勢:停止使用1/15/2023二、盒圖盒圖(BoxDiagram)

Nassi&Shneiderman1973年提出,由稱為N-S圖

Chapin1974年作擴充,故也稱為ChapinCharts1/15/2023

順序型A

B

選擇型

BpFTA

ApFT

p=1=2…=n

A1

A2

An

dowhile(p)

S

dountil(p)

S

當型循環(huán)型

直到型循環(huán)型

多分支選擇型

基本符號1/15/2023

盒圖:舉例1/15/2023

盒圖特點

沒有箭頭,不允許隨意轉移控制每個矩形框都是一個功能域,結構表示明確

Case中條件取值例外局部及全程數(shù)據(jù)的作用域易見容易表現(xiàn)嵌套關系以及模塊的層次結構1/15/2023三、PAD圖PAD圖

日立公司,1973

ProblemAnalysisDiagram1/15/202343基本符號

直到型循環(huán)型A

BAB

pA

pWhile

P

SUntil

P

S

當型循環(huán)型

順序型

選擇型A1

pA2An

=1

=2

=n

多分支選擇型1/15/202344

PAD圖:舉例1/15/202345PAD圖特點

結構清晰,層次分明,易讀支持逐步求精的設計思想容易將PAD自動轉換為高級語言源程序1/15/202346四、PDL----ProgramDdesignLanguage

PDL是一種用于描述功能模塊的算法設計和加工細節(jié)的語言,稱為程序設計語言。它是一種偽代碼

(Pseudocode)

PDL-----關鍵詞+自然語言1/15/202347(1)、數(shù)據(jù)說明:格式:

TYPE

<變量名>

AS

<限定詞1><限定詞2>其功能是定義數(shù)據(jù)的類型和作用域說明:1.變量名:是一個模塊內部使用的變量或模塊間共用的全局變量名。

2.限定詞1:標明數(shù)據(jù)類型

3.限定詞2:標明該變量的作用域

TYPEnumberASSTRING

LENGTH(12)PDL偽代碼1/15/202348(2)、程序塊:PDL的過程成分是由塊結構構成的,而塊將作為一個單個的實體來執(zhí)行。

BEGIN<塊名><一組偽代碼語句>END1/15/202349(3)、子程序結構:把PDL中的過程稱為子程序。

PROCEDURE<子程序名><一組屬性>

INTERFACE

<參數(shù)表><程序塊或一組偽代碼語句>END1/15/202350(4)、基本控制結構:

IF<條件>

THEN

<程序塊/偽代碼語句組>;

ELSE<程序塊/偽代碼語句組>;

ENDIF---選擇型結構

1/15/202351

DOWHILE<條件描述>

<程序塊/偽代碼語句組>;

ENDDO

REPEATUNTIL<條件描述>

<程序塊/偽代碼語句組>;

ENDREP---重復型結構

1/15/202352

DOLOOP<條件描述>

<程序塊/偽代碼語句組>;

EXITWHENENDLOOP

DOFOR<下標=下標表,表達式>

<程序塊/偽代碼語句組>;

ENDFOR---重復型結構

1/15/202353-----多路選擇結構

CASEOF<case變量名>;

WHEN

<case條件1>SELECT<程序塊/偽代碼語句組>;

WHEN

<case條件2>SELECT<程序塊/偽代碼語句組>;……

DEFAULT:

<缺省或錯誤case:<程序塊/偽代碼語句組>;

ENDCASE1/15/202354

READ/WRITETO<設備><I/O表>

---輸入/輸出結構

1/15/202355EnteravectorSetMaximumto

溫馨提示

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

評論

0/150

提交評論