導航:首頁 > 程序命令 > 面向程序員的用戶界面設計

面向程序員的用戶界面設計

發布時間:2022-08-27 21:09:57

A. 如何讓程序員更容易的開發Web界面

早在中國IT業方興未艾之時,計算機應用系統主要以功能實現為主,幾乎沒有界面設計這個概念。時至今日,隨著計算機和網路的不斷普及,社會信息化程度日益加深,用戶和市場的不斷成熟,人們已經不僅僅滿足於「夠用」,而是更加強調「好用」「易用」;因此,不論是普通最終用戶的個人軟體,還是企業應用的大型系統,界面設計在系統構建中都成為了一個非常重要的方面。

但是,(至少在中國)由於IT業發展滯後、市場還不夠成熟等原因,在絕大多數企業中,界面設計在軟體系統開發中還沒有獲得與之重要性相匹配的一席之地,並且在企業運作和協調中也沒有形成成熟的模式和解決方案,如何做好界面設計和開發,仍然是大家不斷研究探討的一個問題。

1.工作流程

下圖,是整個開發過程中與界面設計相關的主要流程工作。

在整個系統界面的設計過程中,需要注意整個系統的統一,設計風格要一致,界面中的交互元素,從色彩、樣式到排版方式、具體位置都要具備延續性,這樣才能使用戶盡快習慣整個系統操作。

6.典型交互模式

界面交互中,根據功能不同,有不同的交互方式。應該盡量提取抽象,盡可能減少交互模式的種類,或者把交互方式盡可能設計的類似,以方便用戶快速熟悉系統。

7.Demo開發

Demo是詳細設計階段的重要成果之一,在對系統進行詳細的分析設計之後,開發出界面Demo原型,主要作用是提供給合作客戶,在基本功能、系統組成和易用性上進行測試。
本系統的Demo主要包括界面的設計製作,和部分客戶端表現層腳本的開發。為了在後面的實際業務開發中盡可能獲得重用,Demo的製作在頁面規范、CSS樣式定義和JS腳本編寫方面都嚴格遵循了系統開發規范,並在以後的代碼編寫工作中嚴格執行。
本系統整個Demo包括大約50個頁面,耗時月3周。
在後續的開發過程中,仍然要嚴格控制整個開發過程,保證整個系統界面的統一,並隨時維護更新系統界面的設計。

B. 電腦培訓分享程序員需要了解的10個面向對象設計

面向對象設計原則是OOPS編程的核心,學習面向對象編程像「抽象」、「封裝」、「多態」、「繼承」等基礎知識是重要的,但同時為了創建簡潔、模塊化的設計,了解這些設計原則也同等重要。



(設計原則)底線是永遠追求高內聚、低耦合的編碼或設計。Apache和Sun的開源代碼是學習和OOPS設計原則的良好範例。它們向我們展示了,設計原則在編程中是如何使用的。JDK使用了一些設計原則:BorderFactory類中的工廠模式、Runtime類中的單例模式、.io類中的裝飾器模式。順便說一句,如果您真的對編碼原則感興趣,請閱讀JoshuaBloch的Effective,他編寫過API。我個人最喜歡的關於面向對象設計模式的是KathySierra的HeadFirstDesignPattern(深入淺出設計模式),以及其它的關於深入淺出面向對象分析和設計。這些書對編寫更好的代碼有很大幫助,充分利用各種面向對象和SOLID的設計模式。


雖然學習設計模式(原則)最好的方法是現實中的例子和理解違反設計原則帶來的不便,本文的宗旨是向那些沒有接觸過或正處於學習階段的程序員介紹面向對象設計原則。


DRY_Don』trepeatyourself


我們第一個面向對象設計原則是:DRY,從名稱可以看出DRY(don』trepeatyourself)意思是不寫重復代碼,而是抽象成可復用的代碼塊。如果您有兩處以上相同的代碼塊,請考慮把它們抽象成一個單獨的方法;或者您多次使用了硬編碼的值,請把它們設置成公共常量。這種面向對象設計原則的優點是易於維護。重要的是不要濫用此原則,重復不是針對代碼而是針對功能來說。它的意思是,如果您使用通用代碼來驗證OrderID和SSN,這並不意味著它們是相同的或者他們今後將保持不變。通過把通用代碼用於實現兩種不同的功能,或者您把這兩種不同的功能密切地聯系在一起;當您的OrderID格式改變時,您的SSN驗證代碼將會中斷。所以要當心這種耦合,而且不要把彼此之間沒有任何關系卻類似的代碼組合在一起。


封裝經常修改的代碼


EncapsulateWhatChanges


在軟體領域永遠不變的是「變化」,所以把您認為或懷疑將來要被修改的代碼封裝起來。這種面向對象設計模式的優點是:易於測試和維護恰當封裝的代碼。如果您在用編程,那麼請遵守以下原則:變數和方法的訪問許可權默認設置為私有,並且逐步放開它們的訪問許可權,例如從「private」到「protected」、「notpublic」。中的一些設計模式使用了封裝,工廠設計模式就是一個例子,它封裝了創建對象的代碼而且提供了以下靈活性:後續生成新對象不影響現有的代碼。


打開/關閉設計原則


OpenClosedDesignPrinciple


類、方法/函數應當是對擴展(新功能)開放,對修改閉合。這是另外一個優雅的SOLID設計原則,以防止有人修改通過測試的代碼。理想情況下假如您添加了新功能,那麼您的代碼要經過測試,這就是打開/關閉設計原則的目標。順便說一句,SOLID中的字母「O」指的是打開/關閉設計原則。


單一職責原則


SingleResponsibilityPrinciple(SRP)


