軟件設(shè)計(jì)課件_第1頁
軟件設(shè)計(jì)課件_第2頁
軟件設(shè)計(jì)課件_第3頁
軟件設(shè)計(jì)課件_第4頁
軟件設(shè)計(jì)課件_第5頁
已閱讀5頁,還剩131頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、軟件設(shè)計(jì)內(nèi)容概要軟件設(shè)計(jì)的基本概念面向?qū)ο笤O(shè)計(jì)及UML軟件體系結(jié)構(gòu)設(shè)計(jì)Usecase設(shè)計(jì)用戶界面設(shè)計(jì)基本概念軟件設(shè)計(jì)的定義軟件設(shè)計(jì)的重要性軟件設(shè)計(jì)的目標(biāo)軟件設(shè)計(jì)的基本原則Design for ChangeDesign for Reuse軟件設(shè)計(jì)的定義The process of defining the architecture, components, interfaces, and other characteristics of a system or component.The results of that process.IEEE Standard Glossary of Soft

2、ware Engineering Terminology, IEEE std 1990.軟件設(shè)計(jì)的重要性“怎么做”需求分析:“做什么”軟件實(shí)現(xiàn)的基礎(chǔ)和依據(jù)影響軟件測(cè)試及維護(hù)的難易提供了軟件的表示,使軟件質(zhì)量評(píng)價(jià)成為可能軟件設(shè)計(jì)的目標(biāo)設(shè)計(jì)必須實(shí)現(xiàn)分析模型中描述的所有顯式需求,必須滿足用戶希望的所有隱式需求。設(shè)計(jì)必須是可讀、可理解的,使得將來易于編程、易于測(cè)試、易于維護(hù)。設(shè)計(jì)應(yīng)從實(shí)現(xiàn)角度出發(fā),給出與數(shù)據(jù)、功能、行為相關(guān)的軟件全貌。 “There are two ways of constructing a software design: One way is to make it so simp

3、le that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. ” C. A. R. CoareKISS:Keep It Simple, Student簡(jiǎn)單化是一種美德軟件設(shè)計(jì)的基本原則軟件設(shè)計(jì)的基本原則Design for Change信息隱蔽抽象化自頂向下,逐步細(xì)化模塊化Design for Reuse復(fù)用的基本概

