版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程第一章學習輔導(dǎo) 一、填空練習 1 按軟件的功能可將軟件分成(系統(tǒng)軟件 支撐軟件 應(yīng)用軟件)等三類。2 按軟件規(guī)??蓪④浖殖?微型 小型中型 大型 甚大型 極大型)等六類。 3 按軟件工作方式可將軟件分成(實時處理軟件 分時軟件 交互式軟件 批處理軟件 )等四類。 4.按軟件軟服務(wù)對象可將軟件分成(項目軟件 產(chǎn)品軟件)等兩類。 5. 軟件危機中遇到的要緊問題有(軟件開發(fā)無打算 軟件需求不充分軟件開發(fā)過程無規(guī)范 軟件產(chǎn)品無評測 )等四類。手段 6. 軟件工程過程通常包括(軟件規(guī)格講明軟件開發(fā) 軟件確認 軟件演進)等四種差不多的過程活動。 7.軟件工程的三個要素是(方法 工具過程)。 二、
2、用框圖講明軟件工程目標之間的關(guān)系。軟件工程第二章學習輔導(dǎo)2. 基于計算機的系統(tǒng)通常把基于計算機的系統(tǒng)定義為某些元素的一個集合,并把這些元素組織起來以實現(xiàn)某種方法、過程或借助處理信息進行操縱。這些系統(tǒng)元素以各種方式組合來進行信息的轉(zhuǎn)換?;谟嬎銠C的系統(tǒng)能夠成為一個更大的基于計算機系統(tǒng)中的一個元素,并稱為那個更大系統(tǒng)的宏元素。系統(tǒng)工程師(亦稱為系統(tǒng)分析員)的作用確實是要在總的系統(tǒng)(宏元素)層次結(jié)構(gòu)的環(huán)境中定義某一特定基于計算機系統(tǒng)的元素。.2計算機系統(tǒng)工程計算機系統(tǒng)工程是一個問題求解活動,目的是揭示、分析所期望的功能,并把它們分配到各個系統(tǒng)元素中去,即選擇一個特定的系統(tǒng)配置,并把功能與性能規(guī)格分配
3、給硬件、軟件、人、數(shù)據(jù)庫、文檔和過程。 22.1 硬件和硬件工程選擇某種硬件元件的組合以構(gòu)成基于計算機系統(tǒng)的硬件元素。在選擇硬件時,要緊考慮以下幾個特性:(1)對各種元件打包,形成一些單獨的構(gòu)件塊;(2)各個元件之間的接口標準;(3)能夠有多種供權(quán)衡使用的候選方案;(4)性能、成本、有效性相對地比較容易確定。2.2軟件和軟件工程軟件實現(xiàn)了完成系統(tǒng)功能所需要的處理算法。一般地,處理算法變換輸入數(shù)據(jù)或操縱信息,并生成輸出到其它系統(tǒng)元素或宏元素中去的數(shù)據(jù)或操縱信息。軟件工程是一門有關(guān)開發(fā)高質(zhì)量的基于計算機系統(tǒng)的軟件的學科 。 2. 人與人類工程早期的基于計算機的系統(tǒng)總是把著眼點放在硬件與軟件易于實現(xiàn)
4、上,并強迫用戶按系統(tǒng)規(guī)定的方式與系統(tǒng)通信,而完全不考慮人是否容易理解。今天,差不多把用戶友好性放在優(yōu)先的位置?;谟嬎銠C系統(tǒng)的人類工程已成為系統(tǒng)開發(fā)申一個重要的步驟。 人類工程是應(yīng)用從心理學和方法論導(dǎo)出的知識來確定和設(shè)計高質(zhì)量人機對話界面HCI(uman Cnvesaton nterface)的多學科活動。人類工程過程包括以下步驟:()活動分析 (2)語義分析和設(shè)計:對用戶要求的動作和機器產(chǎn)生的動作進行精確定義。 (3)語法和詞法設(shè)計:標識與描述各個動作和命令的特定形式,然后設(shè)計每一動作或命令的硬件與軟件實現(xiàn)。()用戶環(huán)境設(shè)計:將硬件、軟件和其它系統(tǒng)生成元素組合起來形成用戶環(huán)境。環(huán)境包括物理設(shè)
5、備以及HCI。()原型:從人的角度動身來評價HCI。2.2.4 數(shù)據(jù)庫和數(shù)據(jù)庫工程并不是所有的基于計算機的系統(tǒng)都使用數(shù)據(jù)庫,但關(guān)于使用數(shù)據(jù)庫的系統(tǒng)來講,這種信息倉庫往往是所有功能的核心。數(shù)據(jù)庫工程(包括數(shù)據(jù)庫分析、設(shè)計和實現(xiàn)),是一門技術(shù)學科,它的應(yīng)用是在數(shù)據(jù)庫的信息域定義完成之后。23 系統(tǒng)需求識不系統(tǒng)分析的目標(1)識不用戶要求;(2)評價系統(tǒng)的可行性;(3)進行經(jīng)濟分析和技術(shù)分析;(4)把功能分配給硬件、軟件、人、數(shù)據(jù)庫和其它系統(tǒng)元素;(5)建立成本和迸度限制;(6)生成系統(tǒng)規(guī)格講明,形成所有后續(xù)工程的基礎(chǔ)。.4 可行性研究可行性研究要緊集中在以下四個方面: (1)經(jīng)濟可行性。確定待開發(fā)
6、系統(tǒng)是否值得投資開發(fā)。(2)技術(shù)可行性。對待開發(fā)的系統(tǒng)進行功能、性能和限制條件的分析,確定在現(xiàn)有的資源的條件下,技術(shù)風險有多大,系統(tǒng)是否能實現(xiàn)。 ()法律可行性。確認待開發(fā)系統(tǒng)可能會涉及的任何侵犯、阻礙、責任等問題。()抉擇。對系統(tǒng)開發(fā)的不同方案進行比較評估。成本和時刻的限制,會給方案的選擇帶來局限性,關(guān)于一些合理的方案都應(yīng)加以考慮。2.成本效益分析從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。成本-效益分析首先是估算待開發(fā)系統(tǒng)的開發(fā)成本,然后與可能取得的效益(有形的和無形的)進行比較和權(quán)衡。有形的效益能夠用貨幣的時刻價值、投資回收期、純收入等指標進行度量。 貨幣的時刻價值通常用利率表示貨幣的時
7、刻價值。設(shè)年利率為,現(xiàn)已存入元,則n年后可得鈔票數(shù)為F=(1十i)n。反之,若年后能收入F元,那么這些鈔票現(xiàn)在的價值是=/(十)投資回收期 投資回收期是衡量一個開發(fā)工程價值的經(jīng)濟指標。投資回收期確實是使累計的經(jīng)濟效益等于最初的投資所需要的時刻。投資回收期越短,就能越快獲得利潤。 純收入 工程的純收入是衡量工程價值的另一項經(jīng)濟指標。純收入確實是在整個生存期之內(nèi)系統(tǒng)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。 .6 技術(shù)分析技術(shù)分析提交系統(tǒng)技術(shù)可行性評估。指明為完成系統(tǒng)的功能和性能需要什么技術(shù)?需要哪些新材料、方法、算法、或者過程?有什么開發(fā)風險?這些技術(shù)問題對成本的阻礙如何?用于技術(shù)分析的方法,有
8、數(shù)學模型和優(yōu)化技術(shù)、概率和統(tǒng)計、排隊論、操縱論等。 2.7 分配與權(quán)衡一旦解決了與分析任務(wù)相關(guān)的問題,就應(yīng)開始考慮候選的解決方案。每一個系統(tǒng)功能,與其必要的一些性能和接口特性一起,分配給一個或多個系統(tǒng)元素。8 系統(tǒng)結(jié)構(gòu)的模塊化用圖形符號描繪系統(tǒng)里面的每個部件,即用流程圖對現(xiàn)有系統(tǒng)作概括的物理模型描述。系統(tǒng)流程圖的功能 ()制作系統(tǒng)流程圖的過程是系統(tǒng)分析員全面了解系統(tǒng)業(yè)務(wù)處理概況的過程,是系統(tǒng)分析員進一步分析的依據(jù)。 (2)系統(tǒng)流程圖是系統(tǒng)分析員、治理員、業(yè)務(wù)員相互交流的工具。(3)可利用流程圖來分析業(yè)務(wù)流程的合理性。.9 系統(tǒng)定義與評審系統(tǒng)規(guī)格講明是作為硬件工程、軟件工程、數(shù)據(jù)庫工程、人類工程
9、的基礎(chǔ)而使用的一個文檔。它描述了系統(tǒng)的功能和性能,以及治理該系統(tǒng)開發(fā)的一些限制條件。系統(tǒng)規(guī)格講明的要緊內(nèi)容(1)引言 文檔的范圍和目的概述:目標、限制條件(2)功能和數(shù)據(jù)描述 系統(tǒng)結(jié)構(gòu):結(jié)構(gòu)環(huán)境圖(C)、ACD描述(3)子系統(tǒng)描述 對子系統(tǒng)的結(jié)構(gòu)圖描述:結(jié)構(gòu)流程圖(AD)、系統(tǒng)模塊描述、性能問題、設(shè)計限制條件、系統(tǒng)部件的分配 結(jié)構(gòu)詞典結(jié)構(gòu)互連圖及其描述(4)系統(tǒng)模型化和模擬結(jié)果 用于模擬的系統(tǒng)模型模擬結(jié)果專門的性能問題(5)項目問題 項目開發(fā)成本 項目進度安排(6)附錄系統(tǒng)定義的評審評審由開發(fā)人員和用戶合作進行,要保證:(1)正確地定義了項目的范圍;(2)適當?shù)囟x了功能、性能和接口;()環(huán)境
10、分析和開發(fā)風險證明了系統(tǒng)是可行的;(4)開發(fā)人員與用戶對系統(tǒng)目標達成了共識。軟件工程第三章學習輔導(dǎo) 3.1 軟件需求分析的任務(wù)需求分析所要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其他系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求。 3.2 需求分析的過程需求分析工作可分成四個方面: 1.對問題的識不:確定對目標系統(tǒng)的綜合要求,即軟件的需求。 2.分析與綜合:最終綜合成系統(tǒng)的解決方案,給出目標系統(tǒng)的詳細邏輯模型。 3.制定規(guī)格講明:編制需求分析的文檔。 4.評審:對功能的正確性、完整性和清晰性,需求給予評價。 .3 軟件需求分析的原則必須能夠表達和理解問題的數(shù)據(jù)域和功能域。必
11、須按自頂向下、逐層分解的方式對問題進行分解和不斷細化。要給出系統(tǒng)的邏輯視圖和物理視圖。3.4 分析員和用戶的責任系統(tǒng)分析員處在用戶和高級程序員之間,負責溝通用戶和開發(fā)人員的認識和見解,起著橋梁的作用。用戶應(yīng)緊密配合分析員的工作。用戶對數(shù)據(jù)處理工作的考慮、對軟件的意見和要求是需求分析的寶貴原始資料。35 軟件需求分析方法需求分析方法由對軟件的數(shù)據(jù)域和功能域的系統(tǒng)分析過程及其表示方法組成。它定義了表示系統(tǒng)邏輯視圖和物理視圖的方式。最終建立一個待開發(fā)軟件的抽象模型,即目標系統(tǒng)的邏輯模型。 3 原型化方法 在軟件開發(fā)過程中,原型是軟件的一個早期可運行的版本,它反映最終系統(tǒng)的部分重要特性。用戶在試用原型
12、系統(tǒng)的過程中做出反應(yīng)和評價。然后開發(fā)者依照用戶的意見對原型加以改進。隨著不斷試驗、糾錯、使用、評價和修改,獲得新的原型版本,如此周而復(fù)始,從而提高了最終產(chǎn)品的質(zhì)量。 3.7 結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法確實是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止。 結(jié)構(gòu)化分析方法使用的要緊工具:數(shù)據(jù)流圖、數(shù)據(jù)詞典、結(jié)構(gòu)化英語、判定表和判定樹。 數(shù)據(jù)流圖 (DFD,Data lw Diagam) 數(shù)據(jù)流圖也稱為ubblChart或aa lwGraph。是描述數(shù)據(jù)處理過程的工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到
13、輸出的移動變換過程。數(shù)據(jù)詞典(DD,Data Dicionary)數(shù)據(jù)詞典的任務(wù)是關(guān)于數(shù)據(jù)流圖中出現(xiàn)的所有被命名的圖形元素在數(shù)據(jù)詞典中作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的解釋。數(shù)據(jù)詞典中所有的定義應(yīng)是嚴密的、精確的,不可有半點含混,不可有二義性。結(jié)構(gòu)化英語(tucturdEngls)結(jié)構(gòu)化英語也稱為PD,是一種介于自然語言和形式化語言之間的半形式化語言。它是在自然語言基礎(chǔ)上加了一些限制而得到的語言,是使用有限的詞匯和有限的語句來描述加工邏輯。 判定表(Decisin able)用表格表達在什么條件下,系統(tǒng)應(yīng)完成哪些操作,顯得十分清晰、準確、一目了然。這是用語言講明難以準
14、確、清晰表達的。然而用判定表描述循環(huán)比較困難。有時,判定表能夠和結(jié)構(gòu)化英語結(jié)合起來使用。判定樹(Dso Tre)判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。用它來描述加工,專門容易為用戶同意。 軟件工程第四章學習輔導(dǎo)4.1 軟件設(shè)計的目標和任務(wù)一旦確定了軟件需求之后,就進入開發(fā)時期。開發(fā)時期由三個互相關(guān)聯(lián)的步驟組成:設(shè)計、實現(xiàn)(編碼)和測試。每個步驟都按某種方式進行信息變換,最后得到有效的計算機軟件。開發(fā)時期的信息流如圖所示。4.1 軟件設(shè)計在開發(fā)時期中的重要性除了維護時期以外,開發(fā)時期占軟件工程總成本的75%以上。開發(fā)時期的決策將最終阻礙軟件實現(xiàn)的成敗,阻礙軟件維護的難易程
15、度。軟件設(shè)計是軟件開發(fā)時期最重要的步驟。它是軟件開發(fā)中質(zhì)量得以保證的關(guān)鍵步驟。設(shè)計提供了軟件的表示,使得軟件的質(zhì)量評價成為可能。軟件設(shè)計又是將用戶要求準確地轉(zhuǎn)化成為最終的軟件產(chǎn)品的唯一途徑。4.1.2 軟件設(shè)計任務(wù)軟件設(shè)計是一個把軟件需求變換成軟件表示的過程。最初這種表示只是描繪出軟件的總的框架,然后進一步細化,在此框架中填入細節(jié),把它加工成在程序細節(jié)上特不接近于源程序的軟件表示。軟件設(shè)計分兩步完成。首先做概要設(shè)計,將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。然后是詳細設(shè)計,即過程設(shè)計。通過對結(jié)構(gòu)表示進行細化,得到軟件的詳細的數(shù)據(jù)結(jié)構(gòu)和算法。在概要設(shè)計過程中需要完成的工作具體有:(1)制定規(guī)范在
16、進入軟件開發(fā)時期之初,首先應(yīng)為軟件開發(fā)組制定在設(shè)計時應(yīng)該共同遵守的標準,以便協(xié)調(diào)組內(nèi)各成員的工作。它包括:1)閱讀和理解軟件需求講明書,在給定預(yù)算范圍內(nèi)和技術(shù)現(xiàn)狀下,確認用戶的要求能否實現(xiàn)。若不能實現(xiàn),則需明確實現(xiàn)的條件,從而確定設(shè)計的目標,以及它們的優(yōu)先順序。2)依照目標確定最合適的設(shè)計方法。3)規(guī)定設(shè)計文檔的編制標準,包括文檔體系、用紙及樣式、記述詳細的程度、圖形的畫法等。)規(guī)定編碼的信息形式(代碼體系),與硬件、操作系統(tǒng)的接口規(guī)約,命名規(guī)則等。(2)軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計在需求分析時期,差不多從系統(tǒng)開發(fā)的角度動身,把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),使每一部分完成簡單的功能且各個部分之間又保
17、持一定的聯(lián)系,這確實是功能設(shè)計。在設(shè)計時期,基于那個功能的層次結(jié)構(gòu)把各個部分組合起來成為系統(tǒng)。它包括:1)采納某種設(shè)計方法,將一個復(fù)雜的系統(tǒng)按功能劃分成模塊的層次結(jié)構(gòu)。2)確定每個模塊的功能,建立與已確定的軟件需求的對應(yīng)關(guān)系;3)確定模塊間的調(diào)用關(guān)系。4)確定模塊間的接口,即模塊間傳遞的信息。設(shè)計接口的信息結(jié)構(gòu)。5)評估模塊劃分的質(zhì)量及導(dǎo)出模塊結(jié)構(gòu)的規(guī)則。(3)處理方式設(shè)計1)確定為實現(xiàn)軟件系統(tǒng)的功能需求所必需的算法,評估算法的性能。2)確定為滿足軟件系統(tǒng)的性能需求所必需的算法和模塊間的操縱方式(性能設(shè)計)。性能要緊是指以下四個指標:周轉(zhuǎn)時刻:即一旦向計算機發(fā)出要求處理的請求之后,從輸入開始,
18、通過處理直到輸出結(jié)果為止的整個時刻。響應(yīng)時刻:這是關(guān)于實時聯(lián)機系統(tǒng)的性能需求。當終端用戶向計算機發(fā)出處理請求之后,從輸入開始到輸出最終結(jié)果中間的一段時刻內(nèi),用戶需要多次對計算機進行輸入輸出,而一次輸入輸出的時刻確實是響應(yīng)時刻。吞吐量:單位時刻內(nèi)能夠處理的數(shù)據(jù)量叫做吞吐量。這是表示系統(tǒng)能力的指標。精度:在進行科學計算或工程計算時,運算精確度的要求。3)確定外部信號的接收發(fā)送形式。(4)數(shù)據(jù)結(jié)構(gòu)設(shè)計確定軟件涉及的文件系統(tǒng)的結(jié)構(gòu)以及數(shù)據(jù)庫的模式、子模式,進行數(shù)據(jù)完整性和安全性的設(shè)計。它包括:1)確定輸入、輸出文件的詳細的數(shù)據(jù)結(jié)構(gòu)。2)結(jié)合算法設(shè)計,確定算法所必需的邏輯數(shù)據(jù)結(jié)構(gòu)及其操作。3)確定對邏輯
19、數(shù)據(jù)結(jié)構(gòu)所必需的那些操作的程序模塊(軟件包)。限制和確定各個數(shù)據(jù)設(shè)計決策的阻礙范圍。4)若需要與操作系統(tǒng)或調(diào)度程序接口所必須的操縱表等數(shù)據(jù)時,確定其詳細的數(shù)據(jù)結(jié)構(gòu)和使用規(guī)則。5)數(shù)據(jù)的愛護性設(shè)計防衛(wèi)性設(shè)計:在軟件設(shè)計中插入自動檢錯,報錯和糾錯的功能。一致性設(shè)計:有兩個方面。其一是保證軟件運行過程中所使用的數(shù)據(jù)的類型和取值范圍不變。其二是在并發(fā)處理過程中使用封鎖和解除封鎖機制保持數(shù)據(jù)不被破壞。冗余性設(shè)計:針對同一問題,由兩個開發(fā)者采納不同的程序設(shè)計風格、不同的算法設(shè)計軟件,當兩者運行結(jié)果之差不在同意范圍內(nèi)時,利用檢錯系統(tǒng)予以糾正,或使用表決技術(shù)決定一個正確的結(jié)果,以保證軟件容錯。(5)可靠性設(shè)計
20、可靠性設(shè)計也叫做質(zhì)量設(shè)計。軟件可靠性是指程序和文檔中的錯誤少。軟件越使用可靠性越高。然而在運行過程中,為了適應(yīng)環(huán)境的變化和用戶新的要求,需要經(jīng)常對軟件進行改造和修正,這確實是軟件的維護。由于軟件的維護往往會產(chǎn)生新的故障,因此要求在軟件開發(fā)期間應(yīng)當盡早找出差錯,并在軟件開發(fā)的一開始就要確定軟件可靠性和其他質(zhì)量指標,考慮相應(yīng)措施,以使得軟件易于修改和易于維護。()編寫概要設(shè)計時期的文檔概要設(shè)計時期完成時應(yīng)編寫以下文檔:概要設(shè)計講明書。給出系統(tǒng)目標、總體設(shè)計、數(shù)據(jù)設(shè)計、處理方式設(shè)計、運行設(shè)計、出錯設(shè)計等。數(shù)據(jù)庫設(shè)計講明書。給出所使用數(shù)據(jù)庫簡介、數(shù)據(jù)模式設(shè)計、物理設(shè)計等。用戶手冊。對需求分析時期編寫的
21、初步的用戶手冊進行審訂。制定初步的測試打算。對測試的策略、方法和步驟提出明確的要求。(7)概要設(shè)計評審在完成以上幾項工作之后,應(yīng)當組織對概要設(shè)計工作的評審。評審的內(nèi)容包括:可追溯性:即分析該軟件的系統(tǒng)結(jié)構(gòu)、子系統(tǒng)結(jié)構(gòu),確認該軟件設(shè)計是否覆蓋了所有已確定的軟件需求,軟件每一成分是否可追溯到某一項需求。接口:即分析軟件各部分之間的聯(lián)系,確認該軟件的內(nèi)部接口與外部接口是否差不多明確定義。模塊是否滿足高內(nèi)聚和低耦合的要求。模塊作用范圍是否在其操縱范圍之內(nèi)。風險:即確認該軟件設(shè)計在現(xiàn)有技術(shù)條件下和預(yù)算范圍內(nèi)是否能按時實現(xiàn)。有用性:即確認該軟件設(shè)計關(guān)于需求的解決方案是否有用。技術(shù)清晰度:即確認該軟件設(shè)計是
22、否以一種易于翻譯成代碼的形式表達??删S護性:從軟件維護的角度動身,確認該軟件設(shè)計是否考慮了方便以后的維護。質(zhì)量:即確認該軟件設(shè)計是否表現(xiàn)出良好的質(zhì)量特征。各種選擇方案:看是否考慮過其他方案,比較各種選擇方案的標準是什么。限制:評估對該軟件的限制是否現(xiàn)實,是否與需求一致。其他具體問題:關(guān)于文檔、可測試性、設(shè)計過程等等進行評估。在那個地點需要特不注意:軟件系統(tǒng)的一些外部特性的設(shè)計,例如軟件的功能、一部分性能、以及用戶的使用特性等,在軟件需求分析時期就差不多開始。這些問題的解決,多少帶有一些“如何做”的性質(zhì),因此有人稱之為軟件的外部設(shè)計。在詳細設(shè)計過程中需要完成的工作是:(1)確定軟件各個組成部分內(nèi)
23、的算法以及各部分的內(nèi)部數(shù)據(jù)組織。(2)選定某種過程的表達形式來描述各種算法。(3)進行詳細設(shè)計的評審軟件設(shè)計的最終目標是要取得最佳方案。“最佳”是指在所有候選方案中,就節(jié)約開發(fā)費用,降低資源消耗,縮短開發(fā)時刻的條件,選擇能夠贏得較高的生產(chǎn)率、較高的可靠性和可維護性的方案。在整個設(shè)計的過程中,各個時期的設(shè)計結(jié)果需要通過一系列的設(shè)計質(zhì)量的評審,以便及時發(fā)覺和及時解決在軟件設(shè)計中出現(xiàn)的問題,防止把問題遺留到開發(fā)的后期時期,造成后患。在評審以后,必須針對評審中發(fā)覺的問題,對設(shè)計的結(jié)果進行必要的修改。4.2 軟件設(shè)計基礎(chǔ)4.2.1 自頂向下,逐步細化將軟件的體系結(jié)構(gòu)按自頂向下方式,對各個層次的過程細節(jié)和
24、數(shù)據(jù)細節(jié)逐層細化,直到用程序設(shè)計語言的語句能夠?qū)崿F(xiàn)為止,從而最后確立整個的體系結(jié)構(gòu)。22軟件結(jié)構(gòu)軟件的結(jié)構(gòu)包括兩部分。其一為程序模塊的層次結(jié)構(gòu),其二為數(shù)據(jù)的結(jié)構(gòu)。通常,軟件的體系結(jié)構(gòu)通過一個劃分過程來完成。該劃分過程從需求分析確立的目標系統(tǒng)的模型動身,對整個問題進行分割,使其每一部分用一個或幾個軟件成分加以解決,從而解決整個問題。關(guān)于同一組軟件需求,用不同的軟件設(shè)計方法,可能得到不同的軟件結(jié)構(gòu)。每一種方法都有自己特定的評優(yōu)準則,但關(guān)于使用不同的設(shè)計方法得到的軟件結(jié)構(gòu),專門難回答哪一個更“好”些。只能通過一些結(jié)構(gòu)特征做簡單的評價。.3 程序結(jié)構(gòu)程序結(jié)構(gòu)表明了程序各模塊的組織情況,它通常是樹狀結(jié)構(gòu)
25、或網(wǎng)狀結(jié)構(gòu),并蘊含了在程序操縱上的層次關(guān)系。但要注意的是,程序結(jié)構(gòu)是軟件的過程表示,但并未表明軟件的某些過程性特征。比如,軟件的動態(tài)特性,在程序結(jié)構(gòu)中就未明確體現(xiàn)。()程序的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)由模塊連接而得到的程序結(jié)構(gòu)最一般的形式確實是樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。在樹狀結(jié)構(gòu)中,位于最上層的根差不多上頂層模塊,它是程序的主模塊。與其聯(lián)系的有若干下屬模塊,各下屬模塊還能夠進一步引出更下一層的下屬模塊。樹狀結(jié)構(gòu)的特點是:整個結(jié)構(gòu)只有一個頂層模塊,而關(guān)于任何一個下屬模塊來講,它只有一個上級模塊,而且同一層模塊之司不發(fā)生聯(lián)系。在網(wǎng)狀結(jié)構(gòu)中,任意兩個模塊間都能夠有雙向的關(guān)系。由于不存在上級模塊和下屬模塊的關(guān)系,也
26、就分不出層次來。任何兩個模塊差不多上平等的,沒有從屬關(guān)系。網(wǎng)狀結(jié)構(gòu)十分復(fù)雜,處理起來會引起許多苦惱。在開發(fā)軟件的實踐中,通常采納樹狀結(jié)構(gòu),而不采納網(wǎng)狀結(jié)構(gòu)。(2)結(jié)構(gòu)圖(Suue Cht 簡稱S)結(jié)構(gòu)圖是精確表達程序結(jié)構(gòu)的圖形表示方法。它清晰地反映出程序中模塊目的層次調(diào)用關(guān)系和聯(lián)系:不僅嚴格地定義了各個模塊的名字、功能和接口,而且還反映了設(shè)計思想。即它以特定的符號表示模塊、模塊目的調(diào)用關(guān)系和模塊間信息的傳遞。結(jié)構(gòu)圖的要緊內(nèi)容有:1)模塊:在結(jié)構(gòu)圖中,模塊用矩形框表示,并用模塊的名字標記它。模塊的名字應(yīng)當能夠表明該模塊的功能。關(guān)于現(xiàn)成的模塊,則以雙縱邊矩形框表示。2)模塊的調(diào)用關(guān)系和接口:在結(jié)構(gòu)
27、圖中,兩個模塊之間用單向箭頭聯(lián)結(jié)。箭頭從調(diào)用模塊指向所調(diào)用模塊,表示調(diào)用模塊調(diào)用了所調(diào)用模塊。但其中隱含了一層意思,確實是執(zhí)行所調(diào)用模塊完成之后,操縱又返回到調(diào)用模塊。3)模塊間的信息傳遞:當一個模塊調(diào)用另一個模塊時,調(diào)用模塊把數(shù)據(jù)或操縱信息傳送給所調(diào)用模塊,以使所調(diào)用模塊能夠運行。而在執(zhí)行所調(diào)用模塊的過程中又把它產(chǎn)生的數(shù)據(jù)或操縱信息回送給調(diào)用模塊。為了表示在模塊之間傳遞的數(shù)據(jù)或操縱信息,在聯(lián)結(jié)模塊的箭頭旁邊另給出短箭頭,同時用尾端帶有空心圓的短箭頭表示數(shù)據(jù)信息,用尾端帶有實心圓的短箭頭表示操縱信息。通常在短箭頭附近應(yīng)注有信息的名字。4)輔助符號:當模塊A有條件地調(diào)用另一個模塊B時,在模塊A的
28、箭頭尾部標以一個菱形符號。當一個模塊A反復(fù)地調(diào)用模塊C和模塊D時,在調(diào)用箭頭尾部則標以一個弧形符號。5)結(jié)構(gòu)圖的形態(tài)特征軟件系統(tǒng)的分層模塊結(jié)構(gòu)圖中,上級模塊調(diào)用下級模塊。它們之間存在主從關(guān)系,即自上而下“主宰”,自下而上“從屬”。而同一層的模塊之間沒有這種主從關(guān)系。結(jié)構(gòu)圖的深度:在多層次的結(jié)構(gòu)圖中,其模塊結(jié)構(gòu)的層次數(shù)稱為結(jié)構(gòu)圖的深度。結(jié)構(gòu)圖的深度在一定意義上反映了程序結(jié)構(gòu)的規(guī)模和復(fù)雜程度。結(jié)構(gòu)圖的寬度:結(jié)構(gòu)圖中同一層模塊的最大模塊數(shù)稱為結(jié)構(gòu)圖的寬度模塊的扇入和扇出:扇出表示一個模塊直接調(diào)用(或操縱)的其他模塊數(shù)目。扇入則定義為調(diào)用(或操縱)一個給定模塊的模塊個數(shù)。多扇出意味著需要操縱和協(xié)調(diào)許多
29、下屬模塊。而多扇入的模塊通常是公用模塊。4.24 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的各個元素之間的邏輯關(guān)系的一種表示。因為信息的結(jié)構(gòu)總要阻礙最終的過程設(shè)計,因此在軟件結(jié)構(gòu)的設(shè)計中,數(shù)據(jù)結(jié)構(gòu)與程序結(jié)構(gòu)同等重要。數(shù)據(jù)結(jié)構(gòu)設(shè)計應(yīng)確定數(shù)據(jù)的組織、存取方式、相關(guān)程度、以及信息的不同處理方法。4.25軟件過程軟件過程著重描述各個模塊的處理細節(jié)。軟件過程必須提供精確的處理講明,包括事件的順序、正確的判定點、重復(fù)的操作直至數(shù)據(jù)的組織和結(jié)構(gòu)等等。軟件過程遵從程序結(jié)構(gòu)的主從關(guān)系,它也是層次化的。4.模塊化軟件系統(tǒng)的層次結(jié)構(gòu)正是模塊化的具體體現(xiàn)。將整個軟件劃分成若干單獨命名和可編址的部分,稱之為模塊。能夠?qū)⑦@些模塊組裝起來以
30、滿足整個問題的需求。假如把一個大而復(fù)雜的問題分解成一些易于處理的小問題后,解決起來就會容易得多。這是模塊化的依據(jù)。假如模塊是相互獨立的,當模塊變得越小,每個模塊的內(nèi)部結(jié)構(gòu)就變得越簡單,花費的工作量也越低。那么,把模塊逐漸地分小,它所需要的工作量將逐漸變??;但當模塊數(shù)增加時,模塊間的聯(lián)系也隨之增加,把這些模塊聯(lián)接起來的工作量也隨之增加。一般存在一個模塊個數(shù)M,它使得總的開發(fā)成本達到最小。42.7 抽象化對軟件系統(tǒng)進行模塊設(shè)計的時候,能夠有不同的抽象層次。在最高的抽象層次上,能夠使用問題所處環(huán)境的語言概括地描述問題的解法。而在較低的抽象層次上,則采納過程化的方法。但最后在最低的抽象層次上,應(yīng)使用能
31、夠直接實現(xiàn)的方式來描述那個解法。.信息隱蔽信息隱蔽是指,每個模塊的實現(xiàn)細節(jié)關(guān)于其他模塊來講是隱蔽的。即模塊中所包含的信息(包括數(shù)據(jù)和過程)不同意其他不需要這些信息的模塊使用。.3 模塊的獨立性4.3. 模塊 (dule)一個大而復(fù)雜的軟件系統(tǒng),也能夠依照其功能,劃分成許多較小的單元,或較小的程序,這些較小的單元確實是模塊。模塊具有三個差不多屬性:()功能:即指該模塊實現(xiàn)什么功能。()邏輯:即描述模塊內(nèi)部如何做。(3)狀態(tài):即該模塊使用時的環(huán)境和條件。43.2 模塊獨立性 (odue Indeendene)模塊的獨立性是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他的模塊的
32、接口是簡單的。一般采納兩個準則度量模塊獨立性。即模塊間的耦合和模塊的內(nèi)聚。.33 耦合性 (Coulig)耦合是模塊之間的相對獨立性(互相連接的緊密程度)的度量。模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其模塊獨立性就越弱。4.34 內(nèi)聚性(Cohesio)內(nèi)聚是模塊功能強度(一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度)的度量。一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高。4.結(jié)構(gòu)化設(shè)計方法 (Structure Design,SD)結(jié)構(gòu)化設(shè)計方法是基于模塊化、自頂向下逐層細化、結(jié)構(gòu)化程序設(shè)計等程序設(shè)計技術(shù)基礎(chǔ)上進展起來的。該方法實施的要點是:(1)首先研究、分析和審查數(shù)據(jù)流圖。
33、從軟件的需求規(guī)格講明中弄清數(shù)據(jù)流加工的過程。(2)然后依照數(shù)據(jù)流圖決定問題的類型。數(shù)據(jù)處理問題典型的類型有兩種:變換型和事務(wù)型。針對兩種不同的類型分不進行分析處理。(3)由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖。(4)利用一些試探性原則來改進系統(tǒng)的初始結(jié)構(gòu)圖,直到得到符合要求的結(jié)構(gòu)圖為止。()修改和補充數(shù)據(jù)詞典。()制定測試打算。結(jié)構(gòu)化設(shè)計能夠?qū)iT方便地將用數(shù)據(jù)流圖表示的信息轉(zhuǎn)換成程序結(jié)構(gòu)的設(shè)計描述。4.5 數(shù)據(jù)設(shè)計及文件設(shè)計.5.1數(shù)據(jù)設(shè)計的原則()用于軟件的系統(tǒng)化方法也適用于數(shù)據(jù)。(2)要確定所有的數(shù)據(jù)結(jié)構(gòu)和在每種數(shù)據(jù)結(jié)構(gòu)上施加的操作。(3)應(yīng)當建立一個數(shù)據(jù)詞典并用它來定義數(shù)據(jù)和軟件的設(shè)計。()低
34、層數(shù)據(jù)設(shè)計的決策應(yīng)推遲到設(shè)計過程的后期進行。(5)數(shù)據(jù)結(jié)構(gòu)的表示只限于那些必須直接使用該數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)的模塊才能明白。(6)應(yīng)當建立一個存放有效數(shù)據(jù)結(jié)構(gòu)及相關(guān)操作的庫。(7)軟件設(shè)計和程序設(shè)計語言應(yīng)當支持抽象數(shù)據(jù)類型的定義和實現(xiàn)。4. 在設(shè)計程序結(jié)構(gòu)時數(shù)據(jù)結(jié)構(gòu)的選擇方法數(shù)據(jù)結(jié)構(gòu)的選擇應(yīng)使程序的操縱結(jié)構(gòu)簡潔,即必須減少需要的存儲容量和執(zhí)行時刻。存儲容量需要的數(shù)據(jù)區(qū)容量+要求的執(zhí)行命令區(qū)容量執(zhí)行命令區(qū)容量=程序的執(zhí)行命令行數(shù)*目標轉(zhuǎn)換率平均指令長度目標轉(zhuǎn)換率,即一行源程序相當于多少行目標代碼。4.3 文件設(shè)計文件設(shè)計是指數(shù)據(jù)存儲文件設(shè)計,其要緊工作確實是依照使用要求、處理方式、存儲的信息量、數(shù)據(jù)的
35、活動性,以及所能提供的設(shè)備條件等,來確定文件類不,選擇文件媒體,決定文件組織方法,設(shè)計文件記錄格式,并估算文件的容量。4.6 過程設(shè)計過程設(shè)計也叫做詳細設(shè)計或程序設(shè)計,它不同于編碼或編寫程序。在過程設(shè)計時期,要決定各個模塊的實現(xiàn)算法,并精確地表達這些算法。表達過程規(guī)格講明的工具叫做詳細設(shè)計工具,它能夠分為以下三類:圖形工具:把過程的細節(jié)用圖形方式描述出來。表格工具:用一張表來表達過程的細節(jié)。這張表列出了各種可能的操作及其相應(yīng)的條件。即描述了輸入、處理和輸出信息。語言工具:用某種類高級語言(偽碼)來描述過程的細節(jié)。4.61 程序流程圖 (Progam FloChart)程序流程圖也稱為程序框圖。
36、五種差不多操縱結(jié)構(gòu):()順序型(2)選擇型()先判定(while)型循環(huán)(4)后判定(until)型循環(huán)(5)多情況(cse)型選擇 .6.2 N-S 圖一種符合結(jié)構(gòu)化程序設(shè)計原則的圖形描述工具,叫做盒圖,也叫做N-S圖。.6.3PAD(robleAnyss Diagram)PAD是用結(jié)構(gòu)化程序設(shè)計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。464 判定表能清晰表達復(fù)雜的條件組合與應(yīng)做動作之間的對應(yīng)關(guān)系的邏輯表。4.6.5DL (ProgrmDsignngue)PDL是一種用于描述功能模塊的算法設(shè)計和加工細節(jié)的語言。是一種偽碼。一般地,偽碼的語法規(guī)則分為“外語法”和“內(nèi)語法”。外語法符合一般程序設(shè)計語言常
37、用語句的語法規(guī)則;內(nèi)語法能夠用英語中一些簡單的句子、短語和通用的數(shù)學符號來描述程序應(yīng)執(zhí)行的功能。軟件工程第五章學習輔導(dǎo) 數(shù)據(jù)是軟件的重要組成部分。在許多應(yīng)用領(lǐng)域中,問題的結(jié)構(gòu)層次清晰,輸入數(shù)據(jù)、輸出數(shù)據(jù)和內(nèi)部存儲信息的數(shù)據(jù)結(jié)構(gòu)都有一定的結(jié)構(gòu)關(guān)系,面向數(shù)據(jù)結(jié)構(gòu)的分析與設(shè)計方法確實是利用這些結(jié)構(gòu)作為軟件開發(fā)的基礎(chǔ)。Jaon系統(tǒng)開發(fā)(JD,acksn SyemDvmet)方法是一種典型的面向數(shù)據(jù)結(jié)構(gòu)的分析和設(shè)計方法。早期的Jckso方法用于小系統(tǒng)的設(shè)計,稱之為Jackso結(jié)構(gòu)程序設(shè)計方法,簡稱JS方法。它是按輸入、輸出和內(nèi)部信息的數(shù)據(jù)結(jié)構(gòu)進行軟件設(shè)計的,即把數(shù)據(jù)結(jié)構(gòu)的描述映射成程序結(jié)構(gòu)描述。若數(shù)據(jù)結(jié)
38、構(gòu)內(nèi)有重復(fù)子結(jié)構(gòu),則對應(yīng)程序一定有循環(huán);若數(shù)據(jù)結(jié)構(gòu)有選擇性子結(jié)構(gòu),則對應(yīng)程序一定有判定,以此揭示數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)之間的內(nèi)在關(guān)系,設(shè)計出反映數(shù)據(jù)結(jié)構(gòu)的程序結(jié)構(gòu)。然而,當把JSP方法用于大系統(tǒng)設(shè)計時:就會出現(xiàn)大量復(fù)雜的難以應(yīng)付的結(jié)構(gòu)沖突。因此,促使Jackson提出了JSD方法,即Jackson系統(tǒng)開發(fā)方法。D方法以活動(即事件)為中心,一連串活動的順序組合構(gòu)成進程。系統(tǒng)模型抽象為一組以通信方式互相聯(lián)系的進程。5.1 進程模型在許多情況下,從現(xiàn)實世界的活動抽象而形成系統(tǒng)模型時,時序往往是一個必須要考慮的重要因素。每一個活動的發(fā)生必須遵守一定的時刻順序。因此,在相應(yīng)的系統(tǒng)模型抽象中,自然也就必須要
39、關(guān)注到這些活動發(fā)生的先后次序。進程確實是依一定次序安排的一串活動。的系統(tǒng)模型是互相通信的一組進程的集合。進程間的通信可采納三種方式:(1)進程活動同步發(fā)生。()通過數(shù)據(jù)流通道發(fā)送/接收活動發(fā)生。(3)訪問公用存儲信息。如此建立的SD進程模型不能直接在計算機上運行,因為可能出現(xiàn)太多的進程和太長的進程生存期,會使系統(tǒng)模擬無法實現(xiàn)。因此,需要確認模型,預(yù)先提出一些初始條件,把系統(tǒng)模型操縱在一定限度的范圍,便之能夠有效地在計算機上運行。52JD方法的步驟S方法實際上是支持軟件分析與設(shè)計的一組連續(xù)的技術(shù)步驟:(1)實體動作分析:從問題的描述中,提取軟件系統(tǒng)要產(chǎn)生和運用的實體(人、物或組織),以及現(xiàn)實世界
40、作用于實體上的動作(事件)。()實體結(jié)構(gòu)分析:把作用于實體的動作或由實體執(zhí)行的動作,按時刻發(fā)生的先后次序排序,構(gòu)成進程,并用一個層狀的Jackon結(jié)構(gòu)圖表示。(3)定義初始模型:把實體和動作表示成一個進程模型,定義模型與現(xiàn)實世界的聯(lián)系。模型系統(tǒng)的規(guī)格講明可用系統(tǒng)規(guī)格講明圖(S,ystem eciiaton Diagram)來表示。()功能描述:講明與已定義的動作相對應(yīng)的功能,為已定義的動作加入功能函數(shù)。(5)決定系統(tǒng)時刻特性:對進程加入時刻因素,對進程調(diào)度特性進行評價和講明。 ()實現(xiàn):設(shè)計組成系統(tǒng)的硬件和軟件,實現(xiàn)系統(tǒng)的原型。JSD方法的前三步屬于需求分析時期,后三步屬于設(shè)計時期。53 實體
41、動作分析分析實體的動作,需要從一段用簡單的自然語言給出的問題描述(通常是一個段落)入手。當選定了實體和動作的時候,實際上差不多把要開發(fā)系統(tǒng)的范圍劃定了。5.4 實體結(jié)構(gòu)分析在JS方法中,實體的結(jié)構(gòu)通過在一段時刻內(nèi)的動作來描述實體的歷史情況。 5.5 定義初始模型以上兩步只是現(xiàn)實世界的一種抽象描述,完成的工作計有,選定實體和動作,并用結(jié)構(gòu)圖建立了他們之目的關(guān)系。這一步則要對系統(tǒng)構(gòu)造規(guī)格講明,使其成為現(xiàn)實世界的模型。規(guī)格講明可用系統(tǒng)規(guī)格講明圖(SD)表示。5. 功能描述Jckso系統(tǒng)開發(fā)方法中功能描述的目的是利用數(shù)據(jù)流連接和狀態(tài)向量連接,把已定義的功能進程連接到系統(tǒng)模型進程,從而擴充系統(tǒng)規(guī)格講明圖
42、。在acso系統(tǒng)開發(fā)方法中定義了三種功能:(1)嵌入功能:此功能把操作分配(或?qū)懭?到模型進程的結(jié)構(gòu)正文內(nèi)。()強制功能,此功能檢查模型進程的狀態(tài)向量,并給出輸出結(jié)果。(3)交互功能:此功能檢查模型進程的狀態(tài)向量,寫入一個施加于模型進程活動的數(shù)據(jù)流,或引入一個寫出結(jié)果的操作。功能進程的輸出確實是系統(tǒng)的輸出,能夠是報告、對硬件設(shè)備的命令、或者任何其他的輸出信息。5.7 決定系統(tǒng)時刻特性在那個JD步驟中,設(shè)計人員將定義系統(tǒng)的時刻限制。前幾步設(shè)計步驟已建立了一個由順序的進程組成的系統(tǒng),而在此系統(tǒng)中的順序的進程則通過數(shù)據(jù)流及直接檢查狀態(tài)向量進行通信。進程的相對調(diào)度將是不確定的。一種能夠用于同步進程的機
43、制叫做時刻間隔標志(Time rain Mker,簡稱T)。它是一個數(shù)據(jù)記錄,表明一個特不時刻間隔的存在。.8 實現(xiàn) 用JSP方法得到的程序或進程結(jié)構(gòu)圖,一般都需要求精和優(yōu)化。因為這種方法是從輸入輸出數(shù)據(jù)結(jié)構(gòu)導(dǎo)出程序結(jié)構(gòu)圖,因此有些中間處理過程在結(jié)構(gòu)圖中反映不出來。在求精過程中,能夠?qū)Y(jié)構(gòu)圖進行改進和細化,使之完整和易于實現(xiàn)。軟件工程第六章學習輔導(dǎo) 軟件的用戶界面作為人機接口起著越來越重要的作用。它的好壞直接阻礙到軟件的壽命。具有友好用戶界面的軟件關(guān)于用戶來講,無疑是一種享受。用戶會堅決果斷地選擇它,即使另一個軟件可能在功能、性能方面與它類似。6.1用戶界面應(yīng)具備的特性用戶界面,作為軟件的重要
44、組成部分,應(yīng)當具備以下三方面的特性。6.1.1可使用性用戶界面的可使用性是用戶界面設(shè)計最重要的也是最差不多的目標。它包括:(1)使用的簡單性:用戶界面應(yīng)能方便地處理各種經(jīng)常進行的交互對話。問題的輸入格式應(yīng)當易于理解,附加的信息量少;能直接處理指定媒體上的信息和數(shù)據(jù),且自動化程度高;操作簡便;能按用戶要求的表格或圖形輸出,或反饋計算結(jié)果到用戶指定的媒體上。(2)用戶界面中所用術(shù)語的標準化和一致性:所有專業(yè)術(shù)語都應(yīng)標準化;軟件技術(shù)用語應(yīng)符合軟件工程規(guī)范;應(yīng)用領(lǐng)域的術(shù)語應(yīng)符合軟件面向?qū)I(yè)的專業(yè)標準;在輸入、輸出講明里,同一術(shù)語的涵義應(yīng)完全一致。(3)擁有關(guān)心功能:用戶應(yīng)能從HE功能中獲知軟件系統(tǒng)的所
45、有規(guī)格講明和各種操作命令的用法,HLP功能應(yīng)能聯(lián)機調(diào)用,為用戶隨時提供關(guān)心信息。(4)快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本:在使用較多硬件設(shè)備并與許多其他軟件系統(tǒng)聯(lián)結(jié)時,會引入較大的系統(tǒng)開銷。用戶界面應(yīng)在此情況下有較快的響應(yīng)速度和較小的系統(tǒng)開銷。(5)用戶界面應(yīng)具有容錯能力:即應(yīng)當具有錯誤診斷、修正錯誤以及出錯愛護的功能。6.2靈活性()考慮到用戶的特點、能力、知識水平,應(yīng)當使用戶界面能夠滿足不同用戶的要求。因此,對不同的用戶,應(yīng)有不同的界面形式。其運行抉擇和涉及到的復(fù)雜算法對初學者能夠是隱蔽的,他們能夠不考慮抉擇和算法問題而正常使用那個軟件;但關(guān)于高級用戶,可保留實施運行抉擇和選擇算法的權(quán)利。(2)
46、用戶能夠依照需要制定和修改界面方式。在需要修改和擴充系統(tǒng)功能的情形下,能夠提供動態(tài)的對話方式,如修改命令、設(shè)置動態(tài)的菜單等等。(3)系統(tǒng)能夠按照用戶的希望和需要,提供不同詳細程度的系統(tǒng)響應(yīng)信息,包括反饋信息、提示信息、關(guān)心信息、出錯信息等等。()與其他軟件系統(tǒng)應(yīng)有標準的界面。61. 復(fù)雜性和可靠性()用戶界面的復(fù)雜性:用戶界面的規(guī)模和組織的復(fù)雜程度確實是界面的復(fù)雜性。在完成預(yù)定功能的前提下,應(yīng)當使得用戶界面越簡單越好。但也不是把所有功能和界面安排成線性序列就一定簡單。()用戶界面的可靠性:用戶界面的可靠性是指無故障使用的間隔時刻。用戶界面應(yīng)能保證用戶正確、可靠地使用系統(tǒng),保證有關(guān)程序和數(shù)據(jù)的安
47、全性。62用戶界面設(shè)計的任務(wù)分析這一部分工作應(yīng)與軟件系統(tǒng)的需求分析同步進行。它包括用戶特性分析、用戶工作分析、記錄用戶有關(guān)系統(tǒng)的概念和術(shù)語、確定界面類型等個步驟。用戶界面是適應(yīng)人的需要而建立的,因此,首先需要弄清的是什么類型的用戶將要使用那個界面。用戶特性分析的目的是要詳細了解所有用戶的技能和經(jīng)驗,以便能夠預(yù)測他們對不同的界面設(shè)計會做出什么反應(yīng),針對用戶的能力設(shè)計或更改界面。(1)用戶類型:通常,用戶能夠分為4種類型。1)外行型:從未用過計算機的用戶。他們不熟悉計算機操作,對系統(tǒng)專門少或毫無認識。2)初學型:對計算機有一些經(jīng)驗,但對新系統(tǒng)不熟悉的用戶。他們需要相當多的支持。3)熟練型:對一個系
48、統(tǒng)有相當多的經(jīng)驗,能夠熟練操作的用戶。他們需要比初學者較少支持的、可直接迅速進入運行的、經(jīng)濟的界面。然而,熟練型的用戶不了解系統(tǒng)內(nèi)部結(jié)構(gòu),因此,們不能糾正意外錯誤,不能擴充系統(tǒng)能力,但他們擅長操作一個或多個任務(wù)。)專家型:這一類用戶與熟練型用戶相比,他們了解系統(tǒng)內(nèi)部的構(gòu)造,有關(guān)于系統(tǒng)工作機制的專業(yè)知識,具有維護和修改差不多系統(tǒng)的能力。專家型要求為他們提供能夠修改和擴充系統(tǒng)能力的復(fù)雜的界面。(2)用戶特性度量用戶特性的度量與期望的用戶使用模式及用戶群體能力有關(guān)。要緊的衡量標準如下:1)用戶使用的頻度:即系統(tǒng)是否經(jīng)常使用。假如系統(tǒng)不經(jīng)常使用,或者使用的間隔時刻比較長,就需要一個有更多關(guān)心的用戶界面
49、。2)用戶需要自由選用界面的情況:系統(tǒng)功能的使用,能夠是強制的,也能夠是自由選擇的。因此,所有的界面都應(yīng)當是良好的,關(guān)于可能自由選用的界面,就更應(yīng)當使用戶使用方便,更具吸引力。3)用戶對計算機的熟悉程度:多數(shù)用戶具有一些計算機的使用經(jīng)驗,但程度不同。對計算機的熟悉程度決定了要使用戶達到熟練程度需要多少訓練。4)用戶知識:有些用戶已有相當多的計算機編程和操作的知識。這些專家型用戶有能力擴展一個系統(tǒng)與其界面的功能,因此,他們需要一種靈活的可編程的或命令語言的界面以滿足他們的要求。5)用戶思維能力:這是對用戶的綜合知識和智力的衡量。用于推斷用戶能自行處理的界面的復(fù)雜程度,以及能期望用戶學到多少有關(guān)界
50、面的知識。6)用戶的生理能力和技能:用戶群體的生理特征要緊是指人的視覺、聽覺、認知及經(jīng)歷等方面的特點。因此,應(yīng)該在這一方面去收集信息。特不在設(shè)計中出現(xiàn)新的設(shè)備和工作環(huán)境時,更需要考慮如何去滿足用戶的要求。有關(guān)的技能包括鼠標、鍵盤、光筆等的使用技能等。用戶群體的度量能夠用打分的方法來簡單地度量。平均值反映用戶群體的平均特性,而標準偏差反映用戶群體的差異大小,要緊用于推斷用戶界面對不同類型的用戶的適應(yīng)范圍。6.2. 用戶工作分析用戶工作分析,也稱為任務(wù)分析。它是系統(tǒng)內(nèi)部活動的分解。用戶工作分析與需求分析中結(jié)構(gòu)化分析的方法類似,采納自頂向下,逐步進行功能分解。與常規(guī)的功能分解不同的是,所有的系統(tǒng)任務(wù)
51、,包括與人相關(guān)的活動,都要考慮在內(nèi)。系統(tǒng)的功能分解,能夠用數(shù)據(jù)流圖和數(shù)據(jù)詞典描述。其中,每一個加工相當于一個功能,也確實是一個任務(wù)。任務(wù)能夠由一組動作構(gòu)成,它們規(guī)定了為實現(xiàn)該任務(wù)所必須的一系列活動。任務(wù)的細節(jié)能夠使用結(jié)構(gòu)化英語來表達。它描述了動作完成的序列及在完成動作時的所有例外情況。6.2.3 用戶模型和觀點(1)用戶模型與用戶觀點建立用戶的思維模型,是為了關(guān)心建立設(shè)計者界面模型。通常有以下幾種:)理論認知模型:由心理學家建立的模型,目的是要了解人的思維過程。2)用戶知識模型:該模型是想捕捉一定范疇內(nèi)的知識以及類型之間的聯(lián)系。模型由每個用戶的知識來建立,用遍歷知識網(wǎng)絡(luò)的方法來評價用戶如何學習
52、。在自適應(yīng)的界面中,模型依照打算和步驟來描述用戶的知識,這些模型被編入網(wǎng)絡(luò)中。3)用戶特性模型:這些模型要緊依據(jù)在此節(jié)所描述的技能和能力對用戶進行分類,它們也被稱為用戶外觀。4)用戶任務(wù)模型:指用戶依照任務(wù)的功能和操作次序,構(gòu)想該任務(wù)的概念。通過它,能夠了解用戶明白多少有關(guān)系統(tǒng)操作的知識,用戶期望系統(tǒng)應(yīng)當如何工作等等。一個界面假如與用戶預(yù)想的實現(xiàn)、操作的方法一致,它就容易為用戶同意。5)用戶觀點:指系統(tǒng)結(jié)構(gòu)的用戶模型。是用戶描述和設(shè)想現(xiàn)行系統(tǒng)結(jié)構(gòu)的方法,它能夠用圖形化的方式表示,也能夠用語言方式表示。用戶模型能夠依照以往的對系統(tǒng)的了解和對相似的系統(tǒng)的知識來建立。當初次接觸到一個系統(tǒng)時,用戶模型
53、可能不明確,但隨著經(jīng)驗的積存,它就會健全完善起來。界面設(shè)計者的責任確實是使界面盡可能與用戶原來的模型一致。假如原來沒有模型,那么就要給出一個新的系統(tǒng)模型,同時使用戶盡可能容易地適應(yīng)新的系統(tǒng)模型。()任務(wù)模型任務(wù)模型包括靜態(tài)的和動態(tài)的兩種。系統(tǒng)的靜態(tài)模型確實是對象-關(guān)系模型,用于展現(xiàn)界面的結(jié)構(gòu)設(shè)計;系統(tǒng)的動態(tài)模型是對系統(tǒng)操作或與會話設(shè)計有關(guān)的對象的動態(tài)行為的描述。模型由一些結(jié)構(gòu)組成,既要依據(jù)靜態(tài)的對象與其關(guān)系,又要依據(jù)活動的過程順序。用戶模型還能夠分為設(shè)計者的用戶模型和用戶期望的用戶模型。前者是設(shè)計者認為的用戶對系統(tǒng)的期望,后者是用戶對系統(tǒng)的期望。必須使它們一致起來。6.3 用戶界面任務(wù)和工作設(shè)
54、計任務(wù)和工作設(shè)計的目的在于制造用戶的工作環(huán)境。通常,任務(wù)應(yīng)組織得與人的能力相適應(yīng)。既不能完全由特不復(fù)雜的步驟組成,也不能太過簡單而使操作者感到厭煩。從理論上講,任務(wù)的組織應(yīng)當能夠給用戶提供發(fā)揮他們的才能的機會,而不是超出他們的能力。6.1 任務(wù)分配在每個任務(wù)中,動作要分配給計算機、用戶或者二者。一般地,用戶承擔需要制造、推斷和探究的任務(wù),而計算機承擔重復(fù)檢查、計算和數(shù)據(jù)處理的任務(wù)。數(shù)據(jù)錄入、數(shù)據(jù)恢復(fù)和決策支持則是混合任務(wù)。這些混合的任務(wù)需要通過人和計算機交互來共同完成,因此需要進一步細化,以確定人和計算機如何樣組成。63.2 方式和工作設(shè)計工作方式有兩種,(1)由一個人單獨完成一個系統(tǒng)的目標。
55、(2)任務(wù)進展跟蹤。確定命令在系統(tǒng)中什么地點、確定關(guān)鍵的延遲命令、調(diào)查拖延的緣故、提出解決的建議等。6.4界面設(shè)計的差不多類型6.4.界面設(shè)計類型假如從用戶與計算機交互的角度來看,用戶界面設(shè)計的類型要緊有問題描述語言、數(shù)據(jù)表格、圖形與圖標、菜單、對話、以及窗口等等。每一種類型都有不同的特點和性能。在選用界面形式的時候,應(yīng)當考慮每種類型的優(yōu)點和限制。從幾方面來考察、抉擇:使用的難易程度:關(guān)于沒有經(jīng)驗的用戶,該界面使用的難度有多大。學習的難易程度:學習該界面的命令和功能的難度有多大。操作速度:在完成一個指定操作時,該界面在操作步驟、擊鍵和反應(yīng)時刻等方面效率有多高。復(fù)雜程度:該界面提供了什么功能、能
56、否用新的方式組合這些功能以增強界面功能。操縱:人機交互時,是由計算機依舊由人發(fā)起和操縱對話。開發(fā)的難易程度:該界面設(shè)計是否有難度、開發(fā)工作量有多大。通常,一個界面的設(shè)計使用了一種以上的設(shè)計類型,每種類型與一個或一組任務(wù)相匹配。.2菜單 (u)菜單又稱為選單,是由系統(tǒng)預(yù)先設(shè)置好的,顯示于屏幕上的一組或幾組可供用戶選用的命令。用戶只需通過鼠標或移位鍵等定位設(shè)備,就能夠方便地選取他所需要的菜單項,使對應(yīng)的命令得以執(zhí)行,從而實現(xiàn)其意圖。菜單能夠按照以下兩種方式進行分類。(1)按照顯示的形象或樣式來分類1)正文菜單:簡稱菜單。它實質(zhì)上是系統(tǒng)命令或者是其簡寫形式。在一個菜單中包含許多菜單項,可按某種約定,
57、把它們成行成列地顯示在屏幕上。2)圖標菜單:簡稱圖標或圖符,是安置在一個小方框之中的一幅象形的或表意的圖畫。圖標菜單項在功能上與正文菜單項沒有什么差不,只只是圖標更形象、更直觀。)正文和圖標混合的菜單:這種菜單差不多上依舊正文式的。從屏幕上看,它依舊由字符串構(gòu)成。只只是在字符串的前端或末端綴有圖標。()按屏幕位置和操作風格來分類1)固定位置菜單:固定位置菜單每次總是在屏幕的相對固定的位置出現(xiàn),例如在屏幕的中央或者一側(cè)。固定位置菜單能夠?qū)iT方便地實現(xiàn)多層結(jié)構(gòu)的菜單機制。用戶從當前屏幕上菜單項的內(nèi)容,能夠明白自己當前在系統(tǒng)申的位置,以及上下關(guān)系。然而由于在水平方向和垂直方向均有菜單常駐于屏幕,占去
58、了一部分屏幕的空間,使得用戶的工作區(qū)變小。2)浮動位置菜單:也叫做彈出式菜單。其特點是:僅當需要時,它才被瞬時顯示出來供用戶選用,完成使命后它立即從屏幕上消逝。3)下拉式菜單:下拉式菜單揉和了固定位置菜單與浮動位置菜單。它的結(jié)構(gòu)分為兩層:第一層是各個父菜單項,它們排成一行,常駐在屏幕上沿一個狹窄的帶形區(qū)域中。第二層是各個父菜單項的子菜單項,它們分不隸屬于所對應(yīng)的父菜單項。子菜單項平常是“藏”在屏幕后面的,僅當選上其父菜單項時,緊挨在其父菜單項的下方立即顯示出來,以供用戶進一步選用。選完之后它們又立即消逝。4)嵌入式菜單:嵌入式菜單通常并不顯式地成行成列地出現(xiàn)在屏幕上,而是混在應(yīng)用之中。也能夠講
59、嵌入式菜單項確實是它所在的應(yīng)用中的一部分內(nèi)容。必要時能夠用粗體字或字母高亮度顯示等方式加以突出。6. 圖像在用戶界面中,加入豐富多彩的畫面,將能夠更形象地為用戶提供有用的信息而達到可視化的目的。其要緊的處理有圖象的隱蔽和再現(xiàn)、屏幕滾動和圖案顯示,包括動畫。(1)圖象的隱蔽和再現(xiàn)實際的應(yīng)用系統(tǒng)中常常頻繁地要求把屏幕上的某一塊矩形區(qū)域內(nèi)的圖象隱蔽起來,然后在以后的適當時刻,令其重新顯現(xiàn)。(2)屏幕的滾動通常,用于人機交互活動的物理屏幕僅能容納用戶需要顯示的內(nèi)容中的一部分內(nèi)容,因此,用戶必須通過屏幕滾動或其他措施才能看到全部內(nèi)容。屏幕滾動能夠?qū)⒂脩舻娘@示內(nèi)容在物理屏幕上做平行移動,因此,需要為此功能
60、設(shè)置一個內(nèi)存緩沖區(qū)。每當用戶工作區(qū)的內(nèi)容發(fā)生改變時,工作區(qū)的屏幕圖象就保存在那個緩沖區(qū)申,然后依照用戶的滾動請求,對屏幕光標的位置做了移動后,在屏幕上進行圖象的重畫或重寫。()圖案的顯示用某種方法將預(yù)先設(shè)計好的圖案以圖象的形式存放在一個文件中,必要時再將其裝入到內(nèi)存中并顯示在屏幕指定的位置上,這確實是圖案顯示的處理過程。在人機對話過程中,適當?shù)嘏湟赃@種圖案顯示,能夠大大提高應(yīng)用系統(tǒng)的視覺效果b連續(xù)地顯示預(yù)先預(yù)備好的某動作過程中的一連串相接的瞬間圖案,就構(gòu)成為動畫。6.4.4對 話對話,也稱為對話框,是系統(tǒng)在必要時顯示于屏幕上一個矩形區(qū)域內(nèi)的圖形和正文信息。通過對話,實現(xiàn)用戶和系統(tǒng)之間的通信。通
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年會計實務(wù)操作技能測試題及答案解析
- 家具銷售行業(yè)培訓
- 2026年企業(yè)內(nèi)部風險管理與審計試題
- 2026年管理學原理與實踐考試題庫
- 2026年系統(tǒng)集成項目管理師考前練習數(shù)據(jù)存儲與管理技術(shù)題
- 2026年經(jīng)濟法學深度解讀企業(yè)法務(wù)實務(wù)經(jīng)典題目
- 2026年環(huán)境工程污染治理造價估算問題集
- 2026年數(shù)據(jù)結(jié)構(gòu)與算法工程師考試題庫
- 2026年通信工程專業(yè)知識考試題庫及答案詳解
- 2025 小學二年級道德與法治上冊公共場合不挖鼻孔課件
- 畢氏族譜完整版本
- 制造業(yè)工業(yè)自動化生產(chǎn)線方案
- 23J916-1 住宅排氣道(一)
- (正式版)JB∕T 7052-2024 六氟化硫高壓電氣設(shè)備用橡膠密封件 技術(shù)規(guī)范
- 股權(quán)融資與股權(quán)回購協(xié)議
- 企業(yè)人才發(fā)展方案
- ISO 31000-2023 風險管理 中文版
- 花城版音樂七年級下冊53康定情歌教案設(shè)計
- 高考數(shù)學答題卡
- 燃料質(zhì)量化學技術(shù)監(jiān)督
- 歷屆湖北華師一附中自主招生物理試題
評論
0/150
提交評論