單一職責原則是另外一個SOLID設計原則,SOLID中的字母「S」指的就是它。按照SRP,一個類修改的原因應當有且只有一個,或者一個類應當總是實現單一功能。如果您在中的一個類實現了多個功能,那麼這些功能之間便產生了耦合關系;如果您修改其中的一個功能,您有可能就打破了這種耦合關系,那麼就要進行另一輪測試以避免產生新的問題。


依賴注入/反轉原則



不要問框架的依賴注入功能將會給你帶來什麼益處,依賴注入功能在spring框架里已經很好的得到了實現,這一設計原則的優雅之處在於:DI框架注入的任何一個類都易於用模擬對象進行測試,並且更易於維護,因為創建對象的代碼在框架里是集中的而且和客戶端代碼是隔離的。有多種方法可以實現依賴注入,例如使用位元組碼工具,其中一些AOP(面向切面編程)框架如切入點表達式或者spring里使用的代理。想對這種SOLID設計原則了解更多,請看IOC和DI設計模式中的例子。SOLID中的字母「D」指的就是這種設計原則。


優先使用組合而非繼承


ForCompositionoverInheritance


如果可以的話,要優先使用組合而非繼承。你們中的一些人可能為此爭論,但我發現組合比繼承更有靈活性。組合允許在運行時通過設置屬性修改一個類的行為,通過使用多態即以介面的形式實現類之間的組合關系,並且為修改組合關系提供了靈活性。甚至Effective也建議優先使用組合而非繼承。


里氏替換原則



根據里氏替換原則,父類出現的地方可以用子類來替換,例如父類的方法或函數被子類對象替換應該沒有任何問題。LSP和單一職責原則、介面隔離原則密切相關。如果一個父類的功能比其子類還要多,那麼它可能不支持這一功能,而且也違反了LSP設計原則。為了遵循LSPSOLID設計原則,派生類或子類(相對父類比較)必須增強功能,而非減少。SOLID中的字母「L」指的就是LSP設計原則。


介面隔離原則


介面隔離原則指,如果不需要一個介面的功能,那麼就不要實現此介面。這大多在以下情況發生:一個介麵包含多種功能,而實現類只需要其中一種功能。介面設計是一種棘手的工作,因為一旦發布了介面,您就不能修改它否則會影響實現該介面的類。在中這種設計原則的另一個好處是:介面有一個特點,任何類使用它之前都要實現該介面所有的方法,所以使用功能單一的介面意味著實現更少的方法。


編程以介面(而非實現對象)為中心


編程總是以介面(而非實現對象)為中心,這會使代碼的結構靈活,而且任何一個新的介面實現對象都能兼容現有代碼結構。所以在中,變數、方法返回值、方法參數的數據類型請使用介面。這是許多程序員的建議,Effective以及headfirstdesignpattern等書也這樣建議。


代理原則


不要期望一個類完成所有的功能,電腦培訓http://www.kmbdqn.com/認為可以適當地把一些功能交給代理類實現。代理原則的典範是:中的equals()和hashCode()方法。為了比較兩個對象的內容是否相同,我們讓用於比較的類本身完成對比工作而非它們的調用方。這種設計原則的好處是:沒有重復編碼而且很容易修改類的行為。


C. 什麼是UI設計

UI設計(或稱界面設計)是指對軟體的人機交互、操作邏輯、界面美觀的整體設計。UI設計分為實體UI和虛擬UI,互聯網說的UI設計是虛擬UI,UI即User Interface(用戶界面)的簡稱。

好的UI設計不僅是讓軟體變得有個性有品位,還要讓軟體的操作變得舒適簡單、自由,充分體現軟體的定位和特點。

UI設計師的職能大體包括三方面:一是圖形設計,軟體產品的產品「外形」設計。二是交互設計,主要在於設計軟體的操作流程、樹狀結構、操作規范等。

一個軟體產品在編碼之前需要做的就是交互設計,並且確立交互模型,交互規范。三是用戶測試/研究,這里所謂的「測試」,其目標恰在於測試交互設計的合理性及圖形設計的美觀性,主要通過以目標用戶問卷的形式衡量UI設計的合理性。

如果沒有這方面的測試研究,UI設計的好壞只能憑借設計師的經驗或者領導的審美來評判,這樣就會給企業帶來極大的風險。

(3)面向程序員的用戶界面設計擴展閱讀:

就業前景

UI即用戶界面設計行業剛剛在全球軟體業興起,屬於高薪技術設計產業,與國外在同步發展水平。

其次國內外眾多大型IT企業(例如:網路、騰訊、Yahoo、中國移動、Nokia、聯想、網易、微軟、盛大、淘寶等眾多企業)均已成立專業的UI設計部門,但專業人才稀缺,人才資源爭奪激烈。

就業市場供不應求。如今,國內的UI設計日益發展,有了專門的職業分工也開始出現一些較高水準的一線設計師與UI設計交流組織。

但總的來說,在這一領域,我們與西方發達國家間的差距仍是顯而易見的。軟體領域不像物質產品那樣,存在工藝、材料上的限制,其核心問題恰在於人。

因此,提高軟體UI設計師的個人能力,真正提升軟體產品的人性化程度,已成為中國UI發展的重中之重。

UI設計工作的年薪基本保持在10到15萬,經驗豐富者可以達到20萬,資深的UI設計人員年薪可以更高。

參考資料:網路----UI設計

D. UI設計是什麼

我們把這種人-軟體之間的介面稱作「用戶界面」,也就是「UI」。這里要討論的前一種定義: 軟體不同部分之間的交互介面。通常就是所謂的API――應用程序編程介面,其表現的形式是源代碼。API的發明和發展大大促進了計算機產業的進步,同時API幾乎決定著日常運算的各個方面。
大多數程序員秉承為軟體用戶設計優秀的用戶界面思想,這一點早已深入人心。可是,另一方面,如何實現合理的軟體API卻只為少數人所重視。歷史證明,所有在應用上獲得成功的軟體或者Web應用無一不是首先在API的設計上滿足了用戶的需求,即便這些用戶幾乎從不直接使用這些API!