4、念基于構(gòu)件的軟件開發(fā)Design for changeWhy?變化是不可避免的,變化是可以預(yù)期的How?識(shí)別并隔離可能變化的區(qū)域設(shè)計(jì)可以隔離變化的接口信息隱蔽每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對(duì)于其他模塊來說是隱藏的,即模塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其他不需要這些信息的模塊使用。public void foo () Vector vt = new Vector (); vt.add (“Hello”); vt.add (0, new Integer (1); System.out.println (“The size is: ” +vt.capacity (); vt.remove (0); vt

5、.clear ();抽象化過程抽象層次I:用問題所處環(huán)境的術(shù)語來描述軟件層次II:任務(wù)需求的描述層次III:程序過程表示數(shù)據(jù)抽象在不同層次上描述數(shù)據(jù)的細(xì)節(jié)控制抽象包含程序控制機(jī)制而無須規(guī)定其內(nèi)部細(xì)節(jié)自頂向下,逐步細(xì)化對(duì)軟件系統(tǒng)體系結(jié)構(gòu)中,各個(gè)層次的過程描述和數(shù)據(jù)描述逐步細(xì)化,直到可以用程序設(shè)計(jì)語言實(shí)現(xiàn)為止“頂”:概念性的描述“底”:實(shí)現(xiàn)的細(xì)節(jié)與“抽象”的過程相對(duì)應(yīng)模塊化將整個(gè)軟件分成若干可單獨(dú)命名和編址的部分,稱之為模塊好處降低復(fù)雜度提高軟件的可維護(hù)性和對(duì)于變化的靈活性有助于各個(gè)功能并行地開發(fā)、測(cè)試,提高生產(chǎn)率提高軟件的可理解性有利于軟件的復(fù)用(設(shè)計(jì)復(fù)用、代碼復(fù)用)Trade-offs將大而復(fù)

6、雜的問題分解成容易處理的小問題,可降低復(fù)雜性,減少工作量E (P) E (P1) + E (P2) 小問題不獨(dú)立,則相互作用可能增加工作量E (P1+I1*P1) + E (P2+I2*P2) E (P1) + E (P2)“分解問題”增加工作量E (P1+I1*P1) + E (P2+I2*P2) + E (D)結(jié)論:粒度,數(shù)量模塊粒度減小 模塊內(nèi)結(jié)構(gòu)簡(jiǎn)單單個(gè)模塊的工作量減小模塊數(shù)量增多 模塊間聯(lián)系復(fù)雜模塊分解及集成的工作量增大存在一個(gè)模塊數(shù)M,使總代價(jià)最小軟件總成本集成成本成本/模塊模塊數(shù)量成本或工作量最小成本區(qū)域M模塊化-模塊獨(dú)立性( Independence)軟件系統(tǒng)中每個(gè)模塊只涉及軟

7、件要求的具體的子功能,而和其他的模塊的接口簡(jiǎn)單度量準(zhǔn)則耦合性(Coupling)內(nèi)聚性(Cohesion)模塊耦合性( Coupling)程序結(jié)構(gòu)中各個(gè)模塊之間相互關(guān)聯(lián)地度量接口的復(fù)雜程度、調(diào)用方式、交互的信息1. 非直接耦合:模塊之間沒有直接關(guān)系,它們之間的聯(lián)系是通過主模塊的控制和調(diào)用來實(shí)現(xiàn)的。public class mainClass () public static void main (String s) Frame fr1 = new Frame (); Frame fr2 = new Frame (); 非直接耦合實(shí)例public class mainClass () publi

8、c static void main (String s) Frame fr1 = new Frame (); fr1.setTitle (“Vending Machine”); 數(shù)據(jù)耦合實(shí)例2. 數(shù)據(jù)耦合: 模塊之間通過傳遞簡(jiǎn)單數(shù)據(jù)變量(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)交換信息優(yōu)點(diǎn):松散耦合,獨(dú)立性強(qiáng)。public class mainClass () public static void main (String s) MenuBar mb = new MenuBar (); Frame fr1 = new Frame (); fr1.setMenuBar (mb); 標(biāo)記耦合實(shí)例3

9、. 標(biāo)記耦合:模塊之間通過傳遞數(shù)據(jù)結(jié)構(gòu)交換信息。問題:參與模塊需清楚數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)的改變導(dǎo)致所有相關(guān)模塊的更改。4. 控制耦合:一個(gè)模塊通過傳送控制信息,可選擇另一模塊的功能。 問題:主控模塊需了解被控模塊的內(nèi)部邏輯關(guān)系,對(duì)被控模塊的修改會(huì)影響主控模塊。public class msgBoard extends Panel () public showMsg (String msg, boolean isAdm) StringBuffer bmsg = new StringBuffer ();if (isAdm) bmsg.append (“Hello Administrator: ”);

10、else bmsg.append (“Hello customer: ”);bmsg.append (msg); 控制耦合實(shí)例5. 外部耦合:模塊之間共享全局簡(jiǎn)單變量。問題:容易引起“漣漪效應(yīng)”缺乏對(duì)數(shù)據(jù)訪問的控制模塊與全局?jǐn)?shù)據(jù)綁定實(shí)例:C語言程序中的extern對(duì)外界環(huán)境的依賴,如I/O設(shè)備,數(shù)據(jù)庫(kù),操作系統(tǒng),網(wǎng)絡(luò)協(xié)議等NOTE:邏輯關(guān)系,無物理依賴public static void main(String args) String url = jdbc:odbc:myDB; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); try con

11、= DriverManager.getConnection(url, Admin, duke1); 外部耦合實(shí)例6. 公共耦合:模塊之間共享公共數(shù)據(jù)環(huán)境。(全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享通信區(qū)。物理結(jié)構(gòu))問題:模塊之間及模塊與數(shù)據(jù)之間的依賴性強(qiáng)。D1D2DnM1M2Mm公共耦合的復(fù)雜程度隨耦合模塊個(gè)數(shù)的增加而顯著增加例如:假設(shè)有M個(gè)模塊,N個(gè)數(shù)據(jù),任意模塊可以訪問任意數(shù)據(jù),則共有關(guān)聯(lián)關(guān)系: M * (M-1) * N7. 內(nèi)容耦合:一個(gè)模塊可以直接改變另一模塊的數(shù)據(jù)流或控制流。一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;兩個(gè)模塊有一部分程序代碼重疊;一個(gè)模塊有多個(gè)入口。模

