第一篇:UML學(xué)習(xí)入門就這一篇文章
UML學(xué)習(xí)入門就這一篇文章
1.1 UML基礎(chǔ)知識(shí)掃盲
UML這三個(gè)字母的全稱是Unified Modeling Language,直接翻譯就是統(tǒng)一建模語(yǔ)言,簡(jiǎn)單地說(shuō)就是一種有特殊用途的語(yǔ)言。
你可能會(huì)問(wèn):這明明是一種圖形,為什么說(shuō)是語(yǔ)言呢?偉大的漢字還不是從圖形(象形文字)開始的嗎?語(yǔ)言是包括文字和圖形的!其實(shí)有很多內(nèi)容文字是無(wú)法表達(dá)的,你見過(guò)建筑設(shè)計(jì)圖紙嗎?里面還不是很多圖形,光用文字能表達(dá)清楚建筑設(shè)計(jì)嗎?在建筑界,有一套標(biāo)準(zhǔn)來(lái)描述設(shè)計(jì),同樣道理,在軟件開發(fā)界,我們也需要一套標(biāo)準(zhǔn)來(lái)幫助我們做好軟件開發(fā)的工作。UML就是其中的一種標(biāo)準(zhǔn),注意這可不是唯一標(biāo)準(zhǔn),只是UML是大家比較推崇的一種標(biāo)準(zhǔn)而已,說(shuō)不定以后有一個(gè)更好的標(biāo)準(zhǔn)可能會(huì)取代她呢!UML并不是強(qiáng)制性標(biāo)準(zhǔn),沒(méi)有法律規(guī)定你在軟件開發(fā)中一定要用UML,不能用其它的,我們的目標(biāo)是善用包括UML在內(nèi)的各種標(biāo)準(zhǔn),來(lái)提高我們軟件開發(fā)的水平。
UML由1.0版發(fā)展到1.1、1.2、...,到現(xiàn)在的2.0、2.x,本書將會(huì)以2.x版本為基礎(chǔ)開展討論。網(wǎng)絡(luò)上、書籍、還有各種UML工具軟件,各自基于的UML版本可能會(huì)不一樣,大家在學(xué)習(xí)過(guò)程中可能會(huì)有一些困惑,不過(guò)沒(méi)關(guān)系,本課程在某些關(guān)鍵地方會(huì)描述1.x與2.x的差異。
UML有什么用? 有很多人認(rèn)為,UML的主要用途就是軟件設(shè)計(jì)!也有人認(rèn)為,如果你不是開發(fā)人員,是難以理解UML的。
然而我第一次在實(shí)際工作中應(yīng)用UML的卻不是軟件設(shè)計(jì),而是軟件需求分析!當(dāng)時(shí)我們和客戶面對(duì)面溝通調(diào)研需求的時(shí)候,直接用類圖、順序圖、活動(dòng)圖、用例圖等UML。我們并沒(méi)有因此和客戶無(wú)法溝通,反而是溝通得更加順暢??蛻粼谖覀兊囊龑?dǎo)下,很快就會(huì)讀懂這些UML圖,因?yàn)閁ML圖,讓我們和客戶的溝通效率和效果更好!你可能覺得很神奇,在后續(xù)章節(jié)中,我將會(huì)為你逐一揭開神奇背后的“秘密”。
UML可幫助我們做軟件需求分析和軟件設(shè)計(jì)的工作,在我工作中大概各占了50%的比例,當(dāng)然在你的實(shí)際工作中不一定是這樣的比例。UML會(huì)讓你的需求分析或者軟件設(shè)計(jì)工作更上一層樓,本書將會(huì)介紹UML在需求分析方面的最佳實(shí)踐。
告訴你一個(gè)秘密,UML應(yīng)用于軟件需求分析時(shí),其學(xué)習(xí)門檻將會(huì)大大降低!語(yǔ)法復(fù)雜度會(huì)降低,而且你基本不需要掌握軟件開發(fā)的知識(shí)。只要你對(duì)軟件需求分析感興趣,認(rèn)真學(xué)習(xí)和應(yīng)用UML,就很有機(jī)會(huì)成為軟件需求分析高手。
UML的分類 結(jié)構(gòu)型的圖(Structure Diagram)類圖(Class Diagram)對(duì)象圖(Object Diagram)構(gòu)件圖(Component Diagram)部署圖(Deployment Diagram)包圖(Package Diagram)行為型的圖(Behavior Diagram)活動(dòng)圖(Activity Diagram)狀態(tài)機(jī)圖(State Machine Diagram)順序圖(Sequence Diagram)通信圖(Communication Diagram)用例圖(Use Case Diagram)時(shí)序圖(Timing Diagram)本書所描述的UML的各種圖的名字,以上述的為準(zhǔn)。
UML各種圖的中文譯名,因?yàn)榉g的原因可能會(huì)有所不一樣,如:Sequence Diagram和Timing Diagram有時(shí)候都會(huì)被譯成“時(shí)序圖”,這是最讓人困擾的地方!Sequence Diagram 除了被譯為順序圖,還有序列圖的譯法。
中國(guó)軟件行業(yè)協(xié)會(huì)(CSIA)與日本UML建模推進(jìn)協(xié)會(huì)(UMTP)共同在中國(guó)推動(dòng)的UML專家認(rèn)證,兩個(gè)協(xié)會(huì)共同頒發(fā)認(rèn)證證書、兩國(guó)互認(rèn),CSIA與UMTP共同推出了UML中文術(shù)語(yǔ)標(biāo)準(zhǔn),該標(biāo)準(zhǔn)全稱為:CSIA-UMTP UML中文術(shù)語(yǔ)標(biāo)準(zhǔn)v1.0(本書后文將會(huì)簡(jiǎn)稱為UML中文術(shù)語(yǔ)標(biāo)準(zhǔn))。本書將會(huì)遵循UML中文術(shù)語(yǔ)標(biāo)準(zhǔn),并且我們會(huì)同時(shí)給出中文譯名和英文原名,大家要留意看英文名字噢,這樣能幫助你不會(huì)被眾多的中文譯名混淆。
UML圖為什么會(huì)分為結(jié)構(gòu)型和行為型兩種呢? 顧名思義,結(jié)構(gòu)型的圖描述的是某種結(jié)構(gòu),這種結(jié)構(gòu)在某段時(shí)間內(nèi)應(yīng)該是穩(wěn)定的,“靜態(tài)”的;而結(jié)構(gòu)型的圖描述的是某種行為,是“動(dòng)態(tài)”的。
分析系統(tǒng)需求時(shí),我們會(huì)面對(duì)很多業(yè)務(wù)概念,它們之間會(huì)有某些關(guān)系,這些內(nèi)容可以看成是“靜態(tài)”的,我們可以利用UML的結(jié)構(gòu)性的圖來(lái)分析。同時(shí),業(yè)務(wù)會(huì)涉及大量的流程、過(guò)程等,這些內(nèi)容是“動(dòng)態(tài)”的,我們可以用行為型的UML圖來(lái)分析。
在我們軟件設(shè)計(jì)時(shí),我們需要考慮需要那些類、哪些構(gòu)件、系統(tǒng)最后怎樣部署等,這些內(nèi)容可以看成是“靜態(tài)”的,我們可以利用UML的結(jié)構(gòu)型的圖來(lái)設(shè)計(jì)。同時(shí),我們也需要考慮軟件如何和用戶交互,類、構(gòu)件、模塊之間如何聯(lián)系等“動(dòng)態(tài)”內(nèi)容,我們可以利用行為型的圖來(lái)設(shè)計(jì)。
所謂“靜態(tài)”和“動(dòng)態(tài)”不是絕對(duì)的,下文我們將會(huì)進(jìn)一步介紹結(jié)構(gòu)型的UML和行為型的UML。通過(guò)下面的學(xué)習(xí),你將會(huì)初步認(rèn)識(shí)UML的各種圖,你可能還會(huì)有很多問(wèn)題,本章的主要目的是讓你對(duì)UML有一個(gè)宏觀的認(rèn)識(shí),帶著你的問(wèn)題繼續(xù)閱讀后面的章節(jié)吧!1.2 結(jié)構(gòu)型的UML(Structure Diagram)類圖(Class Diagram)請(qǐng)看下面這個(gè)類圖:
圖 1.1 某模具系統(tǒng)類圖
此圖截取自某模具管理系統(tǒng)的業(yè)務(wù)概念分析圖,圖中一個(gè)一個(gè)的矩形就是類,這些類之間有各種線條連接,這些線條表示類之間的關(guān)系。類圖是分析業(yè)務(wù)概念的首選,類圖可能是使用率最高的UML圖。
再看下面這個(gè)Person類圖,這時(shí)軟件設(shè)計(jì)時(shí)用到的一個(gè)圖:
圖 1.2 Person類圖
該P(yáng)erson類有以下屬性(Attribute):Name(姓名),Sex(性別),Department(部門)等,有以下操作(Operation):Work(工作)等。類有屬性和操作,但用類圖分析業(yè)務(wù)模型時(shí),往往不需要使用操作,如圖1.1中的類就只有屬性。
Attribute有特性、特征等譯法,Operation也稱作方法,但本書遵循UML中文術(shù)語(yǔ)標(biāo)準(zhǔn),即Attribute為屬性,Operation為操作。對(duì)象圖(Object Diagram)一般情況下只有在軟件開發(fā)中才會(huì)使用到對(duì)象圖,下面的內(nèi)容以開發(fā)的角度來(lái)說(shuō)明對(duì)象圖,如果你沒(méi)有開發(fā)經(jīng)驗(yàn),閱讀起來(lái)可能有一點(diǎn)難度。
圖1.2中的Person類,用代碼實(shí)例化如下:
Person person = new Person();……
類(Class)實(shí)例化后就是對(duì)象(Object),對(duì)象person是類Person的實(shí)例,上述代碼可以用對(duì)象圖表示如下:
圖 1.3 Person類的對(duì)象圖
對(duì)象圖和類圖的樣子很相似,對(duì)象是類的實(shí)例化,“person : Person”表示對(duì)象person是類Person的實(shí)例。對(duì)象圖往往只在需要描述復(fù)雜算法時(shí)才會(huì)使用,畫出來(lái)的對(duì)象圖往往不會(huì)只有一個(gè)對(duì)象,該圖只畫了一個(gè)對(duì)象,其目的是盡量簡(jiǎn)化以便讀者的理解什么是對(duì)象圖。
在需求分析工作中基本上不需要使用對(duì)象圖,從嚴(yán)謹(jǐn)?shù)慕嵌葋?lái)看某些情況下應(yīng)該使用對(duì)象圖,但我往往還是會(huì)用類圖來(lái)處理,這樣更加簡(jiǎn)便而且容易理解。我們將在類圖一章再次講解對(duì)象圖。
構(gòu)件圖(Component Diagram)構(gòu)件圖也叫組件圖,兩個(gè)名字均符合UML中文術(shù)語(yǔ)標(biāo)準(zhǔn)。一輛汽車由輪子、發(fā)動(dòng)機(jī)等物理部件組成,一個(gè)軟件往往也是由很多“物理部件”(如:控件、重用構(gòu)件等)組成的,構(gòu)件圖就是用來(lái)描述軟件內(nèi)部物理組成的一種圖。下圖是某權(quán)限構(gòu)件設(shè)計(jì)圖:
圖 1.4 某權(quán)限構(gòu)件設(shè)計(jì)圖
圖1.4右上方有這樣標(biāo)志 的矩形表示一個(gè)構(gòu)件,構(gòu)件可以再包含構(gòu)件。
軟件需求分析工作中,需要用到構(gòu)件圖的情況不是很多,以下情況除外:
1.待開發(fā)的系統(tǒng)需要與第三方的系統(tǒng)、原有系統(tǒng)、某些老系統(tǒng)等交互,這時(shí)可用構(gòu)件圖描述交互要求。
2.客戶對(duì)軟件設(shè)計(jì)有某些特殊要求,這時(shí)可用構(gòu)件圖來(lái)描述要求。
構(gòu)件圖有時(shí)不會(huì)單獨(dú)使用,還會(huì)和部署圖一起結(jié)合使用。
部署圖(Deployment Diagram)部署圖是用來(lái)描述系統(tǒng)如何部署、本系統(tǒng)與其他系統(tǒng)是怎樣的關(guān)系的一種圖,如下圖:
圖 1.5 某24小時(shí)便利店的管理系統(tǒng)部署圖
圖中一個(gè)個(gè)立體的矩形是部署圖的“節(jié)點(diǎn)”,一個(gè)節(jié)點(diǎn)表示一個(gè)物理的設(shè)備,節(jié)點(diǎn)之間的線條表示節(jié)點(diǎn)間的物理連接關(guān)系。大部分客戶都會(huì)具備一定的IT基礎(chǔ)環(huán)境(如具備局域網(wǎng)、一些服務(wù)器、某些軟件平臺(tái)等),軟件系統(tǒng)需要基于當(dāng)前的IT基礎(chǔ)環(huán)境來(lái)規(guī)劃,這時(shí)我們可以使用部署圖來(lái)做這個(gè)規(guī)劃。
分析系統(tǒng)的需求,不能忽略系統(tǒng)架構(gòu)、部署、IT架構(gòu)等方面的要求,我們要基于客戶當(dāng)前的IT基礎(chǔ)環(huán)境,做一個(gè)最符合客戶利益的規(guī)劃。
要活用構(gòu)件圖、部署圖來(lái)分析需求,需要具備一定的IT基礎(chǔ)架構(gòu)知識(shí)和軟件設(shè)計(jì)知識(shí),如果你還不具備相關(guān)知識(shí),那么可以考慮抓緊補(bǔ)充相關(guān)知識(shí)。不過(guò)需求分析工作更多的還是分析業(yè)務(wù),提煉功能性需求,這部分工作能做好是相當(dāng)不容易的事情。對(duì)于技術(shù)方面的非功能性需求分析,可交由有技術(shù)背景的專業(yè)人士負(fù)責(zé)。
包圖(Package Diagram)Package有“打包”的意思,包圖的主要用途是“打包”類圖。用類圖描述業(yè)務(wù)概念時(shí),很多時(shí)候會(huì)因?yàn)闃I(yè)務(wù)類太多,而導(dǎo)致類圖非常龐大,不利于閱讀,這時(shí)可以將某些類放入“包”中,通過(guò)包圖來(lái)組織業(yè)務(wù)概念圖。
下圖是包圖的一個(gè)示例:
圖 1.6 包圖
圖中好像文件夾樣子的就是一個(gè)“包”,包之間的線條表示包之間的關(guān)系。1.3 行為型的UML(Behavior Diagram)活動(dòng)圖、狀態(tài)機(jī)圖、順序圖處于三種不同的角度來(lái)描述流程,是分析業(yè)務(wù)流程的三種不同利器,下面將會(huì)逐一說(shuō)明。
活動(dòng)圖(Activity Diagram)我們將起床到出門上班這個(gè)過(guò)程畫成活動(dòng)圖,可能是這樣的:
圖 1.7 起床到出門上班的活動(dòng)圖
活動(dòng)圖中的一個(gè)圓邊框框表示一個(gè)“活動(dòng)”,多個(gè)活動(dòng)之間的帶箭頭線條表示活動(dòng)的先后順序,該圖只是表達(dá)了一個(gè)順序流程,活動(dòng)圖還可以表達(dá)分支結(jié)構(gòu)。如果你以前曾學(xué)過(guò)流程圖的話,你會(huì)發(fā)現(xiàn)活動(dòng)圖和流程圖很相似。活動(dòng)圖可能是三種能表示流程的UML圖中最接近我們思維習(xí)慣的一種,下面來(lái)學(xué)習(xí)另外兩種能表達(dá)流程的圖。
狀態(tài)機(jī)圖(State Machine Diagram)狀態(tài)機(jī)圖又叫狀態(tài)圖,但狀態(tài)圖這個(gè)譯名并沒(méi)有譯出Machine的意思。
狀態(tài)機(jī)圖從某個(gè)物品的狀態(tài)是如何變化的角度來(lái)展示流程,下圖某請(qǐng)假條審批流程:
圖 1.8 請(qǐng)假處理流程
整個(gè)請(qǐng)假審批流程是圍繞“請(qǐng)假條”這個(gè)物體進(jìn)行的,隨著不同的審批階段,請(qǐng)假條具備不同的狀態(tài)。我們分析業(yè)務(wù)流程時(shí)會(huì)發(fā)現(xiàn)很多流程其實(shí)是圍繞某個(gè)物品進(jìn)行的,這時(shí)可考慮使用狀態(tài)機(jī)圖。
順序圖(Sequence Diagram)你去餐廳吃飯,向服務(wù)員點(diǎn)餐到服務(wù)員送菜上來(lái),這個(gè)過(guò)程用順序圖可表示如下:
圖 1.9 點(diǎn)菜的順序圖
該圖有三個(gè)“小人”,每個(gè)“小人”下面的文字說(shuō)明(如:顧客)表示其代表的角色。角色與角色之間有一些線條鏈接,表示角色之間是如何交互的。該圖表示的意思是:顧客向服務(wù)員點(diǎn)菜后,服務(wù)員將點(diǎn)菜信息傳遞給廚師,然后廚師做菜,最后再由服務(wù)員送菜給你。
點(diǎn)菜過(guò)程涉及幾個(gè)環(huán)節(jié),每個(gè)環(huán)節(jié)均由不同的角色來(lái)負(fù)責(zé),如果遇到類似的情況,你可以考慮使用順序圖來(lái)分析。用順序圖來(lái)分析的好處是能清晰表達(dá)整個(gè)過(guò)程所參與的角色,角色與角色之間的關(guān)系,各角色是如何被卷入這個(gè)過(guò)程當(dāng)中的。
通信圖(Communication Diagram)UML1.1時(shí),該圖英文名為Collaboration Diagram;UML2.x時(shí),英文名為Communication Diagram。將英文名字直接翻譯,原來(lái)的英文名字可譯為協(xié)作圖,而新的英文名字譯為通信圖。
通信圖是順序圖的另外一種畫法,點(diǎn)菜的順序圖,如果用通信圖來(lái)畫可表示如下:
圖 1.10 點(diǎn)菜的通信圖
三個(gè)“小人”分表表示三種角色:顧客、服務(wù)員、廚師;角色之間有直線聯(lián)系表示他們之間有關(guān)系;帶序號(hào)的文字和箭頭,表示角色之間傳遞的信息。
順序圖更強(qiáng)調(diào)先后順序,通信圖更強(qiáng)調(diào)相互之間的關(guān)系。我覺得順序圖實(shí)用性更好一點(diǎn),比通信圖能表達(dá)更多的信息,更容易讀懂,在需求分析工作中我基本不會(huì)使用通信圖。
用例圖(Use Case Diagram)下圖是用例圖的示意圖:
圖 1.11 用例圖
用例圖表達(dá)的是什么角色通過(guò)軟件系統(tǒng)能做什么事情,我們可以使用用例圖系統(tǒng)地表達(dá)軟件系統(tǒng)的絕大部分需求。
時(shí)序圖(Timing Diagram)時(shí)序圖也叫時(shí)間圖,時(shí)序圖是UML中文術(shù)語(yǔ)標(biāo)準(zhǔn)的說(shuō)法,而時(shí)間圖不是標(biāo)準(zhǔn)的說(shuō)法。
時(shí)序圖是表示某東西的狀態(tài)隨時(shí)間變化而變化的一種圖,參見下圖:
圖 1.12 燈的開關(guān)狀態(tài)隨時(shí)間變化圖
此圖表示在0秒到30秒,燈的狀態(tài)是關(guān)的,30-60秒燈的狀態(tài)為開,60秒后狀態(tài)為關(guān)。
在實(shí)際工作中我基本上沒(méi)有試用過(guò)時(shí)間圖。
下面通過(guò)這個(gè)表格來(lái)總結(jié)一下我在需求分析工作中應(yīng)用各種UML圖的情況:
表 1.1 各種UML圖實(shí)際應(yīng)用情況
上表是根據(jù)我的工作經(jīng)驗(yàn)總結(jié)的,相信會(huì)適用于很多情況。但每個(gè)人的工作經(jīng)歷、情況、環(huán)境等不太一樣,上表僅作參考。
1.4 如何學(xué)好UML? UML的認(rèn)識(shí)誤區(qū)
誤區(qū)一:認(rèn)為UML主要用于軟件設(shè)計(jì)。
前面的文章你可以看到,UML除了用于軟件設(shè)計(jì),還能用于需求分析,而本書就是專門來(lái)說(shuō)明如何在需求分析工作中活用UML的。
誤區(qū)二:客戶無(wú)法理解UML,在需求分析中應(yīng)用UML實(shí)際意義不大。
我還不熟悉UML時(shí),確實(shí)也有這樣的懷疑,而實(shí)際工作中發(fā)現(xiàn)UML恰恰成為與客戶溝通的良好橋梁!UML其實(shí)不難讀懂,只要稍加解釋客戶馬上就能讀懂。我在所有的項(xiàng)目需求分析工作中,都直接使用UML圖與客戶溝通,并且給客戶簽署的需求規(guī)格說(shuō)明書中含有大量的UML圖。
UML能直觀、形象、嚴(yán)謹(jǐn)?shù)孛枋龀鰳I(yè)務(wù)概念、業(yè)務(wù)流程、客戶的期望和需求,只要稍加引導(dǎo)客戶,客戶將會(huì)很容易讀懂UML,甚至?xí)鲃?dòng)使用UML與項(xiàng)目組交流。我曾經(jīng)遇到過(guò)客戶向我們索要畫UML圖的工具,客戶見識(shí)過(guò)UML的威力后,也想在自己實(shí)際工作中使用。
誤區(qū)三:認(rèn)為UML語(yǔ)法繁雜,難以學(xué)習(xí)和應(yīng)用。
某些UML資料和書籍可能將UML說(shuō)得過(guò)于復(fù)雜了,官方的UML標(biāo)準(zhǔn)資料也確實(shí)是枯燥難懂、人見人暈。我剛開始學(xué)習(xí)UML時(shí),也看過(guò)一些UML書籍,覺得UML的語(yǔ)法太多、太復(fù)雜、太容易混淆了!在實(shí)際工作中,其實(shí)經(jīng)常需要用到的UML語(yǔ)法并不多,而且很容易掌握。當(dāng)我們?cè)谛枨蠓治龇矫鎽?yīng)用UML時(shí),需要掌握的語(yǔ)法更少(在軟件設(shè)計(jì)方面應(yīng)用UML時(shí)需要掌握稍多一點(diǎn)的語(yǔ)法)?!岸嗽瓌t”在這里完全適用,我們經(jīng)常用到的UML語(yǔ)法,其實(shí)只占全部語(yǔ)法的20%,而本書將會(huì)重點(diǎn)介紹實(shí)用性強(qiáng)的UML語(yǔ)法。
誤區(qū)四:UML用途不大。
很多人推崇UML,但也有不少人士不太認(rèn)可UML。不認(rèn)可的原因主要是因?yàn)橐恍┤耸繉W(xué)習(xí)UML后,發(fā)現(xiàn)在實(shí)際工作中發(fā)揮的作用并不是很大,有時(shí)候不用UML效果更好。
我不敢說(shuō)UML能幫助我們解決所有問(wèn)題,至少?gòu)奈业亩嗄晔褂媒?jīng)驗(yàn)上來(lái)說(shuō),UML對(duì)于提升我的需求分析能力幫助還是很大的。有人之所以感覺UML不太好用,我覺得原因還是只掌握了UML的形而沒(méi)有領(lǐng)會(huì)UML的神。UML的常用語(yǔ)法可能幾天就能學(xué)會(huì)了,而要真正做到“thinking in UML”卻沒(méi)有這么容易,需要長(zhǎng)期的鍛煉。
我的學(xué)習(xí)經(jīng)歷
我讀大學(xué)時(shí)沒(méi)有聽說(shuō)過(guò)UML,出來(lái)工作兩三年后才開始接觸UML,當(dāng)時(shí)的感覺就好像找到了新大陸,很想好好發(fā)掘一番!而我當(dāng)時(shí)的運(yùn)氣還是相當(dāng)不錯(cuò)的,我的上司是UML達(dá)人,他帶領(lǐng)我參加了項(xiàng)目的需求分析工作。我很快就見識(shí)了UML威力,在他的言傳身教之下,迅速掌握了UML。
在那個(gè)項(xiàng)目以后,我便獨(dú)立擔(dān)當(dāng)了多個(gè)項(xiàng)目管理及需求分析工作,沒(méi)有一個(gè)項(xiàng)目不應(yīng)用UML,而且我毫不保留地傳授UML知識(shí)給項(xiàng)目組的其他成員。多年的工作進(jìn)一步磨練了自己,對(duì)UML在實(shí)際工作中的應(yīng)用有了更深刻的認(rèn)識(shí),形成自己的一套方法。
我的UML知識(shí)絕大部分來(lái)自于工作實(shí)踐,期間雖然也看過(guò)一些書籍,但對(duì)我的幫助很少。當(dāng)然我最大的得益還是來(lái)自我的UML啟蒙老師,他在實(shí)際工作中教會(huì)了我UML,幫助我踏上自我成長(zhǎng)的道路。我的UML學(xué)習(xí)最大體會(huì)就是:實(shí)踐太重要了!如果有名師指導(dǎo)則會(huì)讓你事半功倍!希望本書能成為你在實(shí)際工作中學(xué)習(xí)和應(yīng)用UML的好幫手!UML學(xué)習(xí)難點(diǎn)
學(xué)UML之難,不在于學(xué)習(xí)語(yǔ)法,關(guān)鍵是要改變思維習(xí)慣。UML是一種新的工具,但同時(shí)也是代表了一種新的先進(jìn)的思考方法,如果不能掌握這樣的方法,只能學(xué)到了UML的形,而沒(méi)有掌握其神髓。
要用好UML,你需要在平時(shí)多多培養(yǎng)下面的能力:
1.書面表達(dá)能力。
2.歸納總結(jié)能力。
3.“面向?qū)ο蟆钡乃季S能力和抽象能力。
平時(shí)你可以利用各種機(jī)會(huì)來(lái)提升第1和第2種能力,如多寫寫項(xiàng)目文檔、寫寫日記或博客等,多思考和總結(jié)平時(shí)自己的工作得失等。
第3種能力說(shuō)起來(lái)有點(diǎn)虛,大家在大學(xué)中可能也學(xué)過(guò)相關(guān)知識(shí)。訓(xùn)練這種能力的最好方法就是多應(yīng)用類圖,我們將會(huì)在類圖的章節(jié)再重點(diǎn)介紹,通過(guò)實(shí)例來(lái)體會(huì)什么才叫“面向?qū)ο蟆?
本書將會(huì)重點(diǎn)培養(yǎng)你的這三種能力,只要你有進(jìn)步之心,多練習(xí)、多實(shí)踐、多思考、多總結(jié),一定會(huì)取得長(zhǎng)足進(jìn)步!1.5 小結(jié)
本章的主要目標(biāo)是讓你不需要閱讀全書的情況下,就可以了解到UML的全貌,大概知道UML各種圖的用途,同時(shí)給你說(shuō)明學(xué)習(xí)UML的難點(diǎn),為最終活用UML做好準(zhǔn)備。下面我們一起來(lái)復(fù)習(xí)一下本章的主要內(nèi)容:
UML是Unified Modeling Language的簡(jiǎn)稱,是軟件開發(fā)界的一套標(biāo)準(zhǔn),UML不僅可用于軟件設(shè)計(jì),也可以用于軟件需求分析。但UML并不是強(qiáng)制標(biāo)準(zhǔn),我們應(yīng)該善用包括UML在內(nèi)的各種標(biāo)準(zhǔn)來(lái)提高我們的水平。
UML可分為兩類:結(jié)構(gòu)型、行為型,結(jié)構(gòu)性的UML有:類圖、對(duì)象圖、構(gòu)件圖、部署圖、包圖,行為型的圖有活動(dòng)圖、狀態(tài)機(jī)圖、順序圖、通信圖、用例圖、時(shí)間圖。
類圖是業(yè)務(wù)概念模型分析的有利武器,也是面向?qū)ο蠓治瞿芰Φ膹?qiáng)有力訓(xùn)練工具。
對(duì)象圖在需求分析工作中并不常用。
構(gòu)件圖、部署圖是分析IT基礎(chǔ)架構(gòu)、軟件架構(gòu)等方面需求的有利分析工具,但需要你具備IT基礎(chǔ)架構(gòu)、軟件設(shè)計(jì)方面的知識(shí)和經(jīng)驗(yàn)。
包圖可用來(lái)組織類圖,在需求分析工作中應(yīng)用的機(jī)會(huì)不是很大。
活動(dòng)圖、狀態(tài)機(jī)圖、順序圖是分析業(yè)務(wù)流程的強(qiáng)力武器。活動(dòng)圖的表達(dá)思路與流程圖很類似,很容易掌握,而且大部分情況下都可以使用活動(dòng)圖來(lái)分析業(yè)務(wù)流程;某流程如果是圍繞某個(gè)物品進(jìn)行,該物品在流程中轉(zhuǎn)換多種狀態(tài),那么使用狀態(tài)機(jī)圖來(lái)分析是首選;用順序圖來(lái)分析的好處是能清晰表達(dá)整個(gè)過(guò)程所參與的角色,角色與角色之間的關(guān)系,各角色是如何被卷入這個(gè)過(guò)程當(dāng)中的。
通信圖可以看作是順序圖的另外一種表達(dá)形式,順序圖更強(qiáng)調(diào)先后順序,通信圖更強(qiáng)調(diào)相互之間的關(guān)系。而從我的工作經(jīng)驗(yàn)看,順序圖更加實(shí)用一點(diǎn)。
有人會(huì)將用例圖稱作“公仔圖”,用例圖表達(dá)的是什么角色通過(guò)軟件系統(tǒng)能做什么事情,我們可以使用用例圖系統(tǒng)地表達(dá)軟件系統(tǒng)的絕大部分需求。
時(shí)間圖是表示某東西的狀態(tài)隨時(shí)間變化而變化的一種圖,我在實(shí)際工作中很少有機(jī)會(huì)能用到這種圖。
學(xué)UML之難,不在于學(xué)習(xí)語(yǔ)法,避免陷入U(xiǎn)ML的認(rèn)識(shí)誤區(qū),多練習(xí)、多實(shí)踐,培養(yǎng)良好的“think
in UML”思想,鍛煉面向?qū)ο蠓治龅哪芰Γ蔀榛钣肬ML的需求分析高手不遠(yuǎn)矣!
第二篇:UML學(xué)習(xí)心得體會(huì)
——uml學(xué)習(xí)體會(huì)
養(yǎng)成良好的繪制uml序列圖的習(xí)慣 在學(xué)習(xí)uml的過(guò)程中,你可能會(huì)遇到繪制uml序列圖的問(wèn)題,這里就討論一下怎樣才能養(yǎng)成良好的繪制uml序列圖的習(xí)慣。
有一些方法可以幫助您提高uml序列圖的質(zhì)量和效力。它們包括:和主題問(wèn)題專家一起驗(yàn)證決策;使解決方案盡量簡(jiǎn)單;為繪制消息和返回值選擇一種一
致且有效的風(fēng)格;將序列圖分層;遵循一致的邏輯風(fēng)格;牢記序列圖是動(dòng)態(tài)的。一:驗(yàn)證決策
繪制uml序列圖時(shí),我做了一些對(duì)其它模型可能有潛在影響的決策。例如,在對(duì)第10步建模時(shí),假設(shè)(大致上是個(gè)設(shè)計(jì)決策)費(fèi)用顯示屏幕同時(shí)也處理學(xué)生對(duì)費(fèi)用是否可接受所進(jìn)行的驗(yàn)證。該決策應(yīng)該由用戶界面原型反映出來(lái),并由主題問(wèn)題專家(sme)進(jìn)行驗(yàn)證。您應(yīng)該和sme(特別是那些對(duì)于如何開發(fā)類似模型有著深刻見解的富有經(jīng)驗(yàn)的人)一起執(zhí)行序列圖的繪制工作。
二:保持簡(jiǎn)單
在對(duì)第2和第3步建模時(shí),我忽然意識(shí)到學(xué)生可能應(yīng)該使用口令進(jìn)入系統(tǒng)。在向sme提出了這個(gè)概念后發(fā)覺我錯(cuò)了:姓名和學(xué)號(hào)組合對(duì)于我們的目的來(lái)說(shuō)已經(jīng)足夠唯一,并且學(xué)校也不希望增加復(fù)雜的口令管理。這是個(gè)很有意思的決策,因?yàn)檫@是學(xué)校的一個(gè)運(yùn)作策略,所以可以作為一條商業(yè)規(guī)則記載到增補(bǔ)規(guī)范中。通過(guò)與sme一起檢驗(yàn)這個(gè)想法,而不是假定我比他們知道得更多,我避免了“鍍金”的機(jī)會(huì),因而減少了我們小組開發(fā)這一系統(tǒng)所需的工作。
三:繪制消息和返回值
繪制uml序列圖時(shí)我更喜歡從左至右地繪制消息,從右至左地繪制返回值,盡管這樣對(duì)于復(fù)雜的對(duì)象/類來(lái)說(shuō)不總是非常合適。我將消息上的標(biāo)簽和返回值對(duì)齊到離箭頭最近的位置。我不喜歡在序列圖上標(biāo)出返回值,為的是使圖盡可能地簡(jiǎn)化。不過(guò),始終標(biāo)出返回值也同樣有效,特別是在序列圖用于設(shè)計(jì)而不是分析目的時(shí)。(我希望我的分析圖盡量簡(jiǎn)單,而設(shè)計(jì)圖盡量全面。)在分析期間,我的目標(biāo)是理解邏輯和確保邏輯的正確性。而在設(shè)計(jì)期間,則要賦予消息精確的細(xì)節(jié)。
四:將序列圖分層 繪制uml序列圖時(shí)我喜歡將序列圖從左至右地分層。先標(biāo)出參與者,然后是控制器類,然后是用戶界面類,最后是商業(yè)類。在設(shè)計(jì)期間,可能需要添加系統(tǒng)類和持久類,我通常將它們放在序列圖的最右側(cè)。以這種方式將序列圖分層往往使它們更易于閱讀,并且更容易找出分層邏輯問(wèn)題,例如用戶界面類直接訪問(wèn)持久類。
五:遵循一致的邏輯風(fēng)格
請(qǐng)注意,在圖1序列圖所示的過(guò)程中,邏輯風(fēng)格做了部分更改。一開始,特別是在登錄時(shí),用戶界面處理一些基本邏輯--而在選擇研習(xí)班,以及稍后的驗(yàn)證時(shí),則是控制器類進(jìn)行處理。這實(shí)際上是個(gè)設(shè)計(jì)問(wèn)題。我不會(huì)在這個(gè)問(wèn)題上糾纏太久,但和往常一樣,我建議選擇一種適合于您的建模風(fēng)格,然后始終如一地貫徹在所有序列圖中。
六:牢記序列圖是動(dòng)態(tài)的繪制uml序列圖時(shí)您可能聽說(shuō)過(guò)諸如動(dòng)態(tài)建模和靜態(tài)建模這樣的術(shù)語(yǔ),其他一些熟悉面向?qū)ο蠼<夹g(shù)的開發(fā)人員常常會(huì)提到它們。您甚至可能聽到過(guò)有關(guān)每種風(fēng)格的優(yōu)點(diǎn)的爭(zhēng)論。動(dòng)態(tài)建模技術(shù)主要集中在標(biāo)識(shí)系統(tǒng)中的行為,包括序列圖的繪制和活動(dòng)圖的繪制(請(qǐng)參閱“如何繪制uml活動(dòng)圖”)以及uml協(xié)作圖的繪制。而靜態(tài)建模則集中在系統(tǒng)的靜態(tài)方面,包括類、它們的屬性,以及類之間的關(guān)聯(lián)。類模型和持久/數(shù)據(jù)模型一樣,都是靜態(tài)建模的主要產(chǎn)物。uml學(xué)習(xí)心得(一)uml(unified modeling language,統(tǒng)一建模語(yǔ)言)是一組用于描述ooad過(guò)程的圖形化表達(dá)方式。uml為交流面向?qū)ο蟮脑O(shè)計(jì)中的需求,行為、體系結(jié)構(gòu)的實(shí)現(xiàn)提供了一套綜合的表示法。(二)uml由9個(gè)不同類型的圖組成:
用例圖:顯示了系統(tǒng)的外部可視行為。
用例圖描述了系統(tǒng)外的人員和系統(tǒng)的交互動(dòng)作,以及系統(tǒng)的響應(yīng),該類型的圖可以用于描述系統(tǒng)的功能需求。
活動(dòng)圖:顯示系統(tǒng)行為的峽谷納西描述。
活動(dòng)圖描述了單個(gè)功能需求內(nèi)部的細(xì)節(jié)行為,包括基本的場(chǎng)景和一些可選的場(chǎng)景。
組件圖:顯示了系統(tǒng)的體系結(jié)構(gòu)。
組件圖描述了系統(tǒng)的可部署單元(可執(zhí)行文件,組件,數(shù)據(jù)存儲(chǔ)和其他一些內(nèi)容)以及一些借口,可部署單元通過(guò)這些接口進(jìn)行交互,該圖可以用于研究系統(tǒng)的體系結(jié)構(gòu)。
順序圖:顯示了對(duì)象隨著時(shí)間的交互。
順序圖描述了某個(gè)功能需求的路徑或場(chǎng)景內(nèi)相對(duì)時(shí)間的詳細(xì)行為,該圖可用于理解系統(tǒng)元素之間的消息流程。
協(xié)作圖:顯示了對(duì)象的交互,強(qiáng)調(diào)對(duì)象之間的關(guān)系。(在uml2.0里面找不到了)
類圖:顯示了類的定義和關(guān)系。
類圖描述了系統(tǒng)設(shè)計(jì)中的類和接口,以及他們之間的關(guān)系。該圖可用于定義內(nèi)部的,面向?qū)ο蟮拇a結(jié)構(gòu)。
狀態(tài)圖:顯示了響應(yīng)時(shí)間的狀態(tài)改變。
狀態(tài)圖描述了系統(tǒng)如何改變狀態(tài)以相應(yīng)內(nèi)部的和外部的事件,確保每個(gè)事件都被適當(dāng)?shù)奶幚怼?/p>
部署圖:顯示了系統(tǒng)的物理體系結(jié)構(gòu)。
部署圖描述了系統(tǒng)的可部署單元(應(yīng)用,組件,數(shù)據(jù)存儲(chǔ)等)如何被賦予不同的節(jié)點(diǎn),這些節(jié)點(diǎn)如何交互通信,用于系統(tǒng)映射和負(fù)載的研究。
包圖:顯示了設(shè)計(jì)的層次結(jié)構(gòu)。
包圖描述了設(shè)計(jì)的相關(guān)元素如何按組結(jié)合在一起,以及他們之間的關(guān)系。(三)各種圖的作用
1.用例圖(usecasediagram)
它是uml中最簡(jiǎn)單也是最復(fù)雜的一種圖。說(shuō)它簡(jiǎn)單是因?yàn)樗捎昧嗣嫦驅(qū)ο蟮乃枷?,又是基于用戶視角的,繪制非常容易,簡(jiǎn)單的圖形表示讓人一看就懂。說(shuō)它復(fù)雜是因?yàn)橛美龍D往往不容易控制,要么過(guò)于復(fù)雜,要么過(guò)于簡(jiǎn)單。用例圖表示了角色和用例以及它們之間的關(guān)系。
2.類圖(classdiagram)uml面向?qū)ο笾惺亲畛S玫囊环N圖,類圖可以幫助我們更直觀的了解一個(gè)系統(tǒng)的體系結(jié)構(gòu)。通過(guò)關(guān)系和類表示的類圖,可以圖形化的方式描述一個(gè)系統(tǒng)的設(shè)計(jì)部分。3.對(duì)象圖 uml面向?qū)ο笾袑?duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。它們的不同點(diǎn)在于對(duì)象圖顯示類的多個(gè)對(duì)象實(shí)例,而不是實(shí)例的類。一個(gè)對(duì)象圖是類圖的一個(gè)實(shí)例。由于對(duì)象存在生命周期,因此對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。4.狀態(tài)圖
描述一個(gè)實(shí)體基于事件反應(yīng)的動(dòng)態(tài)行為,顯示了該實(shí)體如何根據(jù)當(dāng)前所處的狀態(tài)對(duì)不同的時(shí)間做出反應(yīng)的。通常創(chuàng)建一個(gè)uml狀態(tài)圖是為了以下的研究目的:研究類、角色、子系統(tǒng)、或組件的復(fù)雜行為。5.時(shí)序圖
又稱順序圖,描述了對(duì)象之間動(dòng)態(tài)的交互關(guān)系,著重體現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。順序圖由一組對(duì)象構(gòu)成,每個(gè)對(duì)象分別帶有一條豎線,稱作對(duì)象的生命線,它代表時(shí)間軸,時(shí)間沿豎線向下延伸。uml面向?qū)ο笾许樞驁D描述了這些對(duì)象隨著時(shí)間 的推移相互之間交換消息的過(guò)程。消息用從一務(wù)垂直的對(duì)象生命線指向另一個(gè)對(duì)象的生命線的水平箭頭表示。圖中還可以根據(jù)需要增加有關(guān)時(shí)間的說(shuō)明和其他注釋。6.協(xié)作圖 uml面向?qū)ο笾袇f(xié)作圖用于顯示組件及其交互關(guān)系的空間組織結(jié)構(gòu),它并不側(cè)重于交互的順序。協(xié)作圖顯示了交互中各個(gè)對(duì)象之間的組織交互關(guān)系以及對(duì)象 彼此之間的鏈接。與序列圖不同,協(xié)作圖顯示的是對(duì)象之間的關(guān)系。另一方面,協(xié)作圖沒(méi)有將時(shí)間作為一個(gè)單獨(dú)的維度,因此序列號(hào)就決定了消息及并發(fā)線程的順 序。協(xié)作圖是一個(gè)介于符號(hào)圖和序列圖之間的交叉產(chǎn)物,它用帶有編號(hào)的箭頭來(lái)描述特定的方案,以顯示在整個(gè)方案過(guò)程中消息的移動(dòng)情況。
協(xié)作圖用途:
通過(guò)描繪對(duì)象之間消息的移動(dòng)情況來(lái)反映具體的方案。
顯示對(duì)象及其交互關(guān)系的空間組織結(jié)構(gòu),而非交互的順序。7.活動(dòng)圖(activitydiagram)uml面向?qū)ο笾衭ml活動(dòng)圖記錄了單個(gè)操作或方法的邏輯,單個(gè)用戶案例,或者單個(gè)業(yè)務(wù)流程的邏輯。描述系統(tǒng)中各種活動(dòng)的執(zhí)行順序,通常用于描述一個(gè)操作中所要進(jìn)行的各項(xiàng)活動(dòng)的執(zhí)行流程。同時(shí),它也常被用來(lái)描述一個(gè)用例的處理流程,或者某種交互流程。
活動(dòng)圖由一些活動(dòng)組成,圖中同時(shí)包括了對(duì)這些活動(dòng)的說(shuō)明。當(dāng)一個(gè)活動(dòng)執(zhí)行完畢之后,控制將沿著控制轉(zhuǎn)移箭頭轉(zhuǎn)向下一個(gè)活動(dòng)?;顒?dòng)圖中還可以方便地描述控制轉(zhuǎn)移的條件以及并行執(zhí)行等要求。
組件圖是用來(lái)反映代碼的物理結(jié)構(gòu)。從組件圖中,可以了解各軟件組件(如源代碼文件或動(dòng)態(tài)鏈接庫(kù))之間的編譯器和運(yùn)行時(shí)依賴關(guān)系。使用組件圖可以將系統(tǒng)劃分為內(nèi)聚組件并顯示代碼自身的結(jié)構(gòu)。
組件圖的主要目的是顯示系統(tǒng)組件間的結(jié)構(gòu)關(guān)系。9.配置圖
uml面向?qū)ο笾信渲脠D描述系統(tǒng)中硬件和軟件的物理配置情況和系統(tǒng)體系結(jié)構(gòu)。
在配置圖中,用結(jié)點(diǎn)表示實(shí)際的物理設(shè)備,如計(jì)算機(jī)和各種外部設(shè)備等,并根據(jù)它們之間的連接關(guān)系,將相應(yīng)的結(jié)點(diǎn)連接起來(lái),并說(shuō)明其連接方式。在結(jié)點(diǎn)里面,說(shuō)明分配給該結(jié)點(diǎn)上運(yùn)行的可執(zhí)行構(gòu)件或?qū)ο?,從而說(shuō)明哪些軟件單元被分配在哪些結(jié)點(diǎn)上運(yùn)行。uml是一種軟件建模語(yǔ)言,可以對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模。在關(guān)注它建模特性的同時(shí)更要關(guān)注它的過(guò)程特性--在什么時(shí)間做什么工作,用什么模型,讓哪些人來(lái)做。對(duì)系統(tǒng)用戶而言,軟件的開發(fā)模型向他們描述了軟件開發(fā)者對(duì)軟件系統(tǒng)需求的理解。讓系統(tǒng)用戶查看軟件對(duì)象模型并且找到其中的問(wèn)題,可以使開發(fā)者不至于從一開始就發(fā)生錯(cuò)誤。對(duì)軟件開發(fā)而言,軟件的對(duì)象模型有助于他們對(duì)軟件的需求以及系統(tǒng)的架構(gòu)和功能進(jìn)行溝通。對(duì)軟件的維護(hù)和技術(shù)支持者而言,在軟件系統(tǒng)開始運(yùn)行后的相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),軟件的對(duì)象模型能夠幫助他們理解程序的架構(gòu)和功能,迅速地對(duì)軟件所出現(xiàn)的問(wèn)題進(jìn)行修復(fù)。建模并不是僅對(duì)大型的軟件系統(tǒng),甚至一個(gè)小型的留言本也能從建模的過(guò)程中受益。利用uml可以有效地解決軟件設(shè)計(jì)和分析過(guò)程中的溝通和交流問(wèn)題,可以高效的了解整個(gè)系統(tǒng)結(jié)構(gòu),并且在設(shè)計(jì)之初就將軟件的設(shè)計(jì)結(jié)構(gòu)和思想固化在紙上有利于規(guī)避項(xiàng)目實(shí)施 過(guò)程中程序員離開的風(fēng)險(xiǎn)。uml可以貫穿軟件開發(fā)周期中的沒(méi)一個(gè)階段,在開發(fā)階段,他可以用于說(shuō)明、可視化、構(gòu)建和書寫面向?qū)ο筌浖破返脑O(shè)計(jì)語(yǔ)言。uml能貫穿整個(gè)軟件開發(fā)過(guò)程是因?yàn)樵诿總€(gè)階段都能夠提供相應(yīng)相應(yīng)的圖形來(lái)對(duì)應(yīng),使得改變需求,設(shè)計(jì)代碼,測(cè)試分析能變得相對(duì)簡(jiǎn)單。在需求分析過(guò)程中,應(yīng)該分為兩個(gè)過(guò)程:1 需求的獲取
2、需求的分析。需求的獲取,往往不受到重視,在網(wǎng)上經(jīng)常看到有人說(shuō),特別是國(guó)內(nèi)目前的情況,項(xiàng)目工期緊,公司往往想方設(shè)法先把項(xiàng)目拿下來(lái),然后就拿自己公司 以往做過(guò)的項(xiàng)目做藍(lán)本,然后再根據(jù)顧客的需求改動(dòng),再次開發(fā),測(cè)試,交付就完工了。但如果需求的獲取,做不好,往往對(duì)后面的步驟流程造成很大的影響,造成 太多的改動(dòng)和損失。所以為了得到更好的需求,使用uml建模能變得相對(duì)簡(jiǎn)單。例如需求的用例圖對(duì)系統(tǒng)的功能模型的搭建。用例間的關(guān)系有包含、擴(kuò)展、泛化三類。用例圖包括角色、用例和關(guān) 系。角色可以有角色的描述,用例可以有用例的描述,這些描述在交流或評(píng)審中會(huì)非常有用。用例可以泛化,泛化用例具有基本用例的功能,還可以做得更多。角色 也可以泛化,泛化角色能執(zhí)行原角色能執(zhí)行的所有用例,還可以執(zhí)行更多的用例。除了基本用例,角色不能與包含用例、擴(kuò)展用例和泛化用例有聯(lián)系。一個(gè)用例可以 對(duì)應(yīng)一個(gè)類圖。增、刪、改、查一般來(lái)說(shuō)對(duì)于大多數(shù)應(yīng)用做為一個(gè)簡(jiǎn)單的操作即可,不必要作為一個(gè)用例來(lái)分析。篇三:uml實(shí)訓(xùn)總結(jié) 實(shí)訓(xùn)總結(jié)(收獲與體會(huì))
通過(guò)一個(gè)學(xué)期的uml學(xué)習(xí),我從書本上獲取了基本的理論知識(shí),而真正的學(xué)以致用,將書本理論知識(shí)運(yùn)用到實(shí)際的過(guò)程,是這次uml實(shí)訓(xùn)的體現(xiàn)。
三個(gè)周的uml實(shí)訓(xùn),主要是圍繞著一個(gè)實(shí)訓(xùn)題目“基于uml系統(tǒng)需求分析與設(shè)計(jì)--合倍利業(yè)務(wù)流管理系統(tǒng)”進(jìn)行的,以小組為單位進(jìn)行文檔的編寫,其中還對(duì)各種流程圖、類圖、用例圖等的繪制,整個(gè)過(guò)程設(shè)計(jì)了知識(shí)的方方面面。從中讓我認(rèn)識(shí)到uml的作用和運(yùn)作模式以及方法,它是一種統(tǒng)一建模的標(biāo)準(zhǔn)語(yǔ)言,現(xiàn)在對(duì)于大多數(shù)軟件開發(fā)來(lái)說(shuō),都使用uml作為建模語(yǔ)言,形成了統(tǒng)一的標(biāo)準(zhǔn)。它是圖形化的的語(yǔ)言,可以很直觀的描述一個(gè)事物的狀態(tài)、行為與特征,很好的說(shuō)明與表達(dá)了“合貝利任務(wù)管理”這個(gè)系統(tǒng)。總之,在我看來(lái),uml是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用建模語(yǔ)言。融入軟件工程領(lǐng)域的心思想、新方法和新技術(shù),作用域不限于支持面向?qū)ο蟮姆治龊驮O(shè)計(jì),也不單純是一種方法,僅僅是一組符號(hào)而已,它可以對(duì)任何具有靜態(tài)機(jī)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模,所以我很喜歡適用uml,在今后的學(xué)習(xí)中,我還會(huì)進(jìn)一步對(duì)該模型的學(xué)習(xí),因?yàn)樗奖?、?jiǎn)潔、干凈、清爽,直觀形象,把整個(gè)軟件系統(tǒng)的開發(fā)流程都融入進(jìn)去。
這次實(shí)訓(xùn)過(guò)程中,文檔方面的編寫,遇到了很多的問(wèn)題,這些問(wèn)題主要是對(duì)基礎(chǔ)知識(shí)的理解和把握不夠,不能融會(huì)貫通和學(xué)以致用,有時(shí)遇到困難的時(shí)候真的不知如何著手解決,但是,我始終相信的那句話“讀萬(wàn)卷書,不如行萬(wàn)里路,行萬(wàn)里路不如名師指路”。所以,當(dāng)遇到自己模糊和自己難以解決的問(wèn)題時(shí),向指導(dǎo)老師和懂的同學(xué)請(qǐng)教,幫助解決我遇到的問(wèn)題,經(jīng)過(guò)他們的講解后,我下來(lái)自己在分析,在動(dòng)手,從不理解到理解,從不會(huì)到會(huì),從懂到懂,這是一個(gè)讓我學(xué)習(xí)愉快的過(guò)程,在這個(gè)過(guò)程中,既可以豐富了自己的知識(shí),還可以和老師和同學(xué)進(jìn)行有效地方溝通。
在這次實(shí)訓(xùn)過(guò)程中,感觸最深的也就是合作精神了。獨(dú)木難成林,單槍匹馬,那是最錯(cuò)誤的思想和做法。這次我是深有感觸了。對(duì)于一個(gè)系統(tǒng)的分析,到最終項(xiàng)目的完成,需要分析每個(gè)文檔,然后在寫出紙質(zhì)的文檔,而在每個(gè)文檔中,內(nèi)容比較多,分析也要求比較到位,所以單獨(dú)憑借一個(gè)人去完成,似乎有點(diǎn)困難,于是我們小組,將每個(gè)文檔進(jìn)行分析,能獨(dú)立成塊就分配給每一個(gè)人,這樣,每個(gè)人都有自己的任務(wù),誰(shuí)也不會(huì)閑著,既學(xué)到了知識(shí),也充實(shí)了自己。另外一點(diǎn),就是我深深體會(huì)到了積累知識(shí)的重要性。在實(shí)訓(xùn)當(dāng)中我們遇到了不少難題,但是經(jīng)過(guò)我們大家的討論和老師細(xì)心的一一指導(dǎo),問(wèn)題得到了解決。兩個(gè)月的實(shí)訓(xùn)結(jié)束了,收獲頗豐,同時(shí)也更深刻的認(rèn)識(shí)到要做一個(gè)合格的程序員并非我以前想像的那么容易,最重要的還是細(xì)致嚴(yán)謹(jǐn)。社會(huì)是不會(huì)要一個(gè)一無(wú)是處的人的,所以我們要更多更快地從一個(gè)學(xué)生向工作者轉(zhuǎn)變,總的來(lái)說(shuō)我對(duì)這次實(shí)習(xí)還是比較滿意的,它使我學(xué)到了很多東西,為我以后的學(xué)習(xí)做了引導(dǎo),點(diǎn)明了方向。實(shí)訓(xùn)的日子即將結(jié)束,回想這一個(gè)過(guò)程,有過(guò)痛苦,有過(guò)煩惱,有過(guò)喜悅和有過(guò)成功。痛苦煩惱的是自己對(duì)所學(xué)書本知識(shí)掌握得不是很扎實(shí),面對(duì)著從書本上學(xué)到的知識(shí)與實(shí)際聯(lián)系不起來(lái),總結(jié)起來(lái)就是自己的動(dòng)手練習(xí)的時(shí)間太少。而喜悅的是,在做的過(guò)程中遇到了困難和問(wèn)題,主動(dòng)向老師和會(huì)的同學(xué)請(qǐng)教,然后再做,直至做正確做成功后的那種喜悅。
團(tuán)隊(duì)的力量是無(wú)窮的,通過(guò)組員的共同努力,完成了實(shí)訓(xùn)項(xiàng)目。雖然,我們這組的項(xiàng)目存在著諸多的不足和缺點(diǎn),但這正是以后學(xué)習(xí)和工作需要彌補(bǔ)的。這次實(shí)訓(xùn)將為我以后進(jìn)入社會(huì)提過(guò)了一筆寶貴的財(cái)富,是對(duì)我能力的一個(gè)見證。最后,不得不感謝指導(dǎo)教師熊飛老師的辛勤指導(dǎo),和小組成員的共同努力!篇四:uml課設(shè)心得
六月23號(hào)至六月27號(hào),是我們班進(jìn)行uml專用周課程設(shè)計(jì)的時(shí)間,雖然時(shí)間并不是很長(zhǎng),只有短短的一個(gè)星期而已,但是讓我受益匪淺,通過(guò)這次的uml課程設(shè)計(jì),使我所學(xué)的書本知識(shí)得到了全面的檢驗(yàn),也讓我對(duì)這門課程有了更加深厚的體會(huì)。
這次課程設(shè)計(jì)我們沒(méi)有另外選題,而是在我們之前做過(guò)的系統(tǒng)之上加以完善和改進(jìn)?,F(xiàn)在看看之前提交的作品,確實(shí)不近人意;但經(jīng)過(guò)在網(wǎng)上的不斷查找資料,終于還是將它完成。之前我做的系統(tǒng)狀態(tài)圖和活動(dòng)圖,為了鍛煉自己這次選擇了交互圖(也就是時(shí)序圖和協(xié)作圖)。雖然說(shuō)自己沒(méi)有這方面的經(jīng)驗(yàn),也不是特別熟悉其工作流程,但是有了在網(wǎng)上 查找資料得來(lái)的一些基礎(chǔ)和課本里的講解,自己對(duì)它也有了一定初步的認(rèn)識(shí),雖然不是很全面,但還是跌跌撞撞的完成。其中還因?yàn)楹徒M員沒(méi)有溝通好導(dǎo)致用的類不同,費(fèi)了好大勁才改回來(lái)。
最后,這次課設(shè)使我們發(fā)現(xiàn)考試真的并不是最重要,最重要的是能運(yùn)用所學(xué)的知識(shí)。在整個(gè)uml課程的學(xué)習(xí)過(guò)程中,我們突破了傳統(tǒng)學(xué)習(xí)模式,把被動(dòng)接受轉(zhuǎn)變?yōu)橹鲃?dòng)學(xué)習(xí)。不再是用學(xué)到的知識(shí)解題,而是在實(shí)際運(yùn)用時(shí)遇到什么學(xué)什么,重在把知識(shí)應(yīng)用于實(shí)際。立體的運(yùn)用比死板的模仿更有效也更容易接受。下學(xué)期就大四了,也就是大學(xué)校園里的最后一年,而課設(shè)里學(xué)到的動(dòng)手能力和分析問(wèn)題解決問(wèn)題的能力也將是我們畢業(yè)找工作的一大籌碼。篇五:uml學(xué)習(xí)重點(diǎn)匯總
第一章 oom&軟件建模概述 uml(unified modeling language)
通用的標(biāo)準(zhǔn)建模語(yǔ)言,可以對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模。標(biāo)準(zhǔn)建模語(yǔ)言u(píng)ml適用于以面向?qū)ο蠹夹g(shù)來(lái)描述任何類型的系統(tǒng),而且適用于系統(tǒng)開發(fā)的不同階段,從需求規(guī)格描述直至系統(tǒng)完成后的測(cè)試和維護(hù)。
特點(diǎn):統(tǒng)一標(biāo)準(zhǔn),面向?qū)ο螅梢暬?、表達(dá)能力強(qiáng),獨(dú)立于過(guò)程,uml很適合于以體系結(jié)構(gòu)中心的、用例驅(qū)動(dòng)的、迭代式和漸增式的軟件開發(fā)過(guò)程 第二章 uml構(gòu)成 1.uml的“4+1視圖”
從某個(gè)角度觀察系統(tǒng)構(gòu)成系統(tǒng)的一個(gè)視圖,每個(gè)
數(shù)據(jù)庫(kù)
5活動(dòng)圖——泳道圖
泳道將活動(dòng)圖中的活動(dòng)化分為若干組,并把每一視圖都是系統(tǒng)描述的一個(gè)投影,說(shuō)明了系統(tǒng)某個(gè)側(cè)面的特征。(1)用例視圖(2)邏輯視圖(3)組件視圖(4)進(jìn)程視圖(并發(fā)視圖)(5)配置視圖(部署視圖)2.uml的模型圖:
模型圖是一組uml模型元素構(gòu)成的有向圖表示,它通常由一組節(jié)點(diǎn)(uml基本模型元素), 及節(jié)點(diǎn)之間的連線(關(guān)系)組成。(1)用例視圖:用例圖(2)靜態(tài)模型:類圖、對(duì)象圖、包圖、構(gòu)件圖和配置圖(3)動(dòng)態(tài)模型:活動(dòng)圖、順序圖、狀態(tài)圖和協(xié)作圖 3.用例圖.用例圖是表達(dá)用例和參與者及其關(guān)系的載體。關(guān)系包括:關(guān)聯(lián)關(guān)系,依賴關(guān)系 實(shí)現(xiàn)關(guān)系: 3.用例圖(續(xù))——用例之間關(guān)系1(包含與擴(kuò)展).3.用例圖(續(xù))——用例之間關(guān)系2(泛化).3.用例圖(續(xù))——用例與參與者
用例use case:一組用例的實(shí)例(場(chǎng)景),其中每個(gè)實(shí)例都是系統(tǒng)執(zhí)行的一系列活動(dòng),這些活動(dòng)產(chǎn)生了對(duì)每個(gè)參與者而言可觀察的返回值。描述了從參與者角度看系統(tǒng)做了什么
用例模型本身不是面向?qū)ο蠼<夹g(shù)。
參與者actor: 是指在系統(tǒng)外部與系統(tǒng)交互的人或其他系統(tǒng),以某種方式參與了系統(tǒng)內(nèi)用例的執(zhí)行。4.交互式視圖圖(順序圖、協(xié)作圖)1)協(xié)作圖:采用圖的形式展示對(duì)象間的交互 2)順序圖:采用柵欄格式展示對(duì)象間的交互
順序圖與協(xié)作圖的優(yōu)缺點(diǎn): 順序圖
(優(yōu)點(diǎn))強(qiáng)調(diào)消息的時(shí)間順序及對(duì)象生命線(優(yōu)點(diǎn))大量詳細(xì)表示法選項(xiàng)
(缺點(diǎn))強(qiáng)制在右側(cè)增加新對(duì)象,消耗空間大 協(xié)作圖(優(yōu)點(diǎn))強(qiáng)調(diào)結(jié)構(gòu)組織,復(fù)雜交互表達(dá)更容易(優(yōu)點(diǎn))空間利用率高,和方便添加新對(duì)象(缺點(diǎn))不宜查詢消息的順序,表示法選項(xiàng)少 5 活動(dòng)圖
活動(dòng)圖用于表示完成一個(gè)操作所需要的活動(dòng),或者是一個(gè)用例實(shí)例(場(chǎng)景)的活動(dòng)?;顒?dòng)圖適合描述動(dòng)作流和并發(fā)處理行為。5活動(dòng)圖——實(shí)例
組指定給負(fù)責(zé)這組活動(dòng)的業(yè)務(wù)組織即對(duì)象。泳道區(qū)分了負(fù)責(zé)活動(dòng)的對(duì)象,明確地表示了哪些活動(dòng)是由哪些對(duì)象進(jìn)行的。
每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道。6 狀態(tài)圖(狀態(tài)機(jī))
狀態(tài)圖(state diagram)一個(gè)對(duì)象在其生存期間的動(dòng)態(tài)行為,表現(xiàn)對(duì)象響應(yīng)事件所經(jīng)歷的狀態(tài)序列以及伴隨的動(dòng)作。并不是所有類都有相應(yīng)的狀態(tài)圖。狀態(tài)圖只適用于:具有若干個(gè)確定狀態(tài),類的行為在這些狀態(tài)下 會(huì)受到影響且被不同的狀態(tài)改變。
狀態(tài)圖與活動(dòng)圖的區(qū)別與聯(lián)系(1)相同的圖形符號(hào)。
(2)描述一個(gè)系統(tǒng)或?qū)ο笤谏嬷芷诘臓顟B(tài)或行為。(3)描述系統(tǒng)或?qū)ο笤诙噙M(jìn)程中同步或異步操作并發(fā)行為。
(4)用條件分支來(lái)描述系統(tǒng)或?qū)ο蟮男袨榭刂屏鳌B?lián)系:
(2)描述多個(gè)對(duì)象共同完成一個(gè)操作的機(jī)制不同。活動(dòng)圖置于責(zé)任區(qū)(泳道)中,責(zé)任區(qū)將活動(dòng)按責(zé)任目標(biāo)和組織歸屬的原則分類。狀態(tài)圖采用狀態(tài)嵌套方式描述多
對(duì)象協(xié)作。
7、類圖
類圖表示系統(tǒng)中類及類和類之間的關(guān)系,用于對(duì)系統(tǒng)的靜態(tài)結(jié)構(gòu)進(jìn)行描述。類用來(lái)表示系統(tǒng)中需要處理的事物.類的關(guān)系:
(1)關(guān)聯(lián):關(guān)聯(lián)表示兩個(gè)類的對(duì)象之間存在某種語(yǔ)義上的聯(lián)系。
(2)聚集:聚集也稱為聚合,關(guān)聯(lián)的特例 聚集表示類與類之間的關(guān)系是整體與部分的關(guān)系。
(3)泛化:uml中的泛化關(guān)系就是通常所說(shuō)的繼承關(guān)系,它是通用元素和具體元素之間的一種分類關(guān)系。(4)依賴和細(xì)化。2)類的關(guān)系——關(guān)聯(lián)
間具有細(xì)化關(guān)系。細(xì)化用來(lái)協(xié)調(diào)不同階段模型之間的關(guān)系。
構(gòu)件圖由構(gòu)件、接口及構(gòu)件之間的關(guān)系組成。構(gòu)件圖主要用于系統(tǒng)的靜態(tài)實(shí)現(xiàn)視圖模型,通過(guò)構(gòu)件的依賴關(guān)系描述系統(tǒng)軟件的組織結(jié)構(gòu),展示系統(tǒng)不同物理構(gòu)件及其關(guān)系。
系統(tǒng)業(yè)務(wù)模型:業(yè)務(wù)過(guò)程和文檔。系統(tǒng)開發(fā)管理模型:開發(fā)期間產(chǎn)物及關(guān)系 系統(tǒng)實(shí)現(xiàn)模型:系統(tǒng)實(shí)現(xiàn)的構(gòu)件建模
第六章 從需求到設(shè)計(jì) 包圖(package diagram)概念性的模型管理工具,用于將大型的軟件系統(tǒng)中大量的建模元素有序的組織起來(lái)。
運(yùn)用包可以把語(yǔ)義上相近的可能一起變更的模型元素組織在同一個(gè)包中,對(duì)包中的元素作為一個(gè)整體對(duì)待,并 2)類的關(guān)系——聚集
聚集也稱為聚合,是關(guān)聯(lián)的特例。聚集表示類與類之間的關(guān)系是整體與部分的關(guān)系。
(1.共享聚集 聚合:聚集關(guān)系中處于部分方的對(duì)象可同時(shí)參與多個(gè)處于整體方對(duì)象的構(gòu)成.(2.組合聚集.組合:部分類完全隸屬于整體類.部分與整體共存.整體不存在部分也隨之消失。2)類的關(guān)系——泛化 uml中的泛化關(guān)系就是通常所說(shuō)的繼承關(guān)系(或一般與特殊關(guān)系)。2)類的關(guān)系——依賴
兩個(gè)類之間有依賴,表明其中一個(gè)類.客戶類.依賴于另一個(gè)類(供應(yīng)類)所提供的某些服務(wù)。2)類的關(guān)系——細(xì)化
當(dāng)對(duì)同一個(gè)事物在不同抽象層次上描述時(shí),這些描述之
系統(tǒng)物理配置模型:數(shù)據(jù)文件、日志、安裝/卸載等文件且控制它們的可視性和存取。包擁有內(nèi)容,包括類、接構(gòu)件建模 口、組件、節(jié)點(diǎn)、協(xié)同。use case、圖,甚至其它包。集成系統(tǒng)模型:對(duì)api建模,幫助利用已有組件。第三章 unified process(1)構(gòu)件: 系統(tǒng)中遵從并實(shí)現(xiàn)一組接口的物理的、可替換up的構(gòu)成:二維的面向?qū)ο箝_發(fā)模型,兼顧技術(shù)和管理。的軟件模塊。構(gòu)件是軟件復(fù)用的基本物理實(shí)現(xiàn)單元,是工作流:過(guò)程工作流(業(yè)務(wù)建模+需求+分析與設(shè)計(jì)+實(shí)施+邏輯元素模型(類、接口、協(xié)同等)的物理包
測(cè)試+部署)和3個(gè)支持工作流(配置和變更管理+項(xiàng)目管理+環(huán)境)4個(gè)階段:初始+細(xì)化+構(gòu)造+交付 up的迭代策略。
up的迭代開發(fā)策略:以體系結(jié)構(gòu)為中心,以質(zhì)量管理和
風(fēng)險(xiǎn)控制為目標(biāo),以用例為驅(qū)動(dòng),采用迭代式以螺旋上
升的模式進(jìn)行軟件開發(fā)。(2)構(gòu)件的接口:一個(gè)構(gòu)件可以定義對(duì)其他構(gòu)件可見的接第四章 初始階段(inception)口。構(gòu)件間依賴通過(guò)指向所使用的構(gòu)件接口來(lái)表示。接1.初始階段的目標(biāo)和任務(wù):
口描述一個(gè)構(gòu)件能提供服務(wù)的操作,是一個(gè)有操作而無(wú)做適當(dāng)?shù)恼{(diào)研,以形成對(duì)新系統(tǒng)的整體目的和可實(shí)現(xiàn)的類。包括輸入和輸出接口。
行性形成一個(gè)合理的意見。
建立項(xiàng)目的軟件范圍和邊界條件,包括一個(gè)操作“前景”,“接受準(zhǔn)則”和產(chǎn)品中包含什么,不包含什么? 確定核心的用例,這是系統(tǒng)運(yùn)行的主要場(chǎng)景,它將決定系統(tǒng)設(shè)計(jì)的方案
針對(duì)主要的場(chǎng)景,確定或者演示至少一個(gè)備選的系統(tǒng)結(jié)9 部署圖(deployment diagram)
構(gòu)
由節(jié)點(diǎn)和節(jié)點(diǎn)之間的聯(lián)系組成,描述了處理器、設(shè)備和對(duì)整個(gè)項(xiàng)目估計(jì)總成本和計(jì)劃(更詳細(xì)的估計(jì)將安排在軟件構(gòu)件運(yùn)行時(shí)的體系結(jié)構(gòu)。
細(xì)化階段中)估計(jì)可能的風(fēng)險(xiǎn)(不可預(yù)計(jì)性的來(lái)源)為項(xiàng)目準(zhǔn)備支持環(huán)境 2.初始階段的制品: 用例模型+用例描述,詞匯表,補(bǔ)充性規(guī)格說(shuō)明,前景,業(yè)務(wù)規(guī)則 9 部署圖——結(jié)點(diǎn) 3.用例描述
節(jié)點(diǎn)是存在于運(yùn)行時(shí)的代表計(jì)算資源的物理元素,可摘要:簡(jiǎn)介描述用例,通常只給出主成功場(chǎng)景。以代表一種物理硬件設(shè)備或軟件元素。非正式:用若干非正式段落來(lái)描述用例,通常給出多個(gè)包含:處理器和設(shè)備兩種類型 不同場(chǎng)景。
詳述:詳細(xì)描述用例,通常給出所有的步驟及場(chǎng)景,并10 部署圖——結(jié)點(diǎn)間聯(lián)系
給出前置和后置條件等細(xì)節(jié) 節(jié)點(diǎn)間通過(guò)物理連接發(fā)生聯(lián)系,以從硬件方面保證注意:用例描述的方法 系統(tǒng)各節(jié)點(diǎn)之間的協(xié)同運(yùn)行。包括通訊關(guān)聯(lián)、依賴聯(lián)系4.用例的獲取過(guò)程
等。(1)選擇系統(tǒng)邊界(2)尋找參與者(3)確定每個(gè)參與者的目標(biāo)(4)定義用例 5.用例的定義:一般為每一個(gè)用戶目標(biāo)定義用例
確定用例的經(jīng)驗(yàn)方法:
(1)老板測(cè)試:必須看到可量化的價(jià)值(2)ebp:能夠增加可量化的業(yè)務(wù)價(jià)值,并且以持久狀態(tài)留下數(shù)據(jù)(3)規(guī)模測(cè)試: 6.rup與用例
(1)意義:記錄功能需求;迭代計(jì)劃的重要部分,預(yù)算的關(guān)鍵輸入;實(shí)現(xiàn)驅(qū)動(dòng)設(shè)計(jì);影響用戶手冊(cè)和測(cè)試(2)初始階段:確定系統(tǒng)目標(biāo)、范圍、涉眾;絕大部分摘要描述、10~20%詳述;確定是否繼續(xù)開發(fā)(3)細(xì)化階段:80~90%被細(xì)化描述;分多次迭代(4)構(gòu)造階段:多次時(shí)間定量迭代;補(bǔ)充次要用例 第五章 細(xì)化階段(elaboration)1.細(xì)化階段的目標(biāo)和任務(wù): 8.系統(tǒng)順序圖
表述系統(tǒng)是什么,而不解釋它是如何做的,將系統(tǒng)作為黑盒子 系統(tǒng)順序圖
它展示了對(duì)一個(gè)特定的用例,外部的參與者產(chǎn)生的事件,它們的順序以及系統(tǒng)內(nèi)的事件
協(xié)作與耦合從較高層到較低層進(jìn)行,避免從較低層到較高層的耦合第七章 模式與對(duì)象設(shè)計(jì) 1 職責(zé)和職責(zé)驅(qū)動(dòng)設(shè)計(jì) 類的契約和責(zé)任,分為:行為職責(zé)和認(rèn)知職責(zé)。在對(duì)象設(shè)計(jì)中,職責(zé)被分配給對(duì)象,稱為rdd。2 設(shè)計(jì)模式
設(shè)計(jì)模式:對(duì)被用來(lái)在特定場(chǎng)景下解決一般設(shè)計(jì)問(wèn)題的類和相互通信的對(duì)象的描述。即,對(duì)特定問(wèn)題的描述或解決方案。
目的: 易于理解,維護(hù),擴(kuò)展和重用 3 grasp模式 控制器(controller),創(chuàng)建者(creator),信息專家 構(gòu)建核心體系架構(gòu),解決高風(fēng)險(xiǎn)問(wèn)題,完成絕大部分需求的定義,并估計(jì)并估計(jì)總體計(jì)劃和資源,保證架構(gòu),需求和計(jì)劃足夠穩(wěn)定,風(fēng)險(xiǎn)被充分規(guī)避,確定和解決項(xiàng)目中所有與架構(gòu)密切相關(guān)的風(fēng)險(xiǎn),從與架構(gòu)密切相關(guān)的場(chǎng)景中確定一個(gè)基準(zhǔn)體系架構(gòu),產(chǎn)生一個(gè)達(dá)到產(chǎn)品級(jí)質(zhì)量水準(zhǔn)的演化性原型,也可以是一個(gè)或更多個(gè)探索型拋棄型原型,能夠展示基準(zhǔn)的體系架構(gòu)以合理的價(jià)格和合適的時(shí)間支持系統(tǒng)需求,建立一個(gè)支持環(huán)境 2.核心活動(dòng): 盡快定義和驗(yàn)證體系架構(gòu),并確定體系架構(gòu)基線 細(xì)化設(shè)想(vision)為構(gòu)造階段建立詳細(xì)的迭代計(jì)劃并建立基線 細(xì)化開發(fā)用例并將其部署到開發(fā)環(huán)境中 細(xì)化體系架構(gòu)并選擇組件 3.關(guān)鍵思想和實(shí)踐
實(shí)行短時(shí)間定量、風(fēng)險(xiǎn)驅(qū)動(dòng)的迭代,及早開始編程,對(duì)架構(gòu)核心和風(fēng)險(xiǎn)部分進(jìn)行適應(yīng)性設(shè)計(jì),實(shí)現(xiàn)和測(cè)試,盡早,頻繁,實(shí)際的測(cè)試,基于來(lái)自測(cè)試,用戶,開發(fā)者的反饋進(jìn)行調(diào)整,通過(guò)一系列討論會(huì),詳細(xì)編寫大部分用例和其他需求,每個(gè)細(xì)化迭代舉行一次 4.制定迭代計(jì)劃: 通過(guò)風(fēng)險(xiǎn)、覆蓋范圍和關(guān)鍵程度組織需求和迭代。
風(fēng)險(xiǎn):技術(shù)復(fù)雜性;其他因素
覆蓋性:在早期迭代中,系統(tǒng)中主要的部分都有所涉及 關(guān)鍵性:具有高業(yè)務(wù)價(jià)值的功能
在每個(gè)迭代前將用例和特征進(jìn)行排序 迭代單位:(1)用例;(2)場(chǎng)景 5.細(xì)化階段的制品: 領(lǐng)域模型,設(shè)計(jì)模型,軟件架構(gòu)文檔,數(shù)據(jù)模型,用例示意板,用戶界面模型 6.領(lǐng)域模型(domain model)領(lǐng)域模型是對(duì)真實(shí)世界中概念類的表示,而不是軟件對(duì)象的表示。它不是用來(lái)描述軟件類、軟件架構(gòu)領(lǐng)域?qū)踊蛴新氊?zé)軟件對(duì)象的一組圖。
領(lǐng)域模型用一套類圖表示,但類沒(méi)有操作。領(lǐng)域模型可以顯示:領(lǐng)域?qū)ο蠡蛘吒拍铑悾桓拍铑愔g的關(guān)聯(lián);概念類的屬性
概念類來(lái)源:現(xiàn)實(shí)(組織、地點(diǎn)、設(shè)備等)對(duì)象;業(yè)務(wù)(業(yè)務(wù)實(shí)體和概念)對(duì)象;過(guò)程(需要記錄的時(shí)間)對(duì)象。9.操作契約
通過(guò)領(lǐng)域模型中的對(duì)象的狀態(tài)變換(實(shí)例創(chuàng)建或刪除;屬性修改;關(guān)聯(lián)形成或者打破),定義了系統(tǒng)操作執(zhí)行后的詳細(xì)的系統(tǒng)行為.契約co2: enteritem 操作 : enteritem(itemid: itemid, quantity: integer)前提(preconditions): there is a sale underway 后置條件(postconditions): 一個(gè)saleslineitem的實(shí)例sli被創(chuàng)建;sli與當(dāng)前的 sale 對(duì)象相關(guān)聯(lián);sli.quantity的數(shù)值被賦值,依據(jù)itemid的匹配,sli 與productspecification相關(guān)聯(lián) 第六章 從需求到設(shè)計(jì) 1.軟件的邏輯體系結(jié)構(gòu)
邏輯架構(gòu)(logical architecture)是軟件類的宏觀組織結(jié)構(gòu),它將軟件類組織成包(命名空間),子系統(tǒng)和層等。
層(layer):對(duì)類、包或子系統(tǒng)的粗粒度的分組,具有對(duì)系統(tǒng)主要方面加以內(nèi)聚的職責(zé)。較高的層可以調(diào)用較低的層。常見的層:
用戶界,應(yīng)用邏輯和領(lǐng)域?qū)ο?,技術(shù)服務(wù) 典型的分層模式 2.軟件架構(gòu)
架構(gòu)是一組重要決策,其中涉及軟件系統(tǒng)的組織,對(duì)結(jié)構(gòu)元素及其組成系統(tǒng)的接口的選擇,這些元素特定于其相互協(xié)作的行為,這些結(jié)構(gòu)和行為元素到規(guī)模更大的子系統(tǒng)的組成,以及指導(dǎo)該組織結(jié)構(gòu)的架構(gòu)風(fēng)格。3.分層設(shè)計(jì)模式(模型-視圖分離, 如mvc架構(gòu))系統(tǒng)的大型邏輯結(jié)構(gòu)組織為獨(dú)立的,職責(zé)相關(guān)的離散層,具有清晰內(nèi)聚的關(guān)注分離。較低的層是低級(jí)別和一般性服務(wù),較高的層則是與應(yīng)用相關(guān)。(information expert),高度內(nèi)聚(high cohesion),低耦合(low coupling)4 命令——查詢分類原則
執(zhí)行動(dòng)作(更新、調(diào)整)的命令方法,這種方法通常具有改變對(duì)象狀態(tài)等副作用,并且是 void 的(沒(méi)有返回值)。向調(diào)用者返回?cái)?shù)據(jù)的查詢,這種方法沒(méi)有副作用,不會(huì)永久性的改變?nèi)魏螌?duì)象的狀態(tài)。一個(gè)方法不應(yīng)該同時(shí)屬于以上兩種類型。
第三篇:《管理就這幾招》心得體會(huì)
讀《管理就這幾招》心得體會(huì)
一搜關(guān)于管理的書籍,各種五花八門的管理類書籍讓我挑花了眼,大略瀏覽后,思量一番,最終還是選擇了吳群學(xué)的《管理就這幾招》。由于管理實(shí)在是門學(xué)問(wèn),而我連門都未進(jìn),粗粗瀏覽了下《管理就這幾招》,初步了解了部分關(guān)于管理方面的些許方法,深入了解仍需時(shí)間,故在此略略提一下看此書的心得與體會(huì)。
《管理就這幾招》的作者從角色管理、目標(biāo)管理、團(tuán)隊(duì)管理、自我管理四大核心管理問(wèn)題著手,重點(diǎn)論述了中層管理者在企業(yè)中有效的管理方法與多種技巧。板塊“管理之道”與“管理踐行”的理論與實(shí)際相結(jié)合,很值得我這仍處于茫然狀態(tài)的初學(xué)者學(xué)習(xí)與借鑒。
首先,作為管理者,要清楚認(rèn)識(shí)到自己的夾心角色地位,對(duì)上層是下屬和執(zhí)行人、對(duì)平級(jí)是同事和合作人、對(duì)下層是上司和決策人。應(yīng)清楚自己的定位,了解自己的工作職責(zé)和范圍,適當(dāng)展示自己的專業(yè)素養(yǎng)和能力,對(duì)工作任務(wù)進(jìn)行分析和判斷并知人善用合理分配。
其次,善于對(duì)目標(biāo)進(jìn)行管理,確認(rèn)每個(gè)人的責(zé)任分工,分解目標(biāo)層級(jí)把控大方向來(lái),利用小目標(biāo)的累積來(lái)達(dá)成大目標(biāo)。并在適當(dāng)?shù)碾A段給予評(píng)價(jià)和獎(jiǎng)勵(lì),增強(qiáng)團(tuán)隊(duì)凝聚力。
再是,團(tuán)隊(duì)管理至關(guān)重要。管理者應(yīng)善于整合人力所構(gòu)成的資源,培養(yǎng)團(tuán)隊(duì)的向心力、團(tuán)隊(duì)精神,與團(tuán)隊(duì)人員多進(jìn)行溝通交流,聽取眾人意見,適當(dāng)大膽授權(quán),量才使用最為重要,即在合適的時(shí)間把核實(shí)的人用在合適的崗位,選對(duì)人做對(duì)事。眾人拾柴火焰高,打造一個(gè)好團(tuán)隊(duì)方能更好、更快的完成目標(biāo)。
在學(xué)習(xí)工作管理時(shí),也應(yīng)對(duì)自我進(jìn)行管理。書中介紹了SWOT(strength、weakness、opportunity、threat)分析方法對(duì)自己進(jìn)行分析,了解自己的優(yōu)勢(shì)、弱勢(shì),及找出職業(yè)機(jī)會(huì)和威脅。
以上是我初步看《管理就這幾招》的心得,也算是讀書筆記吧,讓我初步了解管理者應(yīng)該從哪方面入手及提升。以后會(huì)再深入的去揣摩、理解這本書,相信能帶給我更多的感觸和體會(huì)。
第四篇:《豐田就這幾招》讀后感
《豐田就這幾招》讀后感
本書通過(guò)幽默文字與精妙畫面的完美組合,簡(jiǎn)明扼要地呈現(xiàn)了原本艱深繁復(fù)的TPS的精髓,看罷讓人茅塞頓開,實(shí)為快速全面了解TPS的經(jīng)典入門讀本。本書,主要講解以下幾方面的精彩內(nèi)容:什么是TPS經(jīng)營(yíng); TPS經(jīng)營(yíng)的實(shí)體; TPS經(jīng)營(yíng)的成功事例;TPS經(jīng)營(yíng)的特征; 為了獨(dú)立的TPS經(jīng)營(yíng)等。
通過(guò)對(duì)本書的閱讀,總結(jié)出以下的內(nèi)容和個(gè)人體會(huì):
一、內(nèi)容總結(jié):
1、自動(dòng)化概念:生產(chǎn)環(huán)節(jié)中的某一處發(fā)生了問(wèn)題,所有有關(guān)的生產(chǎn)線就會(huì)全部停止作業(yè)。
2、JIT(Just In Time):無(wú)論是對(duì)買汽車的顧客,還是對(duì)生產(chǎn)的員工,隨時(shí)提供他們所需要的東西,隨時(shí)補(bǔ)充需求但保持零庫(kù)存狀態(tài)。
3、后工程引受:從后道工序領(lǐng)取原材料或半成品,以推進(jìn)整個(gè)工序的一種工作方法。
4、看板方式:信息的共享和傳遞。讓每個(gè)員工都能領(lǐng)到布置其具體工作內(nèi)容的工作看板,并按照看板要求進(jìn)行生產(chǎn),并傳遞到下一生產(chǎn)環(huán)節(jié)。
5、多品種少量生產(chǎn):生產(chǎn)多樣化才能產(chǎn)生效益,按客戶的需要來(lái)引導(dǎo)生產(chǎn)。
6、多技能工化:讓員工從單一的工種,發(fā)展成長(zhǎng)為負(fù)責(zé)兩種以上工作的技能工。
7、持續(xù)的改善:不斷的挑戰(zhàn),不斷的更新,不斷的完善。
8、現(xiàn)場(chǎng)中心:到生產(chǎn)現(xiàn)場(chǎng)去看,徹底排除閉門造車。
9、做事的概念:不能產(chǎn)生附加價(jià)值的事,是浪費(fèi)而不是做事。
10、以人性為中心:相信人要比相信設(shè)備重要,重視人在生產(chǎn)過(guò)程中的價(jià)值。
企業(yè)要實(shí)現(xiàn)TPS經(jīng)營(yíng),必須在認(rèn)識(shí)、設(shè)備、人力、生產(chǎn)方式、管理和經(jīng)營(yíng)等方面,與TPS經(jīng)營(yíng)特點(diǎn)和經(jīng)營(yíng)理念緊密結(jié)合。
文中讓我印象極為深刻的,是講述了豐田生產(chǎn)方式中,如何降低成本提高利潤(rùn),以及如何通過(guò)平準(zhǔn)化生產(chǎn)、杜絕浪費(fèi)、提高效率等,如何將TPS的各種理念穿插和結(jié)合。
在我們的實(shí)際工作中,就可以很好的借鑒。雖然我們工作的產(chǎn)品,不是一個(gè)個(gè)具體的實(shí)物,而是產(chǎn)品、市場(chǎng)、銷售、品牌運(yùn)作的鏈條,但作為一個(gè)工作內(nèi)容,其運(yùn)作過(guò)程中,照樣適用TPS的某些原則和方式。
1、在設(shè)計(jì)產(chǎn)品和流程的過(guò)程中,現(xiàn)場(chǎng)中心的概念會(huì)被強(qiáng)調(diào),只有到生產(chǎn)的現(xiàn)場(chǎng)(生產(chǎn)基層、銷售基層等)去了解,才能設(shè)計(jì)出符合實(shí)際需要的產(chǎn)品組合和流程組合。讓設(shè)計(jì)師了解各個(gè)環(huán)節(jié)是非常重要的,比如培訓(xùn)設(shè)計(jì)師的各項(xiàng)技能(包括:模具、注塑、印刷、裝配、包裝等);讓設(shè)計(jì)師駐外(當(dāng)銷售代表推銷自己的產(chǎn)品等),都會(huì)有效提升產(chǎn)品設(shè)計(jì)出來(lái)的市場(chǎng)競(jìng)爭(zhēng)力;
2、為了實(shí)現(xiàn)生產(chǎn)的平準(zhǔn)化,比如對(duì)工人能力方面會(huì)有更高的要求,這么以來(lái),只有實(shí)現(xiàn)員工的多技能工化,才能最終以平準(zhǔn)化生產(chǎn)方式實(shí)現(xiàn)多品種少量的產(chǎn)品需求。成本取決于生產(chǎn)方式,很多時(shí)候大批量生產(chǎn)看上去了降低了生產(chǎn)過(guò)程成本,但假如這個(gè)會(huì)影響其他產(chǎn)品的斷貨,實(shí)際上會(huì)增加更多的成本降低銷售和利潤(rùn)。只有保證最快滿足市場(chǎng)和客戶需求才是企業(yè)發(fā)展和提升盈利的最好方法。
3、通過(guò)生產(chǎn)平準(zhǔn)化實(shí)現(xiàn)的多品種少量生產(chǎn),不僅滿足了客戶和市場(chǎng)的需求,也會(huì)更有效地減少庫(kù)存,實(shí)現(xiàn)消除浪費(fèi)(消除浪費(fèi)是TPS的核心理念之一)。
4、不降低成本就無(wú)法提高利潤(rùn),其實(shí)售價(jià)是顧客決定的,原來(lái)的方法是以提高售價(jià)來(lái)獲取利潤(rùn)現(xiàn)在已不適合市場(chǎng)發(fā)展了,現(xiàn)在的市場(chǎng)必須靠降低成本來(lái)獲取更高的利潤(rùn)才是正道。其中消除浪費(fèi)對(duì)降低成本也很得要。
陳德暹
第五篇:嵌入式入門激勵(lì)文章
這是一篇嵌入式入門激勵(lì)文章,百度上流傳已久
? 同濟(jì)大學(xué)軟件學(xué)院院長(zhǎng)談嵌入式方向選擇
? 時(shí)間:2007-01-09
? 嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。像我們平常常見到的手機(jī)、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數(shù)字相機(jī)(DC)、數(shù)字?jǐn)z像機(jī)(DV)、U-Disk、機(jī)頂盒(Set Top Box)、高清電視(HDTV)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等都是典型的嵌入式系統(tǒng)。
嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開發(fā)的人有兩類。
一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設(shè)計(jì),有時(shí)要開發(fā)一些與硬件關(guān)系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅(qū)動(dòng)硬件,往上支持操作系統(tǒng)),最初級(jí)的硬件驅(qū)動(dòng)程序等。他們的優(yōu)勢(shì)是對(duì)硬件原理非常清楚,不足是他們更擅長(zhǎng)定義各種硬件接口,但對(duì)復(fù)雜軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復(fù)雜應(yīng)用軟件等)。
另一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。如果我們學(xué)軟件的人對(duì)硬件原理和接口有較好的掌握,我們完全也可寫B(tài)SP和硬件驅(qū)動(dòng)程序。嵌入式硬件設(shè)計(jì)完后,各種功能就全靠軟件來(lái)實(shí)現(xiàn)了,嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作(目前有很多公司將硬件設(shè)計(jì)包給了專門的硬件公司,稍復(fù)雜的硬件都交給臺(tái)灣或國(guó)外公司設(shè)計(jì),國(guó)內(nèi)的硬件設(shè)計(jì)力量很弱,很多嵌入式公司自己只負(fù)責(zé)開發(fā)軟件,因?yàn)楣径贾?,嵌入式產(chǎn)品的差異很大程度在軟件上,在軟件方面是最有“花頭”可做的),所以我們搞軟件的人完全不用擔(dān)心我們?cè)谇度胧绞袌?chǎng)上的用武之地,越是智能設(shè)備越是復(fù)雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢(shì)。
從事嵌入式軟件開發(fā)的好處是:
(1)目前國(guó)內(nèi)外這方面的人都很稀缺。一方面,是因?yàn)檫@一領(lǐng)域入門門檻較高,不僅要懂較底層軟件(例如操作系統(tǒng)級(jí)、驅(qū)動(dòng)程序級(jí)軟件),對(duì)軟件專業(yè)水平要求較高(嵌入式系統(tǒng)對(duì)軟件設(shè)計(jì)的時(shí)間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業(yè)IT人員很難切入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,很多軟硬件技術(shù)出現(xiàn)時(shí)間不長(zhǎng)或正在出現(xiàn)(如ARM處理器、嵌入式操作系統(tǒng)、MPEG技術(shù)、無(wú)線通信協(xié)議等),掌握這些新技術(shù)的人當(dāng)然很找。嵌入式人才稀缺,身價(jià)自然就高,越有經(jīng)驗(yàn)價(jià)格就越高。其實(shí)嵌入式人才稀少,根本原因可能是大多數(shù)人無(wú)條件接觸,這需要相應(yīng)的嵌入式開發(fā)板和軟件,另外需要有經(jīng)驗(yàn)的人進(jìn)行指導(dǎo)開發(fā)流程。
(2)與企業(yè)計(jì)算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強(qiáng)度通常低一些(但收入不低)。搞企業(yè)應(yīng)用軟件的IT企業(yè),這個(gè)用戶的系統(tǒng)搞完了,又得去搞下一個(gè)用戶的,而且每個(gè)用戶的需求和完成時(shí)間都得按客戶要求改變,往往疲于奔命,重復(fù)勞動(dòng)。相比而言,搞嵌入式系統(tǒng)的公司,都有自己的產(chǎn)品計(jì)劃,按自己的節(jié)奏行事。所開發(fā)的產(chǎn)品通常是通用的,不會(huì)因客戶的不同而修改。一個(gè)產(chǎn)品型號(hào)開發(fā)完了,往往有較長(zhǎng)一段空閑時(shí)間(或只是對(duì)軟件進(jìn)行一些小修補(bǔ)),有時(shí)間進(jìn)行充電和休整。另外,從事嵌入式軟件的每個(gè)人工作范圍相對(duì)狹窄,所涉及的專業(yè)技術(shù)范圍就是那些(ARM、RTOS、MPEG、802.11等),時(shí)間長(zhǎng)了這些東西會(huì)越搞越有經(jīng)驗(yàn),賣賣老本,幾句指導(dǎo)也夠讓那些初入道者琢磨半年的。若搞應(yīng)用軟件,可能下一個(gè)客戶要換成一個(gè)完全不同的軟件開發(fā)平臺(tái),那就苦了。
(3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,那么嵌入式是一個(gè)不錯(cuò)的主意,這可不像應(yīng)用軟件那樣容易被盜版。土木學(xué)院有一個(gè)叫啟明星的公司開發(fā)出一個(gè)好象叫“工程e”的掌上PDA(南校區(qū)門口有廣告),施工技術(shù)人員用該P(yáng)DA可當(dāng)場(chǎng)進(jìn)行土木概預(yù)算和其它土木計(jì)算,據(jù)說(shuō)銷路特好。我認(rèn)識(shí)的某大學(xué)老師,他開發(fā)的飯館用的點(diǎn)菜PDA(WinCE平臺(tái),可無(wú)線連網(wǎng)和上網(wǎng)),據(jù)他說(shuō)銷路不錯(cuò),飯館點(diǎn)點(diǎn)PDA讓客戶點(diǎn)菜,多顯派頭檔次。我記得00級(jí)2+2班當(dāng)年有一組同學(xué)在學(xué)Windows程序設(shè)計(jì)課程時(shí)用VC++設(shè)計(jì)了一個(gè)功能很強(qiáng)的點(diǎn)菜系統(tǒng)做為課程項(xiàng)目,當(dāng)時(shí)真想建議他們將這個(gè)軟件做成PDA,估計(jì)會(huì)有些銷路(上?;疖囌灸蠌V場(chǎng)的Macdonald便使用很漂亮的PDA給用戶點(diǎn)食品,像摸像樣的)。這些PDA的硬件設(shè)計(jì)一般都是請(qǐng)其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設(shè)計(jì)軟件就變成自己的產(chǎn)品了。
從事嵌入式軟件開發(fā)的缺點(diǎn)是:
(1)入門起點(diǎn)較高,所用到的技術(shù)往往都有一定難度,若軟硬件基礎(chǔ)不好,特別是操作系統(tǒng)級(jí)軟件功底不深,則可能不適于此行。
(2)這方面的企業(yè)數(shù)量要遠(yuǎn)少于企業(yè)計(jì)算類企業(yè)。特別是從事嵌入式的小企業(yè)數(shù)量較多(小企業(yè)要搞自己的產(chǎn)品創(chuàng)業(yè)),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導(dǎo)體、Microtek、研華、華為、中興通信、上廣電等制造類企業(yè))。這些企業(yè)的習(xí)慣思維方式是到電子、通信等偏硬專業(yè)找人。由于我院以前畢業(yè)生以企業(yè)計(jì)算為主,所以我院與這些企業(yè)聯(lián)系相對(duì)較少。我院正積極努力,目前已與其中部分公司建立了聯(lián)系,爭(zhēng)取今后能有我院同學(xué)到這些企業(yè)中實(shí)習(xí)或就業(yè)。
(3)有少數(shù)公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數(shù)公司也并無(wú)此要求,只要有經(jīng)驗(yàn)即可。
我院同學(xué)若學(xué)習(xí)嵌入式,顯然應(yīng)偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面,應(yīng)是我們的強(qiáng)項(xiàng)。對(duì)于搞嵌入式軟件的人,最重要的技術(shù)顯然是(實(shí)際上很多公司的招聘廣告上就是這樣寫的):
(1)掌握主流嵌入式微處理器的結(jié)構(gòu)與原理
(2)必須掌握一個(gè)嵌入式操作系統(tǒng)
(3)必須熟悉嵌入式軟件開發(fā)流程并至少做過(guò)一個(gè)嵌入式軟件項(xiàng)目。
我院在嵌入式軟件方面最重要的課程包括:
(1)嵌入式微處理器結(jié)構(gòu)與應(yīng)用:這是一門嵌入式硬件基礎(chǔ)課程,我院用這門課取代了傳統(tǒng)的“微機(jī)原理與接口”課程(目前國(guó)內(nèi)已有少部分高校IT專業(yè)這樣做了,因?yàn)橹vx86微機(jī)原理與接口很難找到實(shí)際用處,只為教學(xué)而已)。我們說(shuō)過(guò),嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對(duì)ARM處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省內(nèi)存又運(yùn)行高速的最優(yōu)代碼(嵌入式軟件設(shè)計(jì)特別講究時(shí)空效率),怎么能寫出驅(qū)動(dòng)程序(驅(qū)動(dòng)程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時(shí)都要求熟悉ARM處理器,將來(lái)若同學(xué)到公司中從事嵌入式軟件開發(fā),公司都會(huì)給你一本該設(shè)備的硬件規(guī)格說(shuō)明書(xxx Specification),您必須能看懂其中的內(nèi)存分布和端口使用等最基本的說(shuō)明(就像x86匯編一樣),否則怎么設(shè)計(jì)軟件。有些同學(xué)覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實(shí)驗(yàn)室10月份建好后,您做了一些實(shí)驗(yàn)后就會(huì)覺得看得見摸得著。還有同學(xué)對(duì)ARM匯編不感興趣,以為嵌入式開發(fā)用C語(yǔ)言就足夠了。其實(shí)不應(yīng)僅是將匯編語(yǔ)言當(dāng)成一個(gè)程序設(shè)計(jì)語(yǔ)言,學(xué)匯編主要是為了掌握處理器工作原理的。一個(gè)不熟悉匯編語(yǔ)言的人,怎么能在該處理器寫出最優(yōu)的C語(yǔ)言代碼。在嵌入式開發(fā)的一些關(guān)鍵部分,有時(shí)還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對(duì)速度有極高要求的場(chǎng)合(如DSP處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過(guò)很多公司是這樣做的)。當(dāng)您在一個(gè)嵌入式公司工作時(shí),在查看描述原理的手冊(cè)時(shí),可能很多都是用匯編描述的(我就遇到過(guò)),這是因?yàn)楹芏嘤布O(shè)計(jì)人員只會(huì)寫或者喜歡用匯編描述,此時(shí)您就必須看懂匯編程序,否則軟硬件人員可能就無(wú)法交流。很多嵌入式職位招聘時(shí)都要求熟悉匯編。
[小知識(shí)] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占據(jù)了絕對(duì)主流(資料說(shuō)手機(jī)中幾乎100%都是ARM處理器)。ARM是一個(gè)只賣知識(shí)產(chǎn)權(quán)的公司,目前獲得購(gòu)買了ARM CPU核授權(quán)許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎(chǔ)上進(jìn)行了一些外圍擴(kuò)展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是采用ARM 9內(nèi)核,指令一級(jí)是相同的)。而眾多中小公司又購(gòu)買了這些處理器,設(shè)計(jì)了各種各樣的開發(fā)板,如華恒等國(guó)內(nèi)很多著名嵌入式公司都生產(chǎn)基于Samsung S3C2410的開發(fā)板,供最終用戶使用或供教學(xué)實(shí)驗(yàn)。在ARM這個(gè)食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,而華恒等則是蝦米,最終用戶(想我們要采購(gòu)嵌入式開發(fā)板的實(shí)驗(yàn)室)則是喂蝦米的。Intel早期生產(chǎn)的是低端ARM(Strong ARM,相當(dāng)于ARM 7),現(xiàn)在轉(zhuǎn)向主要生產(chǎn)高端ARM(即Intel Xscale處理器,相當(dāng)于ARM 10,主要用在高端PDA上,如HP和DELL生產(chǎn)的PDA都采用Intel Xscale,價(jià)格較高)。目前應(yīng)用最多的是ARM 7和ARM 9兩類處理器。ARM 7較便宜,可跑uclinux(是一個(gè)不支持高級(jí)內(nèi)存管理功能的嵌入式Linux系統(tǒng))、Vxworks、uc/os II等實(shí)時(shí)操作系統(tǒng),但因處理器不帶內(nèi)存管理單元MMU(無(wú)內(nèi)存分頁(yè)和地址映射機(jī)制,所以不能使用虛擬內(nèi)存),所以不能跑Windows CE,另外通用Linux中的某些內(nèi)存管理功能也不能用在ARM 7上。ARM 9是一個(gè)帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數(shù)功能。以上是我的一點(diǎn)了解,可能有不對(duì)的地方。我們學(xué)院正在建設(shè)的嵌入式實(shí)驗(yàn)室(10月底到貨)包括30套ARM 7系統(tǒng)(擬采用Samsung S3C44b0x開發(fā)板,主要用于嵌入式處理器結(jié)構(gòu)、嵌入式linux課程實(shí)驗(yàn)),10套ARM 9系統(tǒng)(擬采用Samsung S3C2410x開發(fā)板,主要用于Windows CE課程建設(shè)),每套實(shí)驗(yàn)板都配了高速仿真器,價(jià)格都很貴(比我們招標(biāo)的DELL PC還貴),很容易損壞,同學(xué)應(yīng)愛護(hù)使用。
(2)嵌入式操作系統(tǒng)類課程
除了WinCE的實(shí)時(shí)性稍差外,大多數(shù)嵌入式操作系統(tǒng)的實(shí)時(shí)性都很強(qiáng),所以也可稱為實(shí)時(shí)操作系統(tǒng)Real Time Operating System.從事嵌入式的人至少須掌握一個(gè)嵌入式操作系統(tǒng)(當(dāng)然掌握兩個(gè)更好),這在嵌入式的所有技術(shù)中是最為關(guān)鍵的了。目前最重要的RTOS主要包括:
第一類、傳統(tǒng)的經(jīng)典RTOS:最主要的便是Vxworks操作系統(tǒng),以及其Tornado開發(fā)平臺(tái)。Vxworks因出現(xiàn)稍早,實(shí)時(shí)性很強(qiáng)(據(jù)說(shuō)可在1ms內(nèi)響應(yīng)外部事件請(qǐng)求),并且內(nèi)核可極微(據(jù)說(shuō)最小可8K),可靠性較高等,所以在北美,Vxworks占據(jù)了嵌入式系統(tǒng)的多半疆山。特別是在通信設(shè)備等實(shí)時(shí)性要求較高的系統(tǒng)中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術(shù)都和Linux很類似,主要是C語(yǔ)言開發(fā)。像Bell-alcatel、Lucent、華為等通信企業(yè)在開發(fā)產(chǎn)品時(shí),Vxworks用得很多。但Vxworks因價(jià)格很高,所以一些小公司或小產(chǎn)品中往往用不起。目前很多公司都在往嵌入式Linux轉(zhuǎn)(聽說(shuō)華為目前正在這樣轉(zhuǎn))。但無(wú)論如何,Vxworks在一段長(zhǎng)時(shí)間內(nèi)仍是不可動(dòng)搖的。與Vxworks類似的稍有名的實(shí)時(shí)操作系統(tǒng)還有pSOS、QNX、Nucleus等RTOS。
第二類、嵌入式Linux操作系統(tǒng):Linux的前途除作為服務(wù)器操作系統(tǒng)外,最成功的便是在嵌入式領(lǐng)域的應(yīng)用,原因當(dāng)然是免費(fèi)、開源、支持軟件多、呼擁者眾,這樣嵌入式產(chǎn)品成本會(huì)低。Linux本身不是一個(gè)為嵌入式設(shè)計(jì)的操作系統(tǒng),不是微內(nèi)核的,并且實(shí)時(shí)性不強(qiáng)。目前應(yīng)用在嵌入式領(lǐng)域的Linux系統(tǒng)主要有兩類:一類是專為嵌入式設(shè)計(jì)的已被裁減過(guò)的Linux系統(tǒng),最常用的是uClinux(不帶MMU功能),目前占較大應(yīng)用份額,可在ARM7上跑;另一類是跑在ARM 9上的,一般是將Linux 2.4.18內(nèi)核移植在其上,可使用更多的Linux功能(當(dāng)然uClinux更可跑在ARM 9上)。很多人預(yù)測(cè),嵌入式Linux預(yù)計(jì)將占嵌入式操作系統(tǒng)的50%以上份額,非常重要。缺點(diǎn)是熟悉Linux的人太少,開發(fā)難度稍大。另外,目前我們能發(fā)現(xiàn)很多教材和很多大學(xué)都以u(píng)cOS/II為教學(xué)用實(shí)時(shí)操作系統(tǒng),這主要是由于ucOS/II較簡(jiǎn)單,且開源,非常適合入門者學(xué)習(xí)實(shí)時(shí)操作系統(tǒng)原理,但由于ucOS/II功能有限,實(shí)用用得較少,所以我院不將其作為教學(xué)重點(diǎn),要學(xué)習(xí)就應(yīng)學(xué)直接實(shí)用的,比如 uClinux就很實(shí)用。況且熟悉了Linux開發(fā),不僅在嵌入式領(lǐng)域有用,對(duì)開發(fā)Linux應(yīng)用軟件,對(duì)加深操作系統(tǒng)的認(rèn)識(shí)也有幫助,可謂一舉多得。據(jù)我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發(fā),F(xiàn)ujitum則是在自己的處理器上大搞Linux開發(fā)。目前在嵌入式Linux領(lǐng)域,以下幾個(gè)方面的人特別難找,一是能將Linux移植到某個(gè)新型號(hào)的開發(fā)版上;二是能寫Linux驅(qū)動(dòng)程序的人;三是熟悉Linux內(nèi)核裁減和優(yōu)化的人。我院在該嵌入式Linux方面的課程系列是:本科生操作系統(tǒng)必修課,然后是Linux程序設(shè)計(jì)選修課,最后是嵌入式Linux系統(tǒng)選修課。我院在Linux方面目前已有較強(qiáng)力量,魏老師和張老師熟悉Linux開發(fā),金老師和唐老師熟悉Linux系統(tǒng)管理。
第三類、Windows CE嵌入式操作系統(tǒng):Microsoft也看準(zhǔn)了嵌入式的巨大市場(chǎng),MS永遠(yuǎn)是最厲害的,WinCE出來(lái)只有幾年時(shí)間,但目前已占據(jù)了很大市場(chǎng)份額,特別是在PDA、手機(jī)、顯示儀表等界面要求較高或者要求快速開發(fā)的場(chǎng)合,WinCE目前已很流行(據(jù)說(shuō)有一家賣工控機(jī)的公司板子賣得太好,以至來(lái)不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發(fā)平臺(tái)主要為WinCE Platform Builder,有時(shí)也用EVC環(huán)境開發(fā)一些較上層的應(yīng)用,由于WinCE開發(fā)都是大家熟悉的VC++環(huán)境,所以我院學(xué)過(guò)Windows程序設(shè)計(jì)課程的同學(xué)都不會(huì)有多大難度,這也是WinCE容易被人們接受的原因,開發(fā)環(huán)境方便快速,微軟的強(qiáng)大技術(shù)支持,WinCE開發(fā)難度遠(yuǎn)低于嵌入式Linux。對(duì)于急于完成,不想拿嵌入式Linux冒險(xiǎn)的開發(fā)場(chǎng)合,WinCE是最合適了(找嵌入式Linux的人可沒(méi)那么好找的),畢竟公司不能像學(xué)生學(xué)習(xí)那樣試試看,保證開發(fā)成功更重要。根據(jù)不同的側(cè)重點(diǎn),WinCE還有兩個(gè)特殊版本,一個(gè)是MS PocketPC操作系統(tǒng)專用于PDA上(掌上電腦),另一個(gè)是MS SmartPhone操作系統(tǒng)用于智能手機(jī)上(帶PDA功能的手機(jī)),兩者也都屬于WinCE平臺(tái)。在PDA和手機(jī)市場(chǎng)上,除WinCE外,著名的PDA嵌入式操作系統(tǒng)還有Palm OS(因出現(xiàn)很早,很有名)、Symbian等,但在WinCE的強(qiáng)勁沖擊下,Palm和Symbian來(lái)日還能有多長(zhǎng)?我院可能是全國(guó)高校中唯一一家開設(shè)專門的“Windows CE嵌入式操作系統(tǒng)”課程的學(xué)校,這主要是基于以下原因:我院本身前面便有Windows程序設(shè)計(jì)課程,同學(xué)學(xué)過(guò)VC++后再學(xué)WinCE,非常方便自然,通過(guò)學(xué)習(xí)WinCE同樣也可了解嵌入式軟件的一般開發(fā)過(guò)程,對(duì)Linux有懼怕心理的同學(xué)也很合適。很顯然,嵌入式Linux永遠(yuǎn)不可能替代WinCE,而且將來(lái)誰(shuí)占份額大還很難講,畢竟很多人更愿意接受MS的平臺(tái),就像各國(guó)政府都在大力推LINUX已好長(zhǎng)時(shí)間,但您能看到幾個(gè)在PC機(jī)上真正使用LINUX的用戶?據(jù)我觀察,目前在嵌入式平臺(tái)上,LINUX是叫得最響,但還是WinCE實(shí)際用得更多.嵌入式LINUX可能更多地是一些有長(zhǎng)遠(yuǎn)產(chǎn)品計(jì)劃的公司,為降低成本而進(jìn)行長(zhǎng)遠(yuǎn)考慮;二是微軟亞洲研究院對(duì)我院WinCE課程的支持計(jì)劃,我們也很希望將來(lái)我院能有同學(xué)通過(guò)微軟的面試去實(shí)習(xí)。WinCE和多媒體(如MPEG技術(shù))是微軟亞洲工程院目前做得較多的項(xiàng)目領(lǐng)域之一,他們很需要精通WinCE的人。
總結(jié)關(guān)于嵌入式操作系統(tǒng)類課程,若您覺得自己功底較深且能鉆研下去,則可去學(xué)嵌入式Linux;若您覺得自己VC++功底較好且想短平快地學(xué)嵌入式開發(fā),則我院的WinCE課程是最好的選擇。
(3)嵌入式開發(fā)的其它相關(guān)軟件課程
搞嵌入式若能熟悉嵌入式應(yīng)用的一些主要領(lǐng)域,這樣的人更受企業(yè)歡迎。主要的相關(guān)領(lǐng)域包括:
A、數(shù)字圖像壓縮技術(shù):這是嵌入式最重要最熱門的應(yīng)用領(lǐng)域之一,主要是應(yīng)掌握MPEG編解碼算法和技術(shù),如DVD、MP3、PDA、高精電視、機(jī)頂盒等都涉及MPEG高速解碼問(wèn)題。為此,我院已預(yù)訂了一位能開設(shè)數(shù)字圖像處理課程的博士。
B、通信協(xié)議及編程技術(shù):這包括傳統(tǒng)的TCP/IP協(xié)議和熱門的無(wú)線通信協(xié)議。首先,大多數(shù)嵌入式設(shè)備都要連入局域網(wǎng)或Internet,所以首先應(yīng)掌握TCP/IP協(xié)議及其編程,這是需首要掌握的基本技術(shù);其次,無(wú)線通信是目前的大趨勢(shì),所以掌握無(wú)線通信協(xié)議及編程也是是很重要的。無(wú)結(jié)通信協(xié)議包括無(wú)線局域網(wǎng)通信協(xié)議802.11系列,Bluetooth,以及移動(dòng)通信(如GPRS、GSM、CDMA等)。
C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA等。我院有這方面的選修課。
D、DSP技術(shù):DSP是Digital Signal Process數(shù)字信號(hào)處理的意思,DSP處理器通過(guò)硬件實(shí)現(xiàn)數(shù)字信號(hào)處理算法,如高速數(shù)據(jù)采集、壓縮、解壓縮、通信等。數(shù)字信號(hào)處理是電子、通信等硬件專業(yè)的課程,對(duì)于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號(hào)與系統(tǒng)、數(shù)字信號(hào)處理等課程基礎(chǔ),對(duì)于學(xué)習(xí)MPEG編解碼原理會(huì)有很大幫助。
(4)嵌入式開發(fā)的相關(guān)硬件基礎(chǔ)
對(duì)于軟件工程專業(yè)的學(xué)生,從事嵌入式軟件開發(fā),像數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)等硬件課程是較重要的。另外,匯編語(yǔ)言、C/C++、數(shù)據(jù)結(jié)構(gòu)和算法、特別是操作系統(tǒng)等軟件基礎(chǔ)課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點(diǎn)應(yīng)是在嵌入式軟件,特別操作系統(tǒng)級(jí)軟件,那將是我們的優(yōu)勢(shì)。
我們的研究生里有些是學(xué)電子、通信類專業(yè)過(guò)來(lái)的,有較好的模擬電路和單片機(jī)基礎(chǔ),學(xué)嵌入式非常合適。嵌入式本身就是從單片機(jī)發(fā)展過(guò)來(lái)的,只是單片機(jī)不帶OS,而現(xiàn)在很多嵌入式應(yīng)用越來(lái)越復(fù)雜,以至不得不引入嵌入式操作系統(tǒng)。另外,為追求更高速的信號(hào)處理速度,現(xiàn)在在一些速度要求較高的場(chǎng)合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來(lái)實(shí)現(xiàn),這就涉及到HDL數(shù)字電路設(shè)計(jì)技術(shù)及其FPGA/IP核實(shí)現(xiàn)技術(shù),這方面的人目前市場(chǎng)上也很缺。
(5)題外話
另外,能寫驅(qū)動(dòng)程序的人目前是非常緊缺的(驅(qū)動(dòng)程序也可歸于嵌入式范疇),包括桌面Windows中的DDK開發(fā)環(huán)境和WDM驅(qū)動(dòng)程序。公司每時(shí)每刻都要推出新產(chǎn)品,每一個(gè)新產(chǎn)品出來(lái)了,要能被操作系統(tǒng)所使用,是必須寫驅(qū)動(dòng)程序的。寫驅(qū)動(dòng)程序就必須掌握操作系統(tǒng)(如Windows或Linux)的內(nèi)部工作原理,還涉及到少量硬件知識(shí),難度較大,所以這方面的人很難找。想成為高手的同學(xué),也可從驅(qū)動(dòng)程序方面獲得突破。我可說(shuō)一下自己的經(jīng)歷,三年前我曾短暫地在一家公司寫過(guò)WinCE驅(qū)動(dòng)程序(正是因?yàn)橹肋@方面的人緊缺,所以才要做這方面的事),盡管那以前從未做過(guò)驅(qū)動(dòng)程序,應(yīng)聘那個(gè)職位時(shí)正是看準(zhǔn)了公司是很難招聘到這方面的人,既然都找不到人,驅(qū)動(dòng)還得有人做,這正是可能有機(jī)會(huì)切入這一領(lǐng)域的大好機(jī)會(huì)。面試時(shí)大講自己寫過(guò)多少萬(wàn)行匯編程序,對(duì)計(jì)算機(jī)工作原理如何清楚,簡(jiǎn)歷中又寫著我曾閱讀完兩本關(guān)于Windows Driver Model的兩本英文原版書,寫過(guò)幾個(gè)小型的驅(qū)動(dòng)程序練習(xí)程序(其實(shí)根本沒(méi)寫過(guò),我們的同學(xué)將來(lái)千萬(wàn)不要像我這樣,早練就些過(guò)硬功夫,就不至于淪落到我這等地步,就不用像我那樣去“欺騙”公司了,我這是一個(gè)典型的反面教材),居然一切都PASS(當(dāng)然最重要的是筆試和面試問(wèn)題還說(shuō)得過(guò)去),這只能說(shuō)明這一領(lǐng)域找人的困難程度。公司本就未指望找到搞過(guò)驅(qū)動(dòng)的人,找個(gè)有相關(guān)基礎(chǔ)的人就算不錯(cuò)了。做了以后,發(fā)現(xiàn)也并不是怎樣難的。其實(shí)搞驅(qū)動(dòng)程序的工作是很舒服的,搞完一個(gè)版本就會(huì)空一段時(shí)間,只有等公司新的芯片推出或新的OS出現(xiàn)后,才需要再去開發(fā)新一版驅(qū)動(dòng),那時(shí)有將近一個(gè)月時(shí)間空閑著在等WinCE.NET Beta版推出,準(zhǔn)備將驅(qū)動(dòng)程序升級(jí)到CE.NET上,現(xiàn)在在軟件學(xué)院工作整日忙,無(wú)限懷念那段悠閑時(shí)光。
很巧合,最近本人無(wú)意中再次體會(huì)到了嵌入式的迷人之處。上周我那用了3年的手機(jī)終于不能WORK了。此次更新,除要求有手機(jī)常見功能外,最好有MP3功能(現(xiàn)在很多英語(yǔ)聽力都有MP3文件),最好有英漢詞典,最好還能讀WORD文檔。最后選了個(gè)滿足以上條件的最便宜的手機(jī)DOPOD 515(斬了我2.2K,但想想這也算自己對(duì)嵌入式事業(yè)的支持,這樣便也想開了),算得上最低檔的智能手機(jī)了?;貋?lái)一查,手機(jī)的about顯示,本手機(jī)Processor是ARM,其OS是MS Smartphone(即WinCE.NET 4.2),這么巧合,簡(jiǎn)直可做為學(xué)習(xí)嵌入式課程的產(chǎn)品案例了(等我們的WinCE課程開得有聲有色后,希望能從微軟研究院搞些Smartphone來(lái)開發(fā)開發(fā))。有OS的手機(jī)果然了得,金山詞霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的,PC上的MP3、DOC等居然在download時(shí)都可被自動(dòng)轉(zhuǎn)換成smartphone格式,真是爽。完全可用Windows CE自己開發(fā)一些需要的程序download到自己的手機(jī)上?,F(xiàn)在市面銷售PDA智能手機(jī)火爆,MS總是財(cái)源滾滾。但我已發(fā)現(xiàn)國(guó)產(chǎn)的ARM+LINUX手機(jī)出現(xiàn)在市面上,價(jià)格只1.2K。
要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每個(gè)搞嵌入式的人都可選一條路,條條大路通羅馬。
? 來(lái)源:嵌入式在線
? 嵌入式軟件工程師 培訓(xùn)獲得政府補(bǔ)助
? 嵌入式在線 時(shí)間:2007-04-02
? 為促進(jìn)我國(guó)服務(wù)外包產(chǎn)業(yè)健康快速發(fā)展,加強(qiáng)行業(yè)的能力建設(shè),加大對(duì)服務(wù)外包人才培養(yǎng)的支持力度,國(guó)家商務(wù)部門設(shè)立“千百十工程”服務(wù)外包人才培訓(xùn)資金,并對(duì)中國(guó)服務(wù)外包基地上海示范區(qū)(漕河涇開發(fā)區(qū))舉辦的服務(wù)外包人才培訓(xùn)予以支持。
開發(fā)區(qū)軟件園培訓(xùn)中心舉辦的嵌入式軟件工程師培訓(xùn)作為服務(wù)外包領(lǐng)域的緊缺人才得到了該專項(xiàng)資金資助,對(duì)符合條件的學(xué)員提供高額補(bǔ)貼。
由于在通訊、醫(yī)療、航天航空、過(guò)程控制等眾多領(lǐng)域的廣泛應(yīng)用,被稱為PC和因特網(wǎng)之后偉大發(fā)明的嵌入式智能,已成為繼IT網(wǎng)絡(luò)技術(shù)后又一迅速發(fā)展的技術(shù)方向。但同其快速發(fā)展相比,教育機(jī)構(gòu)技術(shù)和培養(yǎng)的相對(duì)滯后,使得嵌入式軟件人才存在巨大缺口。
在未來(lái)相當(dāng)長(zhǎng)的時(shí)間內(nèi),嵌入式軟件人才都將是企業(yè)爭(zhēng)奪的目標(biāo),嵌入式軟件工程師也將是最熱門的職業(yè)之一。