E. UI設計是什麼

UI 設計(或稱界面設計)是指對軟體的人機交互、操作邏輯、界面美觀的整體設計,也叫界面設計。UI 設計分為實體 UI 和虛擬UI,互聯網說的 UI 設計是虛擬 UI, UI 即User Interface(用戶界面)的簡稱。

UI 設計師的職能大體包括三方面:一是圖形設計,軟體產品的產品「外形」設計。二是交互設計,主要在於設計軟體的操作流程、樹狀結構、操作規范等。三是用戶測試/研究,這里所謂的「測試」,其目標恰在於測試交互設計的合理性及圖形設計的美觀性,主要通過以目標用戶問卷的形式衡量 UI 設計的合理性。

UI設計目前的前景還是很不錯的,很多企業都缺少 UI設計師。而且可以看到的是,現在社會的發展,更多的智能機和智能機器人研發出現,這些都離不開UI 設計師。所以說 UI 設計的是很有前途的,是不會失業的。而且 UI 設計門檻不高,要入門也不難的。

從工作內容來說,UI 設計在當前的互聯網領域、科技領域可以說無處不在,

好的 UI 設計能夠明顯提升用戶的使用體驗,從而給產品帶來更多的附加值,所以UI 設計對於互聯網產品是非常重要的。目前 UT 設計通常分為兩個大的工作方向,一個是交互設計,另一個是視覺設計。

總的來說,UI 設計相比較於編程而言,還是非常適合大眾學的並且就業前景很廣闊。學完 UI 設計,能獲得一份穩定而又不失樂趣的工作,同時有利於追求更高品質的生活,在藝術領域可以獲得更多的啟迪。

F. 《面向用戶的軟體界面設計》大作業要求

軟體設計師考試的總體要求

軟體設計師主要完成三項工作:(1)編寫文檔;(2)組織指導程序員開展工作;(3)軟體優化和集成測試,開發高質量軟體。本工作要求具有工程師的實際工作能力和業務水平。具體講就是,通過本考試的合格人員,能根據軟體開發項目管理和軟體工程的要求,按照系統總體設計規格說明書進行軟體設計,編寫程序設計規格說明書等相應的文檔,組織和指導程序員編寫、調試程序,並對軟體進行優化和集成測試,開發出符合系統總體設計要求的高質量軟體。

考試內容要求

知識點的掌握程度從深到淺可分五個層次,分別要求為熟練掌握、掌握、理解、熟悉和了解。其中包括2個熟練掌握(常用數據結構和常用演算法、軟體設計的方法和技術)、8個掌握、2個熟悉,1個正確理解,具體體現在以下12個方面:

(1) 掌握數據表示、算術和邏輯運算;

(2) 掌握相關的應用數學、離散數學的基礎知識;

(3) 掌握計算機體系結構以及各主要部件的性能和基本工作原理;

(4) 掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;

(5) 熟練掌握常用數據結構和常用演算法;

(6) 熟悉資料庫、網路和多媒體的基礎知識;

(7) 掌握C程序設計語言,以及C++、Java、Visual Basic、Visual C++中的一種程序設計語言;

(8) 熟悉軟體工程、軟體過程改進和軟體開發項目管理的基礎知識;

(9) 熟練掌握軟體設計的方法和技術;

(10) 掌握常用信息技術標准、安全性,以及有關法律、法規的基本知識;

(11) 了解信息化、計算機應用的基礎知識;

(12) 正確閱讀和理解計算機領域的英文資料。

分析:相對於2001年考試大綱,新大綱對知識面的要求更寬,更注重軟體設計開發的實踐能力,這一點充分體現在下午考試中。考試內容除了技術要求外,還增加了對軟體工程實踐能力、安全性、標准化、法律法規等方面知識的要求,畢竟軟體設計師是軟體產業的骨幹,因此考試要求相對較高。

二、考試范圍

考試科目1:計算機與軟體工程知識

本部分包含以下內容:

l 計算機科學基礎

l 計算機系統知識

l 系統開發和運行知識

l 安全性知識

l 標准化知識

l 信息化基礎知識

l 計算機專業英語

1.計算機科學基礎

1.1 數制及其轉換

· 二進制、十進制和十六進制等常用制數制及其相互轉換

1.2 數據的表示

·(原碼、反碼、補碼、移碼表示,整數和實數的機內表示,精度和溢出)

· 非數值表示(字元和漢字表示、聲音表示、圖像表示)

· 校驗方法和校驗碼(奇偶校驗碼、海明校驗碼、循環冗餘校驗碼)

1.3 算術運算和邏輯運算

· 計算機中的二進制數運算方法

· 邏輯代數的基本運算和邏輯表達式的化簡

本部分要求與程序員考試大綱基本一致

重點:數的表示、校驗碼

難點:數的四種編碼:原碼、反碼、補碼、移碼及相互之間的變換方法。浮點數的表示以及其規格化。

考試題型一般分布在:數製表示、數據表示、校驗碼的長度、邏輯表達式(公式、等效變換),明確「與」、「非」、「異或」的運算規則。

考試出現頻率較高的內容:浮點數規格化、進制轉換、求反補碼。

1.4 數學基礎知識

· 命題邏輯、謂詞邏輯、形式邏輯的基礎知識

· 常用數值計算(誤差、矩陣和行列式、近似求解方程、插值、數值積分)

· 排列組合、概率論應用、應用統計(數據的統計分析)

· 運算基本方法(預測與決策、線性規劃、網路圖、模擬)