12、塊內(nèi)聚性( Cohesion)模塊功能強(qiáng)度模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量1. 功能內(nèi)聚:模塊中的各部分都是完成某一具體功能必不可少的組成部分所有部分都為了完成一個(gè)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割各部分若分開則導(dǎo)致模塊間很強(qiáng)的耦合性2. 信息內(nèi)聚:模塊完成多種功能各個(gè)功能在同一數(shù)據(jù)結(jié)構(gòu)上操作每一項(xiàng)功能有一個(gè)唯一的入口點(diǎn)多個(gè)功能內(nèi)聚模塊的組合信息隱蔽:將某個(gè)數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱藏在一個(gè)模塊內(nèi)3. 通信內(nèi)聚:模塊內(nèi)各功能都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù)通過數(shù)據(jù)流圖定義4. 過程內(nèi)聚:模塊內(nèi)的處理是相關(guān)的,且必須以特定次序執(zhí)行例如:錯(cuò)誤判定及錯(cuò)誤處理5. 時(shí)間內(nèi)聚:模塊

13、的各個(gè)功能的執(zhí)行與時(shí)間有關(guān),所有功能必須在同一時(shí)間段內(nèi)執(zhí)行例如:模塊初始化、終止6. 邏輯內(nèi)聚:把相關(guān)功能組合在一起,每次調(diào)用時(shí),由傳送給模塊的判定參數(shù)來確定模塊應(yīng)執(zhí)行哪一種功能7. 巧合內(nèi)聚:模塊內(nèi)個(gè)部分之間沒有聯(lián)系,或者即使有聯(lián)系,聯(lián)系也很松散。邏輯內(nèi)聚巧合內(nèi)聚軟件設(shè)計(jì)的目標(biāo):高內(nèi)聚,低耦合增強(qiáng)模塊內(nèi)的關(guān)聯(lián)性,降低模塊間的關(guān)聯(lián)性增強(qiáng)模塊的獨(dú)立性Design For Reuse軟件應(yīng)作為一種可復(fù)用的資產(chǎn),軟件復(fù)用可帶來較高的投資回報(bào)率降低開發(fā)和維護(hù)成本提高交付效率提高質(zhì)量可復(fù)用的軟件資產(chǎn)需求、設(shè)計(jì)、編碼、測(cè)試解決方案,設(shè)計(jì)方案工具過程經(jīng)驗(yàn)和最佳實(shí)踐軟件復(fù)用顆粒度應(yīng)用系統(tǒng)復(fù)用COTS (Com

14、mercial-Off-The-Shelf)Family applications構(gòu)件復(fù)用復(fù)用部分應(yīng)用系統(tǒng),從子系統(tǒng)到單一對(duì)象功能復(fù)用作為單一的功能復(fù)用,如標(biāo)準(zhǔn)圖形/數(shù)學(xué)庫(kù)Some Reuse FactsHitachi: reduced number of late projects from 72% to 7% in 4 yearsToshiba: improved productivity 3 times in 9 years, 50% code reuse; reduced error rate from 7-20 per 1 KLOC to 2-3Fijitsu: improved p

15、roductivity by 2/3, reduced error rate by factor of 10NEC: increased productivity by 26% to 91%HP: shortened time-to-market by factor of 4, reduced error rate by factor of 10“CBSE is changing the way large software systems are developed. CBSE embodies the buy, dont build philosophy shifts the emphas

16、is from programming software to composing software systems. Implementation has given way to integration as the focus. As its foundation is the assumption that there is sufficient commonality in many large software systems to justify developing reusable components to exploit and satisfy that commonal

17、ity.”“From Subroutine to Subsystems: Component Based Software Development,” P.C. Clements, American Programmer, 1995基于構(gòu)件的軟件工程(Component Based Software Engineering)構(gòu)件定義Software componentA nontrivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of

