版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、軟件系統(tǒng)設(shè)計(jì) 幫助你從程序員上升為系統(tǒng)設(shè)計(jì)師 搞清楚“設(shè)計(jì)什么”以及“如何設(shè)計(jì)” 上 海 漫 索 計(jì) 算 機(jī) 科 技 有 限 公 司目錄1. 軟件系統(tǒng)設(shè)計(jì)基本概念 2. 體系結(jié)構(gòu)設(shè)計(jì)3. 用戶界面設(shè)計(jì)4. 數(shù)據(jù)庫設(shè)計(jì)5. 模塊設(shè)計(jì)6. 數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)7. 小結(jié)參考書:軟件工程與項(xiàng)目管理解析,林銳 著,電子工業(yè)出版社,20031. 軟件系統(tǒng)設(shè)計(jì)基本概念 1.1 基本概念 設(shè)計(jì)師與程序員的地位。系統(tǒng)設(shè)計(jì)的技術(shù)難度要比編程、測試的高。所以程序員、測試員稱為“員”,而設(shè)計(jì)師尊稱為“師”。 系統(tǒng)設(shè)計(jì)的好壞在根本上決定了軟件系統(tǒng)的優(yōu)劣。我們可以斷言“差的系統(tǒng)設(shè)計(jì)必定產(chǎn)生差的軟件系統(tǒng)”,但是不能保證“好
2、的系統(tǒng)設(shè)計(jì)必定產(chǎn)生好的軟件系統(tǒng)”。因?yàn)樵谠O(shè)計(jì)之前有需求開發(fā)工作,在設(shè)計(jì)之后還有編程、測試和維護(hù)工作,無論哪個(gè)環(huán)節(jié)出了差錯(cuò),都會把好事搞砸了。 據(jù)說上帝把所有的女士都設(shè)計(jì)成天使,可是天使們在下凡的時(shí)候,有些人雙腳先著地,有些人臉先著地。上帝的這一疏忽讓很多女士傷透了心。所以我們在開發(fā)軟件時(shí),一定要吸取這個(gè)教訓(xùn)。 系統(tǒng)設(shè)計(jì)之源是軟件需求,包括“功能性需求”與“非功能性需求”。系統(tǒng)設(shè)計(jì)的目標(biāo)就是使所設(shè)計(jì)的系統(tǒng)能夠被開發(fā)方順利地實(shí)現(xiàn),并且恰如其分地滿足用戶的需求,使開發(fā)方和用戶的利益極大化。開發(fā)人員不萬不能偏離需求,為了追求技術(shù)的先進(jìn)性而開展系統(tǒng)設(shè)計(jì)工作。 依據(jù)“分而治之”的思想,我們把系統(tǒng)設(shè)計(jì)過程劃
3、分為兩個(gè)階段:高層設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段。高層設(shè)計(jì)階段的重點(diǎn)是體系結(jié)構(gòu)設(shè)計(jì)。詳細(xì)設(shè)計(jì)階段的重點(diǎn)是用戶界面設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、模塊設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)等。 著名3D游戲軟件Quake設(shè)計(jì)師Michael Abrash 的總結(jié):“所有真正杰出的設(shè)計(jì)一旦被設(shè)計(jì)好,看起來都是那么的簡單和顯而易見。但是在獲得杰出設(shè)計(jì)的過程中,需要付出令人難以置信的努力?!?1. 軟件系統(tǒng)設(shè)計(jì)基本概念系統(tǒng)設(shè)計(jì)過程示意圖 1. 軟件系統(tǒng)設(shè)計(jì)基本概念1.2 軟件系統(tǒng)與人體的比喻 體系結(jié)構(gòu)如同人的骨架。如果某個(gè)家伙的骨架是猴子,那么無論怎樣喂養(yǎng)和美容,這家伙始終都是猴子,不會成為人。人的身材大小取決于骨架大小,天生小個(gè)子的人
4、基本上不可能成為威猛的大漢,后天再努力(例如鍛煉和吃喝)也白搭。由此可見,體系結(jié)構(gòu)乃是系統(tǒng)設(shè)計(jì)的重中之重。 用戶界面如同人的外表,最容易讓人一見鐘情或一見惡心。象人類追求心靈美和外表美那樣,軟件系統(tǒng)也追求(內(nèi)在的)功能強(qiáng)大和(外表的)界面友好。我們在設(shè)計(jì)軟件時(shí)不要沉迷于技術(shù),而要多多思考什么樣的界面才能讓用戶更加喜歡。數(shù)據(jù)庫是存儲和處理數(shù)據(jù)用的。人體的數(shù)據(jù)庫是大腦,知識相當(dāng)于數(shù)據(jù),全存在大腦里。如果腦子里存儲的知識很多,那么這個(gè)人就顯得博學(xué)。如果腦子處理知識的速度很高,那么這個(gè)人就顯得聰明。數(shù)據(jù)庫設(shè)計(jì)的主要挑戰(zhàn)是“高速處理大容量的數(shù)據(jù)”。 模塊如同人的器官。每個(gè)器官都具有特定的功能,器官們依附
5、在骨架上。模塊是軟件系統(tǒng)的部件,它們安插在體系結(jié)構(gòu)上(否則運(yùn)行起來掉光光了)。在設(shè)計(jì)模塊時(shí)要重視功能獨(dú)立性,還要追求“高內(nèi)聚、低耦合” 。 數(shù)據(jù)結(jié)構(gòu)與算法如同人的神經(jīng)和肌肉,它分布在全身,讓器官具有生命并能發(fā)揮功能。人之所以能夠全身運(yùn)動,那是無數(shù)的神經(jīng)和肌肉在起作用。如果局部的神經(jīng)和肌肉失效了,那么會導(dǎo)致對應(yīng)的器官殘廢。如果全局的神經(jīng)和肌肉失效了,那么人就癱瘓了。同理,數(shù)據(jù)結(jié)構(gòu)與算法也有全局和局部之分,都要慎重設(shè)計(jì)。 1. 軟件系統(tǒng)設(shè)計(jì)基本概念1.3 漫談設(shè)計(jì)模式 20世紀(jì)90年代,面向?qū)ο螅∣bject-Oriented)方法與技術(shù)在國內(nèi)軟件業(yè)界十分火爆,人們熱衷于談?wù)摗皩ο蟆辈⒁詾闃s。十
6、多年來,人們發(fā)表、出版了無數(shù)的文章和書籍?,F(xiàn)在,該寫的似乎都寫完了,沒有新花樣玩了,真是一片無聊。設(shè)計(jì)模式(Design Pattern)及時(shí)問世,面向?qū)ο髳酆谜邆兘K于有了新的追求。 1995年,Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides(戲稱“四人幫”)出版了Design Patterns: Elements of Reusable Object-Oriented Software,該書的中譯本已于2000年出版 .“四人幫”這本書的主要貢獻(xiàn)是:確立了設(shè)計(jì)模式這個(gè)術(shù)語,創(chuàng)導(dǎo)了一種新的面向?qū)ο笤O(shè)計(jì)思潮。該書出版后,全世界參與
7、設(shè)計(jì)模式研究的人數(shù)呈爆炸性地增長。該書的負(fù)面效應(yīng)是:這本書深?yuàn)W無比,讀者被分成兩類,即“看得懂設(shè)計(jì)模式的”和“看不懂設(shè)計(jì)模式的”,后者居多。很多人剛?cè)腴T時(shí)就被嚇住了,知難而退。 何為“模式”和“設(shè)計(jì)模式” ?模式描述了在我們周圍不斷重復(fù)發(fā)生的問題,以及該問題的解決方案的核心,這樣你就能一次又一次地使用該解決方案而不必重復(fù)勞動。模式就是一種公式化的表現(xiàn),究竟公式化是不是好事?(蔡學(xué)庸精辟的解釋) 盡管軟件技術(shù)發(fā)展非常快,但是仍然有非常多的設(shè)計(jì)模式可以讓我們套用,包括體系結(jié)構(gòu)模式、數(shù)據(jù)結(jié)構(gòu)模式、接口模式等。 小結(jié):設(shè)計(jì)模式的應(yīng)用價(jià)值在于它能幫助人們簡便地復(fù)用以前成功的設(shè)計(jì)方案。設(shè)計(jì)模式不是憑空產(chǎn)生
8、的,只有對應(yīng)用域問題及其解決方案進(jìn)行抽象和分析,發(fā)現(xiàn)本質(zhì),并按照一定的格式記錄下來,才能成為可以被人們復(fù)用的設(shè)計(jì)模式。 2. 體系結(jié)構(gòu)設(shè)計(jì)2.1 體系結(jié)構(gòu)設(shè)計(jì)原則中國科學(xué)院的楊叔子院子如是言:文學(xué)中有科學(xué),音樂中有數(shù)學(xué),漫畫中有現(xiàn)代數(shù)學(xué)的拓?fù)鋵W(xué)。漫畫家可以“幾筆”就把一個(gè)人畫出來,不管怎么美化或丑化,就是活像。為什么?因?yàn)槟恰皫坠P”不是別的,而是拓?fù)鋵W(xué)中的特征不變量,這是事物最本質(zhì)的東西。體系結(jié)構(gòu)是指軟件系統(tǒng)的基本和主體的形態(tài),也就是軟件系統(tǒng)中“最本質(zhì)”的東西。一個(gè)軟件系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)得好不好,可以用“合適性、結(jié)構(gòu)穩(wěn)定性、可擴(kuò)展性、可復(fù)用性”這些特征量來評估。合適性:即體系結(jié)構(gòu)是否適合于軟件
9、的“功能性需求”和“非功能性需求”。設(shè)計(jì)師可以充分發(fā)揮主觀能動性,根據(jù)需求的特征,通過推理和歸納的方法設(shè)計(jì)出合適的體系結(jié)構(gòu)。經(jīng)驗(yàn)不豐富的設(shè)計(jì)師往往把注意力集中在“功能性需求”而疏忽了“非功能性需求”,殊不知后者恰恰是最能體現(xiàn)設(shè)計(jì)水平的地方。高水平的設(shè)計(jì)師高就高在“設(shè)計(jì)出恰好滿足客戶需求的軟件,并且使開發(fā)方和客戶方獲取最大的利益,而不是不惜代價(jià)設(shè)計(jì)出最先進(jìn)的軟件。(以設(shè)計(jì)住宅為例)對于軟件系統(tǒng)而言,能夠滿足需求的設(shè)計(jì)方案可能有很多種,究竟該選哪一種?此時(shí)商業(yè)目標(biāo)是決策依據(jù),即選擇能夠?yàn)殚_發(fā)方和客戶方帶來最大利益的那個(gè)設(shè)計(jì)方案。大部分軟件開發(fā)人員天生有使用新技術(shù)的傾向,而這種傾向?qū)﹂_發(fā)商業(yè)產(chǎn)品而言
10、可能是不利的,切記切記。 2. 體系結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)穩(wěn)定性:當(dāng)前中國有幾句流行的至理名言:“穩(wěn)定壓倒一切”、“發(fā)展是硬道理”。發(fā)展的前提條件是穩(wěn)定,社會如此,開發(fā)軟件產(chǎn)品也是如此。 體系結(jié)構(gòu)一旦設(shè)計(jì)完成,應(yīng)當(dāng)在一定的時(shí)間內(nèi)保持穩(wěn)定不變,只有這樣才能使后續(xù)工作順利開展。如果體系結(jié)構(gòu)經(jīng)常變動,那么建筑在體系結(jié)構(gòu)之上的用戶界面、數(shù)據(jù)庫、模塊、數(shù)據(jù)結(jié)構(gòu)等等也跟著經(jīng)常變動,用“樹倒猢猻散”來比喻很恰當(dāng),這將導(dǎo)致項(xiàng)目發(fā)生混亂。高水平的設(shè)計(jì)師應(yīng)當(dāng)能夠分析需求文檔,判斷出哪些需求是穩(wěn)定不變的,哪些需求是可能變動的。于是根據(jù)那些穩(wěn)定不變的需求設(shè)計(jì)體系結(jié)構(gòu),而根據(jù)那些可變的需求設(shè)計(jì)軟件的“可擴(kuò)展性”。 可擴(kuò)展性:可擴(kuò)
11、展性是指軟件擴(kuò)展新功能的容易程度。可擴(kuò)展性越好,表示軟件適應(yīng)“變化”的能力越強(qiáng)??蓴U(kuò)展性越來越重要,這是由現(xiàn)代軟件的商業(yè)模式?jīng)Q定的: 社會的商業(yè)越發(fā)達(dá),需求變化就越快。 現(xiàn)代軟件產(chǎn)品通常采用“增量開發(fā)模式”,開發(fā)商不斷地推出軟件產(chǎn)品的新版本,從而不斷地獲取增值利潤。 穩(wěn)定性和可擴(kuò)展性之間存在辨證的關(guān)系:如果系統(tǒng)不可擴(kuò)展的話,那么就沒有發(fā)展前途,所以不能只關(guān)心穩(wěn)定性而忽視可擴(kuò)展性;而軟件系統(tǒng)“可擴(kuò)展”的前提條件是“保持結(jié)構(gòu)穩(wěn)定”,否則軟件難以按計(jì)劃開發(fā)出來,穩(wěn)定性是使系統(tǒng)能夠持續(xù)發(fā)展的基礎(chǔ)。所以穩(wěn)定性和可擴(kuò)展性都是體系結(jié)構(gòu)設(shè)計(jì)的要素。 如果每次變化都導(dǎo)致體系結(jié)構(gòu)發(fā)生大的變動,那簡直就是“傷筋動骨
12、”,這樣的體系結(jié)構(gòu)無疑是敗筆之作。(例如房屋裝修) 2. 體系結(jié)構(gòu)設(shè)計(jì)可復(fù)用性 :復(fù)用就是指“重復(fù)利用已經(jīng)存在的東西”。被復(fù)用的對象可以是有形的物體,也可以是無形的知識財(cái)富。復(fù)用不是人類懶惰的表現(xiàn)而是智慧的表現(xiàn)。因?yàn)槿祟惪偸窃诶^承了前人的成果,不斷加以利用、改進(jìn)或創(chuàng)新后才會進(jìn)步。 復(fù)用的有利于提高產(chǎn)品的質(zhì)量、提高生產(chǎn)率和降低成本。由經(jīng)驗(yàn)可知,通常在一個(gè)新系統(tǒng)中,大部分的內(nèi)容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般地可以相信成熟的東西總是比較可靠的(即具有高質(zhì)量),而大量成熟的工作可以通過復(fù)用來快速實(shí)現(xiàn)(即具有高生產(chǎn)率)。勤勞并且聰明的人們應(yīng)該把大部分的時(shí)間用在小比例的創(chuàng)新工作上,而把小部分的時(shí)間
13、用在大比例的成熟工作中,這樣才能把工作做得又快又好。復(fù)用的意義很容易理解,人們也樂意復(fù)用以前的成果,但是前提條件是該成果具有比較好的可復(fù)用性??蓮?fù)用性是指成果被復(fù)用的容易程度。 可復(fù)用性是設(shè)計(jì)出來的,而不是偶然碰到的。要使體系結(jié)構(gòu)具有良好的可復(fù)用性,設(shè)計(jì)師應(yīng)當(dāng)分析應(yīng)用域的共性問題,然后設(shè)計(jì)出一種通用的體系結(jié)構(gòu)模式,這樣的體系結(jié)構(gòu)才可以被復(fù)用。 2. 體系結(jié)構(gòu)設(shè)計(jì)2.2 體系結(jié)構(gòu)設(shè)計(jì)流程體系結(jié)構(gòu)設(shè)計(jì)流程:6個(gè)步驟體系結(jié)構(gòu)設(shè)計(jì)報(bào)告模板見word文檔 2. 體系結(jié)構(gòu)設(shè)計(jì)2.3 層次結(jié)構(gòu)介紹層次結(jié)構(gòu)是最常見的體系結(jié)構(gòu)模式,它體現(xiàn)了“分而治之”的思想:當(dāng)我們沒法一口氣解決復(fù)雜的原始問題時(shí),就把該問題切割
14、成許多個(gè)小的相對簡單的問題,然后逐個(gè)解決。水平方向切割產(chǎn)生的層稱為Layer,而豎直方向切割產(chǎn)生的層稱為Tier。 層次結(jié)構(gòu)在人類社會里隨處可見。有個(gè)村長曾得意地向老婆吹牛:“全中國只有四個(gè)人比我的官兒大,鄉(xiāng)長、縣長、省長和國務(wù)院總理”。政府的行政結(jié)構(gòu)應(yīng)當(dāng)劃分為多個(gè)Layer和Tier。如果Layer和Tier的數(shù)目太少了,那么各級政府的領(lǐng)導(dǎo)人會非常勞累。反之如果Layer和Tier的數(shù)目太多了,那么導(dǎo)致政府機(jī)構(gòu)太臃腫,辦公效率極低。 古代中國文人的學(xué)歷大體分為兩層:秀才和舉人。這種劃分太粗了(即Layer數(shù)目太少),對發(fā)展教育是很不利的。很多老百姓讀不起幾年書,拿不到秀才畢業(yè)證書的人就被歸類
15、為文盲,不幸成為社會下層人物。雖然社會上的秀才人數(shù)也不少,但是從秀才到舉人的跨度太大、門檻太高,很多秀才考舉人考了一輩子也考不上。典型的例子是儒林外史里的范進(jìn),范進(jìn)在青年時(shí)期就成為秀才,可惜他考舉人考了幾十年!等他碰巧考上舉人的時(shí)候,已經(jīng)是個(gè)老頭了,只給朝廷增加負(fù)擔(dān)而沒有貢獻(xiàn)。后人吸取了經(jīng)驗(yàn)教訓(xùn),于是逐步建立了現(xiàn)代的學(xué)歷層次結(jié)構(gòu),將學(xué)歷劃分為5個(gè)層次:小學(xué)、中學(xué)、學(xué)士、碩士、博士。這樣人們讀書的選擇面廣了,工作面也廣了?!皩哟谓Y(jié)構(gòu)”是應(yīng)用最為廣泛的體系結(jié)構(gòu)模式。其最大的優(yōu)點(diǎn)是具有良好的可擴(kuò)展性,人們在擴(kuò)充或修改功能時(shí),基本不會破壞原有結(jié)構(gòu)的穩(wěn)定性。但是萬事有利必有弊,層次結(jié)構(gòu)的系統(tǒng)的主要缺點(diǎn)是
16、:管理多個(gè)Layer和Tier比較麻煩,運(yùn)行效率可能比較低。所以,一個(gè)具備良好層次結(jié)構(gòu)的系統(tǒng),其Layer和Tier的數(shù)目要恰如其分。 3. 用戶界面設(shè)計(jì)3.1 什么是好的用戶界面 通俗地講,用戶界面“好不好”主要看它是否“容易使用”和“美觀”。 易用性是指用戶使用軟件的容易程度?,F(xiàn)代人的生活節(jié)奏快,干啥事都想圖個(gè)方便。誰都不樂意掏錢買很難用的東西,所以把易用性作為用戶界面的重要屬性對待無可非議。除了要求軟件易用之外,人們還希望用戶界面美觀。電影食神里的一段精彩故事情節(jié)可以幫助我們理解界面美觀的重要性。美觀的界面能消除用戶由感覺引起的乏味、緊張和疲勞(情緒低落),大大提高用戶的工作效率,從而進(jìn)
17、一步為發(fā)揮用戶技能和為用戶完成任務(wù)作出貢獻(xiàn)。人們對美的向往和追求是與生俱有的。顯然沒有開發(fā)人員愿意丑化自己的軟件,也沒有用戶嗜好丑陋的界面。軟件開發(fā)者要設(shè)計(jì)美,用戶要享受美,所以界面的美是開發(fā)者與用戶的共同需求。全世界無數(shù)人使用Microsoft公司的操作系統(tǒng)DOS, Windows 3.1, Windows 9x, Windows 2000和 Windows XP,這些操作系統(tǒng)的確是越來越好用了,并且越來越漂亮了。界面的“易用性”和“美”充分體現(xiàn)了人機(jī)交互作用中人的特性與意圖,越來越多的用戶將通過具有吸引力而令人愉快的人機(jī)界面與計(jì)算機(jī)打交道。 3. 用戶界面設(shè)計(jì)3.2 開發(fā)人員的能力缺陷盡管
18、國內(nèi)有很多技術(shù)出色、聰明過人的軟件開發(fā)人員,但是他們未必開發(fā)得出“易用”的和“美觀”的軟件。主要原因有: 國內(nèi)絕大多數(shù)大學(xué)的計(jì)算機(jī)學(xué)科教育存在缺陷:沒有開設(shè)人機(jī)工程學(xué)、美學(xué)、心理學(xué)這些必修課。由于學(xué)生們接受的教育幾乎全是科學(xué)與技術(shù),他們根本不知道怎樣才能設(shè)計(jì)出易用、美觀的用戶界面,很多人甚至想都沒有想過。當(dāng)他們畢業(yè)后真正參與軟件產(chǎn)品開發(fā)時(shí),只好憑著個(gè)人的經(jīng)驗(yàn)與感覺設(shè)計(jì)軟件的用戶界面,這樣產(chǎn)生的界面往往得不到大眾用戶的認(rèn)可。 開發(fā)人員在設(shè)計(jì)用戶界面方面不僅存在先天的教育缺陷,更加糟糕的是還常常犯“錯(cuò)位”的毛病,即他以為只要自己感覺用戶界面漂亮、使用起來方便,那么用戶也一定會滿意。俗話說“王婆賣瓜
19、,自賣自夸”。當(dāng)開發(fā)人員向用戶展示軟件時(shí),常會得意地講:“這個(gè)軟件非常好用,我操作給你看,是很好用吧!蠻漂亮的吧!” 軟件是否易用、是否美觀要讓用戶來評價(jià)。如果用戶對界面很不滿意,開發(fā)人員不要有逆反心里“到哪里找來的笨蛋!”。其實(shí)不是用戶笨,是自己開發(fā)的軟件太笨了。當(dāng)用戶真的感到軟件很好用時(shí),一股溫暖的感覺油然而生,于是就用“界面友好”來表揚(yáng)這個(gè)軟件。 3. 用戶界面設(shè)計(jì)3.3 用戶界面設(shè)計(jì)原則(10個(gè))用于提高易用性的界面設(shè)計(jì)原則有8個(gè):用戶界面適合于軟件的功能容易理解風(fēng)格一致及時(shí)反饋信息出錯(cuò)處理適應(yīng)各種用戶國際化個(gè)性化 用于提高美觀程度的設(shè)計(jì)原則有:合理的布局和諧的色彩3. 用戶界面設(shè)計(jì)設(shè)
20、計(jì)原則1:用戶界面適合于軟件的功能用戶界面的合適性是指界面與軟件功能相融洽的程度。軟件的功能需要通過用戶界面來展現(xiàn)。毫無疑問,用戶界面一定要適合于軟件的功能,這是最基本的要求。否則用戶無法通過這個(gè)界面來使用軟件,如果連用都不能用,“易用性”根本就無從談起。 例如,對于一個(gè)三維建模軟件而言,如果用戶不能使用鼠標(biāo)對模型進(jìn)行旋轉(zhuǎn)、移動、縮放等操作,那么這個(gè)軟件的用戶界面就不適合于軟件的功能。如果不改進(jìn)用戶界面的話,即使軟件的內(nèi)核功能很強(qiáng)(如算法很先進(jìn)),這個(gè)軟件也很難賣得出去。 合適性差的界面無疑會混淆軟件意圖,致使用戶產(chǎn)生誤解。即使它不損害軟件功能與性能,也會使用戶產(chǎn)生不該有的情緒波動。“用戶界面
21、適合于軟件的功能”是基本的設(shè)計(jì)原則,它提醒設(shè)計(jì)者不要片面追求界面外觀漂亮而導(dǎo)致華而不實(shí)。界面的合適性既提倡外美內(nèi)秀,又強(qiáng)調(diào)恰如其分。 設(shè)計(jì)原則2:容易理解。如果用戶很難理解界面的意圖,那么他使用起來肯定很費(fèi)勁。所以“容易理解”是“容易使用”的前提條件。提高用戶界面可理解性的一些規(guī)則如下:界面中的所有元素(如菜單、工具條等)沒有錯(cuò)誤,也不會讓人誤解。所有的界面元素應(yīng)當(dāng)提供充分而必要的提示,例如當(dāng)鼠標(biāo)移動到工具條上的某個(gè)圖標(biāo)按鈕時(shí),應(yīng)當(dāng)在該圖標(biāo)旁邊出現(xiàn)功能提示。界面結(jié)構(gòu)能夠清晰地反映工作流程,以便用戶按部就班地操作。對于復(fù)雜的用戶界面而言,最好提供界面“向?qū)А保皶r(shí)讓用戶知道自己在界面結(jié)構(gòu)中所處的
22、位置。例如對于基于Web的應(yīng)用軟件,應(yīng)該在界面上顯示“當(dāng)前位置”,否則用戶很容易在眾多的頁面中迷失方向。 3. 用戶界面設(shè)計(jì)設(shè)計(jì)原則3:風(fēng)格一致 軟件的用戶界面中,同類的界面元素應(yīng)當(dāng)有相同的視感和相同的操作方式。例如命令按鈕是最常見的界面元素,所有命令按鈕的形狀、色彩以及對鼠標(biāo)的響應(yīng)方式都是一致的同一類型軟件的用戶界面應(yīng)當(dāng)有一定程度的相似性。例如Microsoft公司的Office家族里有Word、Excel、PowerPoint、Outlook等軟件,這些軟件提供的“復(fù)制、剪切、粘貼”功能的操作方式都是相同的。 對于用戶界面而言,風(fēng)格一致的最大好處就是能夠減少用戶的記憶量、減少出錯(cuò)幾率,并且
23、迅速積累操作經(jīng)驗(yàn)。所以熟悉Word軟件的人基本上不用翻閱手冊就能使用PowerPoint軟件,可謂“無師自通”。 通用軟件產(chǎn)品的界面設(shè)計(jì)很注重一致性。設(shè)計(jì)者必須密切注意在相同應(yīng)用領(lǐng)域中最流行的軟件的界面,必須尊重用戶使用這些軟件的習(xí)慣。例如DOS和Windows下的軟件習(xí)慣于設(shè)置F1鍵為幫助熱鍵,如果某個(gè)設(shè)計(jì)者別出心裁地讓F1鍵成為軟件終止的熱鍵,那么在用戶渴望得到幫助而伸手擊F1鍵的一剎那,他的工作就此完蛋。相信這個(gè)用戶會被這另類的F1氣瘋了。 目前流行的軟件開發(fā)工具如Visual C+、Visual Basic、Delphi、Java Builder、Power Builder等,都能夠快
24、速地開發(fā)出非常相似的圖形用戶界面。在Internet/Intranet領(lǐng)域,瀏覽器幾乎成了唯一的客戶端軟件,因?yàn)镮nternet用戶希望用完全一致的瀏覽方式來完成千變?nèi)f化的任務(wù)。 3. 用戶界面設(shè)計(jì)設(shè)計(jì)原則4:及時(shí)反饋信息 用戶進(jìn)行某項(xiàng)操作后,如果過了一會兒(幾秒鐘)用戶界面一點(diǎn)反應(yīng)都沒有,這將使用戶感到迷茫和不安,因?yàn)樗恢朗亲约翰僮麇e(cuò)了還是軟件死機(jī)了。所以及時(shí)反饋信息很重要,至少要讓用戶心里有數(shù),知道該任務(wù)處理得怎么樣了,有什么樣的結(jié)果。 例如下載一個(gè)文件,界面上應(yīng)當(dāng)顯示“百分比”或相關(guān)數(shù)字來表示下載的進(jìn)度,否則人們不知道要等待多少時(shí)間。如果某些事務(wù)處理不能提供進(jìn)度等數(shù)據(jù),那么至少要給出
25、提示信息如“正在處理,請等待”,最好是提供合適的動畫讓用戶明白軟件正在干活、沒有死機(jī)。設(shè)計(jì)原則5:出錯(cuò)處理。用戶在使用軟件的過程中,不可避免地會出現(xiàn)一些錯(cuò)誤的操作。在設(shè)計(jì)用戶界面時(shí)必須考慮出錯(cuò)處理,目的是讓用戶不必為避免犯錯(cuò)誤而提心吊膽、小心翼翼地操作。常見的錯(cuò)誤處理方式有: 提供對輸入數(shù)據(jù)進(jìn)行校驗(yàn)的功能。當(dāng)用戶輸入錯(cuò)誤的數(shù)據(jù)時(shí),及時(shí)提醒用戶改正數(shù)據(jù)。 對于在某些情況下不應(yīng)該使用的菜單項(xiàng)和命令按鈕,將其“失效”(屏蔽)可以有效防止該項(xiàng)功能被錯(cuò)誤地使用。例如:對于某些管理軟件,不同的用戶有不同的操作權(quán)限。如果低權(quán)限的用戶登錄到系統(tǒng),那些只有高級權(quán)限用戶才能使用的功能應(yīng)當(dāng)被屏蔽(如變成“灰色”不可
26、操作)。 提供Undo功能,用以撤銷不期望的操作。 執(zhí)行破壞性的操作之前,應(yīng)當(dāng)獲得用戶的確認(rèn)。例如用戶刪除一個(gè)文件時(shí),應(yīng)當(dāng)彈出對話框:“真的要?jiǎng)h除該文件嗎”,當(dāng)用戶確認(rèn)后才真正刪除文件。 3. 用戶界面設(shè)計(jì)設(shè)計(jì)原則6:適應(yīng)各種用戶 一個(gè)軟件產(chǎn)品可能有許多類型的用戶,例如有些用戶對計(jì)算機(jī)比較外行,有一些用戶可能是計(jì)算機(jī)的行家。在設(shè)計(jì)用戶界面必時(shí)應(yīng)當(dāng)盡可能多地了解用戶的需求和技能水平,努力使用戶在操作軟件的時(shí)候感覺不到差異和麻煩。為了達(dá)到這個(gè)目標(biāo),一般需要提供多種操作途徑以適應(yīng)各種水平的用戶。 例如使用Windows下的文件管理器,對于一個(gè)初學(xué)者來說,他愿意使用鼠標(biāo)和菜單一步一步地操作;而對于技術(shù)
27、專家而言,他也許更愿意使用熱鍵來獲取更高的效率。 更了不起的是,一些優(yōu)秀的軟件為患有疾病的人們提供了很好的用戶界面。例如全世界的計(jì)算機(jī)用戶中可能有成千上萬的人患有色盲或色弱,他們都是正常人,但是當(dāng)他們面對花花綠綠的軟件時(shí)會一片茫然。因此通用的軟件如瀏覽器、字處理軟件等都要經(jīng)過色盲人群的測試。設(shè)計(jì)者越為用戶著想,用戶就越喜歡這樣的軟件。設(shè)計(jì)原則7:國際化 中國已經(jīng)進(jìn)入了WTO,軟件的國際化是大勢所趨。為了能夠更好地適應(yīng)國內(nèi)和國際市場,在設(shè)計(jì)用戶界面的時(shí)候應(yīng)當(dāng)充分考慮語言和文化的差異。盡可能使用標(biāo)準(zhǔn)的圖解方式和國際通行的語言,要求簡單易懂,易于翻譯,方便于不同母語的用戶。特別要留意下列易變的元素:
28、字體、提示信息、在線幫助;貨幣、度量單位;數(shù)字、日期格式;人的名字、電話號碼、通信地址;圖標(biāo)、標(biāo)簽;聲音;閱讀順序或習(xí)慣; 3. 用戶界面設(shè)計(jì)設(shè)計(jì)原則8:個(gè)性化 用戶界面的“個(gè)性化”與“一致性”之間存在微妙的矛盾關(guān)系。對于一些非常注重安全性的商業(yè)軟件(如銀行軟件)而言,用戶界面的“一致性”要比“個(gè)性化”重要得多,因?yàn)橐恢碌慕缑婵梢詼p少用戶出錯(cuò)的幾率。例如,國內(nèi)所有銀行的自動取款機(jī)的用戶界面都是非常相似的,誰也不會想著設(shè)計(jì)一些新花樣。 而對于普通的應(yīng)用軟件(尤其是娛樂領(lǐng)域的軟件)而言,有個(gè)性化的界面自然比泯然于眾的界面更具有吸引力。 設(shè)計(jì)人員應(yīng)當(dāng)根據(jù)軟件的需求以及廣大用戶的喜好,在使用戶界面具備
29、必要的“一致性”的前提下,突出該軟件的“個(gè)性”。不僅讓用戶使用起來方便,而且對軟件留下深刻的印象。 設(shè)計(jì)原則9:合理的布局 首先,界面的布局應(yīng)當(dāng)符合邏輯,最好能夠與工作流程吻合。界面設(shè)計(jì)人員只有仔細(xì)地分析軟件的需求,才能提取對界面布局有價(jià)值的信息。其次,界面的布局應(yīng)當(dāng)整潔(整齊清爽)。界面元素應(yīng)當(dāng)在水平或者垂直方向?qū)R,行、列的間距保持一致。窗體的尺寸要合適,各種控件不能過分擁擠也不能過分寬松。要善于利用窗體和控件的空白,以及分割用的線條。 3. 用戶界面設(shè)計(jì)設(shè)計(jì)原則10:和諧的色彩 用戶界面是否美觀,主要取決于該界面的布局和色彩搭配。對于界面設(shè)計(jì)人員而言,實(shí)現(xiàn)“合理的布局”相對比較容易一些,
30、因?yàn)榻^大多數(shù)的界面元素的形狀已經(jīng)標(biāo)準(zhǔn)化,而且界面元素的組合方式也有約定俗成的規(guī)矩可循。然而設(shè)計(jì)和諧的色彩太困難了,因?yàn)樯实慕M合千變?nèi)f化,并且人們對顏色的喜好也極不相同。 對于廣大軟件開發(fā)人員而言,雖然我們沒有必要讓普通軟件的界面漂亮到Windows XP這種程度,但是掌握一些界面色彩的設(shè)計(jì)原則無疑是非常有益的。 (1)如果不是為了顯示真實(shí)感的圖形和圖像,那么應(yīng)當(dāng)限制一幀屏幕的色彩數(shù)目,因?yàn)槿藗冊谟^察屏幕的時(shí)候很難同時(shí)記住多種色彩。 (2)應(yīng)當(dāng)根據(jù)對象的重要性來選擇顏色,重要的對象應(yīng)當(dāng)用醒目的色彩表示。 (3)使用顏色的時(shí)候應(yīng)當(dāng)保持一致性,例如錯(cuò)誤提示信息用紅色表示,正常信息用綠色表示,那么切
31、勿篡用紅色和綠色。(4)在表達(dá)信息時(shí),不要過分依賴顏色,因?yàn)橛行┯脩羰巧せ蛏酢?3. 用戶界面設(shè)計(jì)3.4 用戶界面設(shè)計(jì)流程文檔模板略示例及細(xì)節(jié)設(shè)計(jì)規(guī)則見軟件工程與項(xiàng)目管理解析4. 數(shù)據(jù)庫設(shè)計(jì)4.1 概念首先要搞清楚容易混淆的兩個(gè)概念:“數(shù)據(jù)庫系統(tǒng)”和“應(yīng)用軟件的數(shù)據(jù)庫”。數(shù)據(jù)庫系統(tǒng)是指數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫服務(wù)器,目前著名的大型數(shù)據(jù)庫系統(tǒng)有Oracle、DB2、Informix、Sybase,中型數(shù)據(jù)庫系統(tǒng)如Microsoft SQL Server。而應(yīng)用軟件的數(shù)據(jù)庫則是指開發(fā)者在數(shù)據(jù)庫系統(tǒng)中創(chuàng)建的庫,用于存儲應(yīng)用軟件的數(shù)據(jù)。一般地,人們可以從上下文判斷“數(shù)據(jù)庫”究竟是指哪一個(gè)? 簡而言之
32、,數(shù)據(jù)庫是存儲和處理數(shù)據(jù)用的。數(shù)據(jù)庫設(shè)計(jì)的主要工作是:(1)設(shè)計(jì)數(shù)據(jù)庫的表(數(shù)據(jù)就存在表里面),表的結(jié)構(gòu)就是數(shù)據(jù)的存儲結(jié)構(gòu)。(2)對這些表中的數(shù)據(jù)進(jìn)行操作,常見操作如查詢、插入、修改、刪除等。數(shù)據(jù)庫設(shè)計(jì)的難易程度取決于兩個(gè)要素:“數(shù)據(jù)關(guān)系的復(fù)雜程度”和“數(shù)據(jù)量的大小”。如果應(yīng)用軟件只涉及幾張簡單的表,并且數(shù)據(jù)量特別小,那么設(shè)計(jì)這樣的數(shù)據(jù)庫就非常容易(例如設(shè)計(jì)一個(gè)班級的學(xué)生成績單數(shù)據(jù)庫)。但是你絕對不能盲目樂觀:以為所有的數(shù)據(jù)庫設(shè)計(jì)都是那么簡單。 從前有個(gè)財(cái)主姓萬,他請了一個(gè)秀才教兒子寫字。 軟件開發(fā)人員學(xué)習(xí)數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn)是:入門很容易,但是成為高手非常難。大家千萬不要學(xué)萬公子寫字噢。 4.
33、數(shù)據(jù)庫設(shè)計(jì)4.2 數(shù)據(jù)庫設(shè)計(jì)的主要困難與對策一、開發(fā)與平臺無關(guān)的數(shù)據(jù)庫應(yīng)用程序 目前國際上應(yīng)用最廣泛的數(shù)據(jù)庫系統(tǒng)有Oracle、DB2、Informix、Sybase和SQL Server。這些數(shù)據(jù)庫系統(tǒng)之間的激烈競爭即有好處又有壞處。競爭的好處是使數(shù)據(jù)庫系統(tǒng)不斷發(fā)展和完善,并且避免價(jià)格壟斷。競爭的最大壞處是逼迫數(shù)據(jù)庫廠商不斷開發(fā)出獨(dú)特的功能以吸引更多的用戶,所以各個(gè)數(shù)據(jù)庫系統(tǒng)的獨(dú)特功能無法形成統(tǒng)一標(biāo)準(zhǔn),導(dǎo)致用戶難以開發(fā)出與平臺無關(guān)的數(shù)據(jù)庫應(yīng)用程序,因?yàn)橛脩艉茈y抵御數(shù)據(jù)庫系統(tǒng)獨(dú)特功能的誘惑。SQL是數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)查詢語言??墒菙?shù)據(jù)庫廠商提供了太多超出SQL標(biāo)準(zhǔn)的特色功能,使人們陷入了進(jìn)退兩難
34、的境地:(1)如果你想使程序與數(shù)據(jù)庫平臺無關(guān),那么只能使用SQL,放棄各個(gè)數(shù)據(jù)庫系統(tǒng)的獨(dú)特功能。(2)如果你超越SQL,使用了某個(gè)數(shù)據(jù)庫系統(tǒng)的獨(dú)特功能,那么這樣的程序就是與平臺相關(guān)的。 類似問題也存在于操作系統(tǒng)、Web瀏覽器這些領(lǐng)域。理論上講,只有絕對壟斷才能形成絕對統(tǒng)一的標(biāo)準(zhǔn),但是人們既希望打破壟斷又希望有統(tǒng)一的標(biāo)準(zhǔn),這種矛盾無法徹底解決,只能折衷、妥協(xié)。 如果你開發(fā)的是通用的數(shù)據(jù)庫應(yīng)用軟件,不想讓應(yīng)用軟件與特定的數(shù)據(jù)庫系統(tǒng)捆綁在一起,那么你就老老實(shí)實(shí)地用SQL語言寫程序。 如果你開發(fā)的是行業(yè)專用的數(shù)據(jù)庫應(yīng)用軟件,并且這個(gè)行業(yè)已經(jīng)指定了數(shù)據(jù)庫系統(tǒng)(這種局部壟斷現(xiàn)象普遍存在),最近若干年都不會
35、改變的話,那么你可以超越SQL使用該數(shù)據(jù)庫系統(tǒng)的獨(dú)特功能。 (例如公安部采用Oracle,銀行采用Informix) 4. 數(shù)據(jù)庫設(shè)計(jì)二、數(shù)據(jù)庫性能優(yōu)化問題 數(shù)據(jù)庫設(shè)計(jì)的主要挑戰(zhàn)是“高速處理大容量的數(shù)據(jù)”。如何優(yōu)化數(shù)據(jù)庫的性能是設(shè)計(jì)人員經(jīng)常面臨的問題。數(shù)據(jù)庫性能優(yōu)化主要有兩種途徑:“優(yōu)化表結(jié)構(gòu)本身”和“優(yōu)化數(shù)據(jù)庫的環(huán)境參數(shù)”。 在表的物理設(shè)計(jì)階段,設(shè)計(jì)人員應(yīng)當(dāng)按照第三范式設(shè)計(jì)表結(jié)構(gòu)(即規(guī)范化處理)。這樣做的好處是:表中沒有冗余數(shù)據(jù),表結(jié)構(gòu)很清晰,將來修改或者擴(kuò)充非常方便。但是按第三范式設(shè)計(jì)也存在一些缺點(diǎn):產(chǎn)生了許多表,每個(gè)表有相對較少的列,并且這些列必須使用“主健/外健”關(guān)聯(lián)起來,因此某個(gè)查詢
36、操作可能會產(chǎn)生復(fù)雜的表鏈接,導(dǎo)致性能降低。 反規(guī)范化處理是指對第三范式的表進(jìn)行修改,通過合并一些表,或者在表中創(chuàng)建冗余的列,從而減少表鏈接操作代價(jià),達(dá)到提高性能的目的。要注意的是反規(guī)范化處理存在很大的負(fù)面影響:管理冗余數(shù)據(jù)很麻煩,如果冗余數(shù)據(jù)不同步的話,那么會發(fā)生數(shù)據(jù)錯(cuò)誤這種嚴(yán)重的問題。 對表進(jìn)行第三范式的規(guī)范化處理是第一重要的,而反規(guī)范化處理則需謹(jǐn)慎考慮、不宜過多使用?!耙?guī)范化處理”以及“反規(guī)范化處理”不是自相矛盾之舉,而是性能優(yōu)化的策略。 除了優(yōu)化表結(jié)構(gòu)之外,優(yōu)化數(shù)據(jù)庫的環(huán)境參數(shù)也能夠提高數(shù)據(jù)庫的性能。例如給服務(wù)器配置更快的CPU,增加內(nèi)存。運(yùn)行數(shù)據(jù)庫是非常消耗內(nèi)存的,內(nèi)存對數(shù)據(jù)庫性能影響
37、比較大。由于現(xiàn)在市場上的內(nèi)存條越來越便宜,所以為服務(wù)器配置足夠多的內(nèi)存恐怕是成本最低、難度最低、見效最快的性能優(yōu)化方法。 能否有效地優(yōu)化應(yīng)用軟件數(shù)據(jù)庫的性能,主要取決于開發(fā)者對數(shù)據(jù)庫系統(tǒng)的熟悉程度以及開發(fā)經(jīng)驗(yàn)。 4. 數(shù)據(jù)庫設(shè)計(jì)4.3 數(shù)據(jù)庫設(shè)計(jì)流程數(shù)據(jù)庫設(shè)計(jì)一般要經(jīng)歷“邏輯設(shè)計(jì)物理設(shè)計(jì)安全性設(shè)計(jì)性能優(yōu)化”等步驟,通常要迭代進(jìn)行。 數(shù)據(jù)庫設(shè)計(jì)報(bào)告的模板見 word 文檔。5. 模塊設(shè)計(jì)5.1 何為“模塊”與“模塊化” 對于軟件而言,我們習(xí)慣從功能角度描述模塊。所以模塊泛指軟件系統(tǒng)的功能部件。在軟件的體系結(jié)構(gòu)設(shè)計(jì)完成之際,我們就已經(jīng)確定了所有模塊的功能,并且把模塊們安放在體系結(jié)構(gòu)的恰當(dāng)位置上。每
38、個(gè)模塊都具有特定的、明確的功能(否則不能成為模塊)。人們在設(shè)計(jì)模塊時(shí)應(yīng)當(dāng)盡量使模塊的功能獨(dú)立,因?yàn)楣δ塥?dú)立的模塊可以降低開發(fā)、測試、維護(hù)的代價(jià)。但是功能獨(dú)立并不意味著模塊是絕對孤立的。所有的模塊應(yīng)當(dāng)能夠被集成為一個(gè)系統(tǒng),所以模塊之間必定要交流信息、相互配合。 比如手和腳是兩個(gè)“功能獨(dú)立”的模塊。沒有腳時(shí),手照樣能干活。沒有手時(shí),腳仍可以走路。但如果想讓人跑得快,那么邁左腳時(shí)一定要伸右臂甩左臂,邁右腳時(shí)則要伸左臂甩右臂。所以在設(shè)計(jì)模塊時(shí)不僅要考慮“這個(gè)模塊應(yīng)當(dāng)有什么樣的功能”,還要考慮“這個(gè)模塊應(yīng)該怎樣與其它模塊交流信息”。 “模塊化”(Modularization)是指:將系統(tǒng)分解為一系列功能
39、模塊,然后逐一實(shí)現(xiàn)這些模塊,最后把所有的模塊集成為原來的系統(tǒng)。這樣做的好處是能夠大大降低系統(tǒng)的開發(fā)難度。是否將系統(tǒng)分解得非常細(xì)、得到的功能模塊越多越好呢?不是的。雖然這樣做可以使實(shí)現(xiàn)模塊的代價(jià)更低,但是把功能模塊集成為原來系統(tǒng)的代價(jià)卻增大了很多,得不償失,所以一個(gè)系統(tǒng)的模塊數(shù)量不能過多也不能過少。那么多少算是恰如其分呢?不知道,要靠設(shè)計(jì)師的判斷。 5. 模塊設(shè)計(jì)5.2 模塊設(shè)計(jì)原則 信息隱藏在一節(jié)不和諧的課堂里,老師嘆氣道:“要是坐在后排聊天的同學(xué)能象中間打牌的同學(xué)那么安靜,就不會影響到前排睡覺的同學(xué)?!边@個(gè)故事告訴我們,如果不想讓壞事傳播開來,就應(yīng)該把壞事隱藏起來,家丑不可外揚(yáng)就是這個(gè)道理。
40、為了盡量避免某個(gè)模塊的行為干擾同一系統(tǒng)中的其它模塊,在設(shè)計(jì)模塊時(shí)就要注意信息隱藏。應(yīng)該讓模塊僅僅公開必須要讓外界知道的東西,而隱藏其它一切內(nèi)容。接口設(shè)計(jì)是模塊設(shè)計(jì)的核心工作之一,體現(xiàn)了信息隱藏這一原則。接口是模塊的外部特征,應(yīng)當(dāng)公開;而數(shù)據(jù)結(jié)構(gòu)、算法、實(shí)現(xiàn)體等則是模塊的內(nèi)部特征,應(yīng)當(dāng)隱藏。 高內(nèi)聚內(nèi)聚(Cohesion)是一個(gè)模塊內(nèi)部各成分之間相關(guān)聯(lián)程度的度量。文獻(xiàn)Pressman99,p249 歸納了7種內(nèi)聚類型,繪制了模塊的“內(nèi)聚譜系”,內(nèi)聚程度從低到高大致劃分為低端、中段和高端。模塊設(shè)計(jì)者沒有必要確定內(nèi)聚的精確級別,重要的是盡量爭取高內(nèi)聚,避免低內(nèi)聚。 低耦合耦合(Coupling)是模塊之間依賴程度的度量。內(nèi)聚和耦合是密切相關(guān)的,與其它模塊存在強(qiáng)耦合的模塊通常意味著弱內(nèi)聚,而強(qiáng)內(nèi)聚的模塊通常意味著與其它模塊之間存在弱耦合。模塊設(shè)計(jì)應(yīng)當(dāng)爭取“高內(nèi)聚、
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年數(shù)字水位儀項(xiàng)目申請報(bào)告
- 2025年國土資源普查核儀器項(xiàng)目申請報(bào)告模范
- 2024-2025學(xué)年西藏那曲市巴青縣三上數(shù)學(xué)期末統(tǒng)考試題含解析
- 軍訓(xùn)心得體會匯編15篇
- 2025年水上加油船項(xiàng)目規(guī)劃申請報(bào)告模板
- 2025年放射性廢氣處置設(shè)備項(xiàng)目申請報(bào)告
- 2022裝修監(jiān)理年終工作總結(jié)
- 去超市實(shí)習(xí)報(bào)告范文8篇
- 住房申請書模板10篇
- 演講競聘演講稿范文6篇
- 2024年云南昆明尋甸城鄉(xiāng)投資開發(fā)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- MOOC 家具·設(shè)計(jì)·生活-北京林業(yè)大學(xué) 中國大學(xué)慕課答案
- 黑龍江省哈爾濱市香坊區(qū)2023-2024學(xué)年八年級上學(xué)期期末語文試卷
- 教師職業(yè)道德與專業(yè)發(fā)展智慧樹知到期末考試答案2024年
- 農(nóng)村污水處理設(shè)施運(yùn)維方案特別維護(hù)應(yīng)急處理預(yù)案
- 幕墻工程專項(xiàng)施工方案審批流程
- 新視野英語教程(第四版)讀寫教程1 期末測試卷 測試卷A
- 【施工組織方案】框架結(jié)構(gòu)施工組織設(shè)計(jì)
- 人工智能背景下高校智慧思政建設(shè)
- 高考物理復(fù)習(xí)講義第88講 電磁感應(yīng)中的雙桿模型(解析版)
- 市級課題研究成果案例一等獎(jiǎng)《“教研訓(xùn)一體化”混合式培訓(xùn)模式的建構(gòu)與實(shí)踐》
評論
0/150
提交評論