考綱要求掌握相關的應用數學、離散數學的基礎知識

本部分內容作為背景知識,雖不專門考察,但在其他題目中尤其是程序設計中出現。

1.5 常用數據結構

· 數組(靜態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹、平衡樹、線索樹、線索樹、堆)、圖等的定義、存儲和操作

· Hash(存儲地址計算,沖突處理)

1.6 常用演算法

· 排序演算法、查找演算法、數值計算方法、字元串處理方法、數據壓縮演算法、遞歸演算法、圖的相關演算法

· 演算法與數據結構的關系、演算法效率、演算法設計、演算法描述(流程圖、偽代碼、決策表)、演算法的復雜性

因為數據結構是程序設計的基礎,演算法與數據結構密切相關,因此本部分為考試重點內容,要求熟練掌握。

重點:順序存儲結構和鏈式存儲結構的特點、鏈表中的頭結點、棧的運算與溢出、循環隊列的基本操作

數組元素的存儲位置、特殊矩陣的壓縮存儲、廣義表的表頭和表尾求法

二叉樹存儲方法、由遍歷序列確定二叉樹、二叉樹的計數問題

圖的遍歷演算法、最小生成樹演算法、拓樸排序和關鍵路徑、最短路徑演算法

平均查找長度、折半查找判定樹、平衡二叉樹的最少結點數、插入運算及平衡化處理、哈希表的構造和查找

排序的穩定問題、快速排序的分析及改進、內部排序的時間下界、演算法時間復雜度分析

難點:二叉樹節點與深度的關系、圖的存儲(矩陣、鄰接表)與操作、遍歷、

考試出現頻率較高的內容:樹的遍歷、數據元素存儲方式、查找樹、平衡樹

考試題型一般分布在:數據元素存儲方式、隊和棧的性質及其對比、鏈表操作、二叉樹的定義及其性質、二叉樹的遍歷/節點計算、樹的遍歷、查找樹、平衡樹等,圖的概念及其性質。

常見的排序演算法、查找演算法、遞歸演算法、演算法的基本特點、常用演算法思想、演算法效率的比較(時間、空間復雜度)、演算法描述、演算法復雜性比較

2.計算機系統知識

2.1 硬體知識

2.1.1 計算機系統的組成、體系結構分類及特性

· CPU和存儲器的組成、性能和基本工作原理

· 常用I/O設備、通信設備的性能,以及基本工作原理

· I/O介面的功能、類型和特性

·(中斷系統、DMA、I/O處理機方式)

· CISC/RISC,流水線操作,多處理機,並行處理

2.1.2 存儲系統

· 主存-Cache存儲系統的工作原理

· 虛擬存儲器基本工作原理,多級存儲體系的性能價格

· RAID類型和特性

分析:磁碟存儲器的容量計算、地址映射、流水線、系統結構分類

重點:Cache替換演算法、內存與介面的編址方式、流水線操作

難點:I/O控制方式、地址計算、並行處理的概念和層次

考試出現頻率較高的內容:指令的定址方式以及指令的執行過程;存儲容量的計算、

流水線處理機的主要指標、CISC/RISC比較等

2.1.3 安全性、可靠性與系統性能評測基礎知識

· 診斷與容錯

· 系統可靠性分析評價

· 計算機系統性能評測方式

本部分內容多為記憶型內容

重點:數據加密/解密知識、計算機安全等級、認證技術、數字簽名等

平均無故障時間、平均修復時間定義、計算機可靠性模型、性能評價

難點:數據加密/解密知識、密鑰體制

考試出現頻率較高的內容:可靠性能評價、數據安全知識、計算機可靠性及性能評價

2.2 軟體知識

2.2.1 操作系統知識

· 操作系統的內核(中斷控制)、進程、線程概念

· 處理機管理(狀態轉換、共享與互斥、分時輪轉、搶占、死鎖)

· 存儲管理(主存保護、動態連接分配、分段、分頁、虛存)

· 設備管理(I/O控制、假離線)

· 文件管理(文件目錄、文件組織、存取方法、存取控制、恢復處理)

· 作業管理(作業調度、作業控制語言(JCL)、多道程序設計)

· 漢字處理,多媒體處理,人機界面

· 網路操作系統和嵌入式操作系統基礎知識

· 操作系統的配置

重點:操作系統的五大管理功能,其中如處理機管理、存儲管理、作業調度、進程調度、頁面調度等尤為重要、狀態轉換、共享與互斥、分時輪轉、搶占、死鎖

難點:作業調度、進程調度、頁面調度演算法、PV操作

考試題型一般分布在:操作系統的概述、處理機管理、存儲、文件管理、作業、進程調度、進程狀態變化

考試出現頻率較高的內容:PV操作、進程死鎖/同步、內存分配、並發執行程序、進程間狀態轉換、PV實現進程間的同步與互斥、死鎖及其避免、地址變換、頁面置換、工作集

2.2.2 程序設計語言和語言處理程序的知識

· 匯編、編譯、解釋系統的基礎知識和基本工作原理

· 程序設計語言的基本成分:數據、運算、控制和傳輸,過程(函數)調用

· 各類程序設計語言主要特點和適用情況

分析:文法考查、自動機、正則式

重點:編譯程序的基本組成、正則表達式和有限自動機、文法及語言的形式描述、中間代碼、自動機原理、文法和語言的定義

考試出現頻率較高的內容:正則表達式和正則集、有限自動機和正則表達式的轉換

2.3 計算機網路知識

· 網路體系結構(網路拓撲、OSI/RM、基本的網路協議)

· 傳輸介質、傳輸技術、傳輸方法、傳輸控制

· 常用網路設備和各類通信設備

· Client/Server結構、Browser/Server結構

· LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接

· 網際網路基礎知識以及應用