18、 a well-defined architectureComponent provide/require services through its published interfacesRun-time software componentA dynamic bindable package of one or more programs managed as a unit and accessed through documented interfaces that can be discovered in run time構(gòu)件實(shí)例White-box source level compo

19、nentsData structure: array, structProcedures or functions: sine(x), sort(x)Class, objectGroup of classesIncomplete, generic class: abstract classes, templatesBlack-box binary componentsCompiled libraryGUI-generated user interface, DBMSTools: Excel, WordSUN JAVA Beans, MS ActiveX control, OMG CORBA c

20、omponentsComponent InterfacesProvides interfaceDefines the services that are provided by the component to other componentsRequires interfaceDefines the services that specifies what services must be made available for the component to execute as specifiedExample: Printing ServicesPotential BenefitsSp

21、eed up system production by reusing components as both development and validation time should be reduced.Accelerated developmentStandard components such as user interface components like menus and buttons. Standards complianceInstead of application specialists doing the same work on different projec

22、ts, these specialists can develop reusable components which encapsulates their knowledge.Effective use of specialistsReduce the uncertainty of project cost estimation, particularly true when large components reuse.Reduced process riskReused components that have been exercised in the working system s

23、hould be more reliable than new components. They have been tried and tested, and faults discovered, eliminated and reduced. Increase reliabilityExplanationBenefitsPotential ProblemsSoftware components have to be discovered in a library, understood and adapted to work in a new environment. Finding an

24、d adapting reusable componentsCurrent techniques for classifying, cataloguing and retrieving software components are immature.Maintaining a component libraryEngineers prefer to rewrite components. Two reasons exist: trust and looking for challenges. Not-invented-here syndromeCASE toolsets may not su

25、pport development with reuse. It may be difficult or impossible to integrate these tools with a component library system.Lack of tool supportIf component source code is not available then maintenance costs may be increased, as the reused elements of the system may become increasingly incompatible wi

26、th system changes.Increase maintenance costsExplanationProblem內(nèi)容概要軟件設(shè)計(jì)的基本概念面向?qū)ο笤O(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)Usecase設(shè)計(jì)用戶界面設(shè)計(jì)主要任務(wù)將OOA所創(chuàng)建的分析模型轉(zhuǎn)化為設(shè)計(jì)模型,可采用相同的建模語言O(shè)OA與OOD是反復(fù)迭代的過程,OOD是對(duì)OOA模型具體實(shí)現(xiàn)的補(bǔ)充增/刪/改類、屬性、操作同樣遵循抽象、信息隱蔽、模塊化等基本設(shè)計(jì)原則UML類、對(duì)象及包建模(Class, Object, and Package Diagram)Package Diagram包 Package“子系統(tǒng)”,一種分組機(jī)制,將模型元素組織成語義相

27、關(guān)的組模型元素不能被一個(gè)以上的包擁有包之間的關(guān)系包含(嵌套)依賴泛化(繼承)Class Diagram類圖類 Class類名屬性操作約束接口 Interface展示類/構(gòu)件的外部可見操作特殊的類,不具備屬性、狀態(tài)及內(nèi)部實(shí)現(xiàn)Class NotationDetails SuppressedAnalysis-level DetailImplementation-level DetailInterfaceUML中類之間的關(guān)系關(guān)聯(lián) Association常規(guī)關(guān)聯(lián)兩個(gè)類之間的關(guān)聯(lián)關(guān)聯(lián)兩端可以標(biāo)明重?cái)?shù) multiplicity,關(guān)聯(lián)的數(shù)量范圍關(guān)聯(lián)兩端可以寫上角色名遞歸關(guān)聯(lián)類與自身的關(guān)聯(lián)多重關(guān)聯(lián)兩個(gè)以上類的關(guān)