· 網路軟體

· 網路管理

· 網路性能分析

計算機網路中對OSI/RM七層的劃分,及各種協議的功能。傳輸理論、互聯設備、Internet知識,除參考模型理論外,其他的比較比較瑣碎,需要知識積累。

重點:網路分類、拓撲結構、OSI參考模型層次劃分及對應的協議、帶寬計算、子網劃分、防火牆技術

難點:IP子網劃分;傳輸控制、各層協議的功能

考試題型一般分布在:這部分知識除了上面的難點部分外,基本屬於了解記憶性的知識點,知識點比較散亂,但考試中考點均落在大綱中列出的知識點中。

考試出現頻率較高的內容:TCP/IP協議、參考模型7層協議、IP地址的分類、各種網路設備的比較;

2.4 資料庫知識

· 資料庫管理系統的功能和特徵

· 資料庫模型(概念模式、外模式、內模式)

· 數據模型,ER圖,第一範式、第二範式、第三範式

· 數據操作(集合運算和關系運算)

· 資料庫語言(SQL)

· 資料庫的控制功能(並發控制、恢復、安全性、完整性)

· 數據倉庫和分布式資料庫基礎知識

無論對上午題目還是下午題目,本部分都很重要,這是學習和復習的一個重點。

重點:用E-R模型表示現實問題,擴充的E-R模型、ER圖向關系模式的轉換、資料庫語言(SQL)、對SELECT查詢語句的應用、關系代數表達式、關系模型的完整性約束、函數依賴

難點:五種基本的關系運算方法、組合的關系運算方法、規則化理論()、函數依賴、分解的保持函數依賴、無損連接又保持函數依賴的分解、判斷一個分解的無損連接性和保持函數

考試出現頻率較高的內容:數據模型、關系運算與SQL語句的轉換、函數依賴

2.5 多媒體知識

· 多媒體系統基礎知識,多媒體設備的性能特性,常用多媒體文件格式

· 簡單圖形的繪制,圖像文件的處理方法

· 音頻和視頻信息的應用

· 多媒體應用開發過程

基本屬於了解記憶性的知識點。

重點:多媒體的基本概念、聲音數字化的過程、圖像壓縮編碼、視頻文件的國際標准、流媒體概念、多媒體計算機系統、虛擬現實技術

難點:多媒體信息的容量計算、數據壓縮、常用多媒體文件格式、音頻和視頻的物理特徵等

考試出現頻率較高的內容:基本知識、信息的容量計算

2.6 系統性能知識

· 性能指標(響應時間、吞吐量、周轉時間)和性能設計

· 性能測試和性能評估

· 可靠性指標及計算、可靠性設計

· 可靠性測試和可靠性評估

重點:可靠性評估

考試出現頻率較高的內容:系統可靠性的計算、設備周轉時間

2.7 計算機應用基礎知識

· 信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等基礎知識

· 遠程通信服務基礎知識

· 常用應用系統

本部分內容不是考試重點,做一般了解即可。

3.系統開發和運行知識

本部分內容涉及上午考試和下午考試,是軟體設計師工作能力的考查重點。

3.1 軟體工程、軟體過程改進和軟體開發項目管理知識

· 軟體工程知識

· 軟體開發生命周期各階段的目標和任務

· 軟體開發項目管理基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具

· 主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)

· 軟體開發工具與環境知識

· 軟體過程改進知識

· 軟體質量管理知識

· 軟體開發過程評估、軟體能力成熟評估基礎知識

重點:軟體開發方法、CMM、成本估算、風險分析、進度管理、人員管理、軟體開發環境

3.2 系統分析基礎知識

· 系統分析的目的和任務

· 結構化分析方法(數據流圖(DFD)、數據字典(DD)、實體關系圖(ERD)、描述加工處理的結構化語言)

· 統一建模語言(UML)

· 系統規格說明書

高度重視UML在系統分析中的應用

重點:數據流圖(DFD)、數據字典(DD)、實體關系圖(ERD)

考點:UML的各類圖

3.3 系統設計知識

· 系統設計的目的和任務

· 結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)

· 系統總體結構設計(總體布局、設計原則、模塊結構設計、數據存儲設計、系統配置方案)

· 系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)

· 系統設計說明書

重點:系統流程圖、HIPO圖、控制流程圖

3.4 系統實施知識

· 系統實施的主要任務

· 結構化程序設計、面向對象程序設計、可視化程序設計

· 程序設計風格

· 程序設計語言的選擇

· 系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)

· 測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試用例設計、系統測試報告)

· 系統轉換基礎知識

3.5 系統運行和維護知識

· 系統運行管理基礎知識

· 系統維護基礎知識

· 系統評價基礎知識

重點:結構化設計中信息流、變換分析、系統結構設計原則、系統劃分、模塊設計、數據存儲設計、面向對象程序設計、測試方法、系統維護的分類

難點:系統測試方法、測試分類、系統可維護性評價指標

3.6 面向對象開發方法

· 面向對象開發概念(類、對象、屬性、封裝性、繼承性、多態性、對象之間的引用)

· 面向對象開發方法的優越性以及有效領域

· 面向對象設計方法(體系結構、類的設計、用戶介面設計)

· 面向對象實現方法(選擇程序設計語言、類的實現、方法的實現、用戶介面的實現、准備測試數據)

· 面向對象程序設計語言(如C++、Java、Visual、Bsasic、Visual C++)的基本機制

· 面向對象資料庫、分布式對象的概念

重點:面向對象開發:類、對象、屬性、封裝性、繼承性、多態性、OMT方法

難點:建議在數據流圖、結構化分析方法上多加掌握。

考試題型一般分布在:DFD、軟體的生存周期;數據流圖;模塊間的關系;軟體測試的分類、軟體質量管理(標准)軟體的特性、主要的軟體開發方法、系統測試、軟體能力成熟評估

考試出現頻率較高的內容:數據流圖、黑盒/白盒測試、面向對象技術的概念

4.安全性知識

· 安全性基本概念

· 防治計算機病毒、防範計算機犯罪

· 存取控制、防闖入、安全管理措施

· 加密與解密機制

· 風險分析、風險類型、抗風險措施和內部控制

系統安全問題是目前社會關注的問題,也是應用價值較高的知識,可結合現實中的相關問題來加深理解。

考試出現頻率較高的內容:加密與解密演算法、

5.標准化知識

· 標准化意識、標准化的發展、標准制訂過程

· 國際標准、國家標准、行業標准、企業標准基本知識

· 代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准知識

· 標准化機構

6.信息化基礎知識

· 信息化意識

· 全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略

· 有關的法律、法規

· 遠程教育、電子商務、電子政務等基礎知識

· 企業信息資源管理基礎知識

信息化、標准化知識是新增考點。標准化方面有標准標識,標准修訂等是對基本素質的考查,也要重視。

考試出現頻率較高的內容

7.計算機專業英語

· 掌握計算機技術的基本詞彙

· 能正確閱讀和理解計算機領域的英文資料

專業英語,是對專業知識和英語水平的考查,考前需有意識閱讀點英文專業資料。

考試題型一般分布在:軟體行業標准,計算機安全基礎知識,信息化基礎知識。

考試出現頻率較高的內容:行業標準的類別;計算機安全,CMM分類,計算機軟體著作權問題。

考試科目2:軟體設計

本部分具體內容如下:

l 外部設計

l 內部設計

l 程序設計

l 系統實施

l 軟體工程

本部分所涉及內容為軟體設計的日常工作,這些內容同樣出現在上午考試試題中。

1.外部設計

1.1 理解系統需求說明

1.2 系統開發的准備

· 選擇開發方法、准備開發環境、制訂開發計劃

1.3 設計系統功能

· 選擇系統結構,設計各子系統的功能和介面,設計安全性策略、需求和實現方法,制訂詳細的工作流和數據流

1.4 設計數據模型

· 設計ER模型、數據模型

1.5 編寫外部設計文檔

· 系統配置圖、各子系統關系圖、系統流程圖、系統功能說明書、輸入輸出規格說明、數據規格說明、用戶手冊框架

· 設計系統測試要求

1.6 設計評審

應能由考試說明內容,來閱讀

2.內部設計

2.1 設計軟體結構

· 按構件分解,確定構件功能規格以及構件之間的介面

· 採用中間件和工具

2.2 設計輸入輸出

· 屏幕界面設計、設計輸入輸出檢查方法和檢查信息

2.3 設計物理數據

· 分析數據特性,確定邏輯數據組織方式、存儲介質,設計記錄格式和處理方式

· 將邏輯數據結構換成物理數據結構,計算容量,進行優化

2.4 構件的創建和重用

· 創建、重用構件的概念

· 使用子程序庫或類庫

2.5 編寫內部設計文檔

· 構件劃分圖、構件間的介面、構件處理說明、屏幕設計文檔、報表設計文檔、文件設計文檔、資料庫設計文檔

2.6 設計評審

3.程序設計

3.1 模塊劃分(原則、方法、標准)

3.2 編寫程序設計文檔

· 模塊規格說明書(功能和介面說明、程序處理邏輯的描述、輸入輸出數據格式的描述)

· 測試要求說明書(測試類型和目標、測試用例、測試方法)

3.3 程序設計評審

4.系統實施

4.1 配置計算機系統及其環境

4.2 選擇合適的程序設計語言

4.3 掌握C程序設計語言,以及C++、Java、Visual Basic、Visual C++中任一種程序設計語言,以便能指導程序員進行編程和測試,並進行必要的優化

4.4 系統測試

· 指導程序員進行模塊測試,並進行驗收

· 准備系統集成測試環境和測試工具

· 准備測試數據

· 寫出測試報告

5.軟體工程

· 軟體生存期模型(瀑布模型、螺旋模型、噴泉模型)和軟體成本模型

· 定義軟體需求(系統化的目標、配置、功能、性能和約束)

· 描述軟體需求的方法(功能層次模型、數據流模型、控制流模型、面向數據的模型、面向對象的模型等)

· 定義軟體需求的方法(結構化分析方法、面向對象分析方法)

· 軟體設計(分析與集成、逐步求精、抽象、信息隱蔽)

· 軟體設計方法(結構化設計方法、Jackson方法、Warnier方法、面向對象設計方法)

· 程序設計(結構化程序設計、面向對象程序設計)

· 軟體測試的原則與方法

· 軟體質量(軟體質量特性、軟體質量控制)

· 軟體過程評估基本方法、軟體能力成熟度評估基本方法

· 軟體開發環境和開發工具(分析工具、設計工具、編程工具、測試工具、維護工具、CASE)

· 軟體工程發展趨勢(面向構件,統一建模語言(UML))

· 軟體過程改進模型和方法

本部分綜合分析:

軟體設計師,關鍵是設計軟體的能力。考綱要求:要熟悉軟體工程、軟體過程改進和軟體開發項目管理的基礎知識;熟練掌握軟體設計的方法和技術;掌握C程序設計語言及指定的四種面向對象語言中的一種。這部分專業能力嚴重依賴工作實踐,要求有一定經驗的積累,是具有工程師的實際工作能力和業務水平的體現。如無實踐經驗,要學會借鑒,以取人之長,補已之短。

這部分主要體現在下午考試中,現就如何應對下午考試進行分析:

近幾次考試中下午試題分五個題目,一個資料庫,一個程序填空題、一個面向對象的語言題,另兩個題目分別為數據流圖、UML、或流程圖等。