28、聯(lián)多重關(guān)聯(lián)UML中類之間的關(guān)系有序關(guān)聯(lián)ordered受限關(guān)聯(lián)(qualified association)“限制子 qualifier”或關(guān)聯(lián)兩個(gè)關(guān)聯(lián)之間存在著或的關(guān)系關(guān)聯(lián)類 (association class)說明類之間的關(guān)聯(lián)關(guān)系的類受限關(guān)聯(lián)An instance of the source classifier, together with a value of the qualifier, uniquely select a partition in the set of the target classifier instance.或關(guān)聯(lián)遞歸關(guān)聯(lián)關(guān)聯(lián)類UML中類之間的關(guān)系聚集共享聚集

29、 (shared aggregation)“部分”可以參加多個(gè)“整體”組成聚集 (composition aggregation )“部分”僅存在“整體”之中,隨“整體”消亡而消亡泛化 Generalization繼承 Inheritance 依賴 Dependency共享聚集組成聚集對(duì)象圖類的實(shí)例類對(duì)象對(duì)象內(nèi)容概要軟件設(shè)計(jì)的基本概念面向?qū)ο笤O(shè)計(jì)及UML軟件體系結(jié)構(gòu)設(shè)計(jì)Usecase設(shè)計(jì)用戶界面設(shè)計(jì)Why Software ArchitectureProgram Software SystemsIncreases in size and complexityProgramming Langua

30、ge Software ArchitectureMachine languageHigh-level language Abstract Data TypeSoftware ArchitectureData Structure & AlgorithmProgramming in the SmallProgramming in the largeComponents & ConnectorsWhy Software ArchitectureArchitectures as the framework for satisfying requirementsArchitectures as the

31、technical basis for design and as the managerial basis for cost estimation and process managementArchitecture as an effective basis for reuseArchitecture as the basis for dependency and consistency analysis“Foundations for the study of software architecture”D.E. Perry and A.L. Wolf, 1992軟件體系結(jié)構(gòu)定義 “Th

32、e fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.”ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive SystemsCommon Architectu

33、re StylesIndep. componentsEvent-based Data FlowPipes and FiltersCall / ReturnLayeredData CenteredRepositoriesVirtual MachineInterpretersDistributedClient/ServerLayered: Definition“Layered system is organized hierarchically, each layer providing service to the layer above it and serving as a client t

34、o the layer below. Layers may be hidden to all except adjacent layers or layers may be partially hidden.”COREUser InterfaceBusiness LogicBasic UtitilySAPLayer N+1Layer NinterfacePresentationApplicationPresentationApplicationApplication ProtocolPresentation ProtocolPhysicalData LinkNetworkTransportSe

35、ssionPresentationApplicationOSI 模型Layered: ElementsComponents: LayersGroup of subtasks which implement a “virtual machine” at certain layer in the hierarchyConnectors: Protocol / InterfaceEach layer hides lower layer and provides services to higher layerEach layer serves distinct functions Layered:

36、AdvantageProblem decompositionIncreasing levels of abstraction, partition complex problemsSystem maintenanceA layer only interacts with the layer above the one below. Limited change effectSystem reuseEach layer supports a set of standard interfacesDifferent implementations of the same interfaces can

37、 be interchangedLayered: DisadvantageLayered abstraction is difficultOpaque layers prevent user control of deep functionalityCommunication down through layers and back up may cause performance penaltyClient/Server: Definition“The client/server software architecture is a versatile, message-based and

38、modular infrastructure that is intended to improve usability, flexibility, interoperability, and scalability as compared to centralized, mainframe, time sharing computing. ”Usability: the ease with which a user can learn to operate, prepare inputs for, and interpret outputs of a system or componentC

39、lient/Server: DefinitionFlexibility: the ease with which a system or component can be modified for use in applications or environments other than those for which it was specifically designed Interoperability: the ability of two or more systems or components to exchange information and to use the inf

40、ormation that has been exchanged Scalability: the ease with which a system or component can be modified to fit the problem area. Client/Server: ElementsDistributed system model which shows how data and processing is distributed across a range of componentsSet of stand-alone servers which provide spe

41、cific services such as printing, data management, etc.Set of clients which call on these servicesClients know of servers but servers need not know of clientsClients and servers are logical processesNetwork which allows clients to access serversExample: Film and picture libraryClient/Server: TypesTwo