資料庫題目,要求補全SQL語言,這要求考生熟悉SQL的語言,無論對上午題目還是下午題目都很重要。這是學習和復習的一個重點。

數據流圖,DFD是一種分析系統數據流程的圖形,意在讓用戶理解系統的功能、輸入、輸出和數據存儲等。請認真弄清其應用,在畫出數據流圖的情況下,系統的功能也就確定了,再經過細化,逐步向物理結構邁進。考核時,試題多從父圖和子圖的平衡來分析。這部分內容,一個解題的關鍵是高度重視題目說明,務必正確、深入理解其內容,必要時要讀幾遍,同時對於給出的圖表,也要務必看懂。這樣答題就輕鬆了,答案實際就蘊含在說明中。

流程圖類題目,是大家再熟悉不過的了,它就一個具體問題的解題思路進行描述,是面向過程的。但所求問題是千差萬別的,因此應理解思路,細心作答。

答題形式最簡單也是難度最大的是程序填空。為便於閱卷,這類題目以程序填空形式出現,這不僅要求理解問題本質,同時也要弄清作者解題思路,這一點比自己獨立完成程序設計要難得的多。針對問題,首先設計自己的思路,如何解決問題,先後順序怎樣;然後試讀程序,如何思路大體一致,很好,這題容易解決了。如思路不一致,設法弄清每一段代碼的功能,其邏輯結構怎樣,進而弄清命題人的解題思路,再順勢解決問題。人們常講,答案就在題目中,這是對的。在分析問題過程中,找到所求答案。不過前提條件是考生要熟悉這種語言,又要明白解題思路,這樣才能正確作答。這個題目比較難,要麼不得分,要麼得全分。

近年對於統一建模語言UML考查較多,已引起了考生的注意。它代表了軟體工程的發展趨勢,目前是可視化建模的事實上的工業標准。人們對於圖的理解相對其他形式更容易一些,圖能更清晰地描述和說明問題的本質,因此,UML體現了這一特點。這類題目難度與數據流圖相似,自然解題思想也相同。從形式上看,數據流圖更朴實一些,UML類的題目則透出一種新穎、現代的氣息。

最後的題目面向對象語言是一個選做題,給考生以自由,可以發揮個人的優勢。命題已注意到不同語言的考查難度一致性,要求考生就同一問題回答,實現了形式上的公平,自然是一個進步

G. 結構化程序設計和面向對象程序設計的主要特徵各是什麼

結構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。其概念最早由E.W.Dijikstra在1965年提出的。是軟體發展的一個重要的里程碑,它的主要觀點是採用自頂向下、逐步求精的程序設計方法;使用三種基本控制結構構造程序,任何程序都可由順序、選擇、重復三種基本控制結構構造 。
詳細描述處理過程常用三種工具:圖形、表格和語言。
圖形:程序流程圖、N-S圖、PAD圖
表格:判定表
語言:過程設計語言(PDL)
結構化程序設計的概念是尼克勞斯�6�1沃思Niklaus Wirth在60年代末提出的,其實質是控制編程中的復雜性。結構化程序設計曾被稱為軟體發展中的第三個里程碑。該方法的要點是:
(1) 沒有GOTO語句;//在有資料裡面說可以用,但要謹慎嚴格控制GOTO語句,僅在下列情形才可使用:
·用一個非結構化的程序設計語言去實現一個結構化的構造。
·在某種可以改善而不是損害程序可讀性的情況下。
(2) 一個入口,一個出口;
(3) 自頂向下、逐步求精的分解;
(4) 主程序員組。
其中(1)、(2)是解決程序結構規范化問題;(3)是解決將大劃小,將難化簡的求解方法問題;(4)是解決軟體開發的人員組織結構問題。 所謂面向對象的程序設計,就是把面向對象的思想應用到軟體工程中,並指導開發維護軟體。
對象是由數據和容許的操作組成的封裝體,所謂面向對象,就是基於對象的概念,以對象為中心,類和繼承為構造機制,認識了解刻畫客觀世界以及開發出相應的軟體系統。
面向對象的程序設計(OOP)並不是剛剛提出來的,主要是由於C++和Java這類語言的傳播,OOP最近才顯得越來越重要了。為什麼面向對象的設計如此流行呢?從理論上講,用面向對象的語言可以處理任何其他計算機語言所能完成的事情。然而當建立基於智能體的模型時,OOP對於開始的程序員和後來的程序讀者都表現出了很大的優勢。
面向對象的程序設計特點

1.編程模型
所有計算機均由兩種元素組成:代碼和數據.精確的說,有些程序是圍繞著"什麼正在發生"而編寫,有些則是圍繞"誰正在受影響"而編寫的.
第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特徵,可被理解為作用於數據的代碼.如 C 等過程化語言.
第二種編程方式叫做"面向對象的模型",按這種模型編寫的程序圍繞著程序的數據(對象)和針對該對象而嚴格定義的介面來組織程序,它的特點是數據控制代碼的訪問.通過把控制權轉移到數據上,面向對象的模型在組織方式上有:抽象,封裝,繼承和多態的好處.
2.抽象
面向對象程序設計的基本要素是抽象,程序員通過抽象來管理復雜性.
管理抽象的有效方法是使用層次式的分類特性,這種方法允許用戶根據物理含義分解一個復雜的系統,把它劃分成更容易管理的塊.例如,一個計算機系統是一個獨立的對象.而在計算機系統內部由幾個子系統組成:顯示器,鍵盤,硬碟驅動器,DVD-ROM,軟盤,音響等,這些子系統每個又由專門的部件組成.關鍵是需要使用層次抽象來管理計算機系統(或其他任何復雜系統)的復雜性.
面向對象程序設計的本質:這些抽象的對象可以被看作具體的實體,這些實體對用來告訴我們作什麼的消息進行響應.
/* (我的理解)
*計算機是一個實體,我要輸入字元,顯示器顯示出來,那麼
*計算機(對象).輸入(鍵盤屬性).顯示(顯示方法)
*使用分層來引用,操作.而不用管計算機內部如何處理.
*只要有計算機對象,它就能響應我的操作,而我敲鍵盤,
*計算機對象就把這個消息傳給屏幕,屏幕顯示.
*/
計算機對象包含了它所有的屬性,以及操作,這就是面向對象程序設計的三大原則之一:封裝.
3.封裝
封裝是一種把代碼和代碼所操作的數據捆綁在一起,使這兩者不受外界干擾和誤用的機制.封裝可被理解為一種用做保護的包裝器,以防止代碼和數據被包裝器外部所定義的其他代碼任意訪問.對包裝器內部代碼與數據的訪問通過一個明確定義的介面來控制.封裝代碼的好處是每個人都知道怎樣訪問代碼,進而無需考慮實現細節就能直接使用它,同時不用擔心不可預料的副作用.
在JAVA中,最基本的封裝單元是類,一個類定義著將由一組對象所共享的行為(數據和代碼).一個類的每個對象均包含它所定義的結構與行為,這些對象就好象是一個模子鑄造出來的.所以對象也叫做類的實例.
在定義一個類時,需要指定構成該類的代碼與數據.特別是,類所定義的對象叫做成員變數或實例變數.操作數據的代碼叫做成員方法.方法定義怎樣使用成員變數,這意味著類的行為和介面要由操作實例數據的方法來定義.
由於類的用途是封裝復雜性,所以類的內部有隱藏實現復雜性的機制.所以JAVA中提供了私有和公有的訪問模式,類的公有介面代表外部的用戶應該知道或可以知道的每件東西.私有的方法數據只能通過該類的成員代碼來訪問.這就可以確保不會發生不希望的事情.
4.繼承
繼承是指一個對象從另一個對象中獲得屬性的過程.是面向對象程序設計的三大原則之二,它支持按層次分類的概念.例如,波斯貓是貓的一種,貓又是哺乳動物的一種,哺乳動物又是動物的一種.如果不使用層次的概念,每個對象需要明確定義各自的全部特徵.通過層次分類方式,一個對象只需要在它的類中定義是它成為唯一的 各個屬性,然後從父類中繼承它的通用屬性.因此,正是由於繼承機制,才使得一個對象可以成為一個通用類的一個特定實例.一個深度繼承的子類將繼承它在類層次中的每個祖先的所有屬性.
繼承與封裝可以互相作用.如果一個給定的類封裝了某些屬性,它的任何子類將會含有同樣得屬性,另加各個子類所有得屬性.這是面向對象程序在復雜性上呈線性而非幾何增長的一個重要概念.新的子類繼承其所有祖先的所有屬性.子類和系統中的其他代碼不會產生無法預料的交互作用.
5.多態
多態是指一個方法只能有一個名稱,但可以有許多形態,也就是程序中可以定義多個同名的方法,用"一個介面,多個方法"來描述.可以通過方法的參數和類型引用.
6.封裝,繼承,多態的組合使用
在由封裝,繼承,多態所組成的環境中,程序員可以編寫出比面向過程模型更健壯,更具擴展性的程序.經過仔細設計的類層次結構是重用代碼的基礎.封裝能讓程序員不必修改公有介面的代碼即可實現程序的移植.多態能使程序員開發出簡潔,易懂,易修改的代碼.例如:汽車
從繼承的角度看,駕駛員都依靠繼承性來駕駛不同類型(子類)的汽車,無論這輛車是轎車還是卡車,是賓士牌還是菲亞特牌,駕駛員都能找到方向盤,手剎,換檔器.經過一段時間駕駛後,都能知道手動檔與自動檔之間的差別,因為他們實際上都知道這兩者的共同超類:傳動裝置.
從封裝的角度看,駕駛員總是看到封裝好的特性.剎車隱藏了許多復雜性,其外觀如此簡單,用腳就能操作它.發動機,手剎,輪胎大小的實現對與剎車類的定義沒有影響.
從多態的角度看,剎車系統有正鎖反鎖之分,駕駛員只用腳踩剎車停車,同樣的介面可以用來控制若干種不同的實現(正鎖或反鎖).
這樣各個獨立的構件才被轉換為汽車這個對象的.同樣,通過使用面向對象的設計原則,程序員可以把一個復雜程序的各個構件組合在一起,形成一個一致,健壯,可維護的程序

閱讀全文

與面向程序員的用戶界面設計相關的資料

熱點內容
pdftoemf 瀏覽:884
java介面可以實現介面嗎 瀏覽:12
vb編程10個隨機函數 瀏覽:21
程序員個人簡介100 瀏覽:772
土木工程師演算法工程師 瀏覽:92
javaexcel導入oracle 瀏覽:880
如何設置異地伺服器 瀏覽:882
為什麼安卓手機藍牙耳機不會彈窗 瀏覽:546
linuxf77編譯器安裝教程 瀏覽:949
android本地錄音許可權 瀏覽:446
加密u盤內容怎麼拷貝 瀏覽:283
安卓手機為什麼看不到iso文件 瀏覽:582
用圖片做文件夾圖標 瀏覽:693
java正則表達式語法 瀏覽:865
美圖秀在線壓縮圖片 瀏覽:184
蘋果自帶控制app是什麼 瀏覽:907
孩子學編程怎麼樣 瀏覽:589
網路編程經典書籍 瀏覽:612
曲靖創建網站java程序員 瀏覽:690
256位加密中是什麼意思 瀏覽:97