42、 tier C/S with thin clientsAll of the application processing and data management is carried out on the server. The client is simply responsible for running the presentation software.Two tier C/S with fat clientsthe server is only responsible for data management. The software on the client implements

43、 the application logic and the interactions with the system userThree tier or multi-tier C/Seach of the application architecture layers may execute on a separate processorMiddle tier: queuing, application execution, and database staging Client/Server: TypesClientServerData ManagementApplication Proc

44、essingPresentationClientServerData ManagementPresentationApplication ProcessingTwo Tier with Thin ClientTwo Tier with Fat ClientServerApplication ProcessingServerDataManagementClientPresentationThree TierClient/Server: UsageFat Client Two tierCOST (Component-Of-The-Shelf) on the client (e.g. MS Exce

45、l)Computationally intensive processing of data is required (e.g. data visualization)Relatively stable end-user functionality used in an environment with well-established system managementClient/Server: UsageThin Client Two TierLegacy application where separating application processing and data manag

46、ement is impracticalComputationally intensive applications with little or no data management (e.g. Compiler)Data-intensive applications with little or no application processingClient/Server: UsageThree / multi-tierLarge scale applications with hundreds or thousands of clientsApplications where both

47、data and the application are volatileApplications where data from multiple sources are integratedClient/Server: DiscussionAdvantagesDistribution of data is straightforwardMakes effective use of networked systems. May require cheaper hardwareEasy to add new servers or upgrade existing serversDisadvan

48、tagesNo shared data model so sub-systems use different data organisation. data interchange may be inefficientRedundant management in each serverNo central register of names and services - it may be hard to find out what servers and services are availableMaintenance of distributed client Client/Serve

49、r To Browser/Server內(nèi)容概要軟件設(shè)計(jì)的基本概念面向?qū)ο笤O(shè)計(jì)及UML軟件體系結(jié)構(gòu)設(shè)計(jì)Usecase設(shè)計(jì)用戶界面設(shè)計(jì)Key StepsUsecase Behavior ModelingInteraction DiagramClassesResponsibilitiesAttributesAttributesRelationships內(nèi)容概要軟件設(shè)計(jì)的基本概念面向?qū)ο笤O(shè)計(jì)及UML軟件體系結(jié)構(gòu)設(shè)計(jì)Usecase設(shè)計(jì)用戶界面設(shè)計(jì)用戶界面是用戶對(duì)系統(tǒng)的“第一印象”,也是系統(tǒng)功能的最直觀的展示界面設(shè)計(jì)不清楚、不好用是許多軟件難以推廣使用的主要原因之一“用戶友好”GUI:圖形用戶界面是目前應(yīng)

50、用系統(tǒng)的主要人際交互方式主要特征窗口,菜單,圖標(biāo),圖形.主要優(yōu)點(diǎn)易學(xué)易用易于任務(wù)間的轉(zhuǎn)換,以及與多個(gè)系統(tǒng)的交互全屏操作用戶界面設(shè)計(jì)的主要原則簡(jiǎn)單實(shí)用User-CenteredPlace the user in controlReduce the users memory loadMake the interface consistent- The elements of User Interface, T. Mandel, Wiley, 1997User familiarity采用用戶容易理解的語言描述界面操作Consistency系統(tǒng)的各種功能應(yīng)盡可能地保持一致的操作風(fēng)格Minimal surprise在任何情況下,不應(yīng)有用戶意外的操作結(jié)果用戶界面設(shè)計(jì)的主要原則Recoverability支持用戶從錯(cuò)誤操作返回原狀態(tài)User guidance應(yīng)提供對(duì)于錯(cuò)誤的提示信息及幫助信息User diversity針對(duì)不同的用戶,應(yīng)支持不同的操作方式用戶界面設(shè)計(jì)的主要原則“人機(jī)”交互界面交互的主要方式直接操作菜單選擇表格填充命令行自然語言信息檢索輸入較多,需要自然語言理解,系統(tǒng)可靠性差適用于各種用戶,容易擴(kuò)展自然語言Unix操作系統(tǒng)掌握困難,容易出錯(cuò)功能強(qiáng)大,靈活命令行網(wǎng)上求職

溫馨提示

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

評(píng)論

0/150

提交評(píng)論