《可視化建模與UML》課程設(shè)計結(jié)業(yè)報告_第1頁
《可視化建模與UML》課程設(shè)計結(jié)業(yè)報告_第2頁
《可視化建模與UML》課程設(shè)計結(jié)業(yè)報告_第3頁
《可視化建模與UML》課程設(shè)計結(jié)業(yè)報告_第4頁
《可視化建模與UML》課程設(shè)計結(jié)業(yè)報告_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、PAGE 可視化建模與UML課程結(jié)業(yè)報告項(xiàng)目名稱: 大學(xué)生畢業(yè)論文評審系統(tǒng) 專 業(yè): 軟件工程 班 級: 11軟件本(2)班 學(xué) 號: 姓 名: 完成日期: 2014年6月6日 目錄1. 前言介紹 TOC o 1-3 h z u HYPERLINK l _Toc31103 2.大學(xué)生畢業(yè)論文評審系統(tǒng)的需求分析 PAGEREF _Toc31103 3 HYPERLINK l _Toc8652 2.1 系統(tǒng)需求的項(xiàng)目背景4 HYPERLINK l _Toc9896 2.2 系統(tǒng)的需求分析4 HYPERLINK l _Toc10618 2.3 系統(tǒng)的功能模塊圖5 HYPERLINK l _Toc32

2、62 3. 用例圖設(shè)計建模 PAGEREF _Toc3262 5 HYPERLINK l _Toc28351 3.1 創(chuàng)建用例圖 PAGEREF _Toc28351 5 HYPERLINK l _Toc10953 3.2 用例說明 PAGEREF _Toc10953 6 HYPERLINK l _Toc30813 4. 類圖設(shè)計建模 PAGEREF _Toc30813 7 HYPERLINK l _Toc31161 4.1 類圖簡介 PAGEREF _Toc31161 7 HYPERLINK l _Toc10696 4.2 建立類圖8 HYPERLINK l _Toc26085 4.3 類圖說

3、明10 HYPERLINK l _Toc21156 5. 交互建模 PAGEREF _Toc21156 10 HYPERLINK l _Toc22357 5.1 交互建模簡介 PAGEREF _Toc22357 10 HYPERLINK l _Toc7655 5.2 建立順序圖11 HYPERLINK l _Toc27636 5.3 建立協(xié)作圖 PAGEREF _Toc27636 16 HYPERLINK l _Toc32115 6. 行為建模 PAGEREF _Toc32115 17 HYPERLINK l _Toc29492 6.1 行為建模簡介 PAGEREF _Toc29492 17

4、HYPERLINK l _Toc31651 6.2 建立狀態(tài)圖18 HYPERLINK l _Toc11249 6.3 建立活動圖 PAGEREF _Toc11249 19 HYPERLINK l _Toc27176 7. 學(xué)習(xí)小結(jié) PAGEREF _Toc27176 20 HYPERLINK l _Toc32334 7.1.建模 PAGEREF _Toc32334 20 HYPERLINK l _Toc32334 7.2 UML介紹 22 HYPERLINK l _Toc32334 7.3.公共機(jī)制 PAGEREF _Toc32334 20 HYPERLINK l _Toc32334 7.4

5、. 圖24 HYPERLINK l _Toc32334 7.5 類圖24 HYPERLINK l _Toc24810 7.6 學(xué)習(xí)心得25 HYPERLINK l _Toc31138 8. 參考文獻(xiàn) PAGEREF _Toc31138 26前言介紹 需求工程是隨著軟件工程的發(fā)展而產(chǎn)生的。在軟件開發(fā)的初級時期,軟件規(guī)模不大,軟件開發(fā)所關(guān)注的是代碼編寫,軟件需求很少受到重視。在引入軟件生命周期的概念后,需求工程成了軟件生命周期的第一階段。隨著軟件系統(tǒng)規(guī)模的擴(kuò)大,以及為了解決“軟件危機(jī)”而引起的軟件工程技術(shù)與方法的發(fā)展,需求工程在整個軟件開發(fā)與維護(hù)過程中就顯得越來越重要了。人們普遍認(rèn)識到,充分研究軟

6、件需求可以避免開發(fā)系統(tǒng)時的盲目性,能夠直接關(guān)系到軟件的成功與否。隨著軟件工程的研究和應(yīng)用的逐漸深入,人們同時認(rèn)識到軟件需求不再僅限于軟件開發(fā)的最初階段,它貫穿于系統(tǒng)開發(fā)的整個生命周期。許多項(xiàng)目開發(fā)過程中出現(xiàn)的諸多問題都與需求工程階段沒有合理完整的進(jìn)行需求獲取、分析有關(guān)。由此可見,需求工程對于項(xiàng)目開發(fā)尤其是大型項(xiàng)目的研發(fā)的至關(guān)重要的作用。 需求工程的準(zhǔn)確含義,沒有嚴(yán)格統(tǒng)一的表述。一種比較常用的解釋如下: 需求工程是指應(yīng)用已證實(shí)有效的技術(shù)、方法進(jìn)行需求分析、確定客戶需求,幫助分析人員理解問題并確定目標(biāo)系統(tǒng)的所有外部特征的一門學(xué)科;它通過合適的工具和記號系統(tǒng)地描述待開發(fā)系統(tǒng)及其行為特征和相關(guān)約束,形

7、成需求文檔;并對用戶不斷變化的需求演進(jìn)給與支持。需求工程可以分為需求開發(fā)和需求管理兩部分。需求開發(fā)包括需求獲取、需求分析、編寫需求規(guī)格、需求驗(yàn)證;這些子學(xué)科涵蓋了為軟件和軟件相關(guān)產(chǎn)品收集、評估和記錄需求相關(guān)的所有活動。需求管理包括需求變更控制、版本控制、需求跟蹤、需求狀態(tài)跟蹤等內(nèi)容。 另一方面,領(lǐng)域用戶通常不知道如何按軟件開發(fā)的要求去描述他們的需求,而且,他們一開始常常對自己的需求僅有一個模糊的認(rèn)識,如果沒有任何提示和引導(dǎo),就不可能立刻給出正確而完整的需求描述。確定系統(tǒng)的需求是一個連續(xù)的過程,開發(fā)人員在開發(fā)系統(tǒng)之前不可能完全詳細(xì)地說明一個系統(tǒng)的真正需求。一個不完整的需求獲取和管理過程,會對項(xiàng)目

8、的生命周期產(chǎn)生多米諾骨牌的效應(yīng)。用戶需求的缺失會導(dǎo)致系統(tǒng)需求的缺失,從而導(dǎo)致設(shè)計單元及功能的缺失,并最終導(dǎo)致系統(tǒng)不能實(shí)現(xiàn)預(yù)期的功能,或者需要在后期花費(fèi)較大的代價來修正或補(bǔ)充這些功能,導(dǎo)致項(xiàng)目延期、產(chǎn)生嚴(yán)重的質(zhì)量問題或超出項(xiàng)目預(yù)算。因此,及時、準(zhǔn)確地獲取用戶需求,是決定軟件項(xiàng)目能否取得成功的關(guān)鍵步驟之一。PAGE 392.大學(xué)生畢業(yè)論文評審系統(tǒng)的需求分析2.1 系統(tǒng)需求的項(xiàng)目背景伴隨著我國高等教育的逐漸擴(kuò)展,每屆的大學(xué)身越來越多,因此每年在高校畢業(yè)的大學(xué)生也越來越多,因而每年的高校畢業(yè)論文的評審工作越發(fā)復(fù)雜。畢業(yè)生都要經(jīng)歷關(guān)注論文選題、選題、提交論文、和導(dǎo)師溝通交流、修改稿件、定稿等過程,導(dǎo)師要

9、經(jīng)歷開題、確定學(xué)生、評閱每份稿件、定稿、評分等多個環(huán)節(jié)。我們可以發(fā)現(xiàn),以往的大學(xué)生論文評審的過程很熟悉但處理起來卻很繁瑣,耗費(fèi)著大量的精力。因此,建立一個統(tǒng)一的畢業(yè)論文處理系統(tǒng)是十分必要的,不但可以減輕老師和學(xué)生的負(fù)擔(dān),使得繁瑣的流程有了一個統(tǒng)一的流水線似的發(fā)展,不容易在過程中出現(xiàn)錯誤。2.2 系統(tǒng)的需求分析大學(xué)生論文評審系統(tǒng)的需求分析反應(yīng)系統(tǒng)能夠完成的各項(xiàng)功能,并且能夠簡單明了地把要各項(xiàng)的功能展示給所有參與人員。大學(xué)生論文評審系統(tǒng)的功能分析如下所示:系統(tǒng)只針對系統(tǒng)管理員、畢業(yè)生以及評審老師這三類用戶。系統(tǒng)允許用戶注冊各自的賬號。系統(tǒng)分配用戶權(quán)限。系統(tǒng)允許用戶登錄。系統(tǒng)允許修改個人賬號信息。系

10、統(tǒng)提供評審老師開題。系統(tǒng)允許畢業(yè)生查看開題信息以及選題。系統(tǒng)提示畢業(yè)生檢查并確定將要提交的論文。系統(tǒng)允許評審老師批閱論文。系統(tǒng)允許評審老師給畢業(yè)生論文評分。系統(tǒng)允許系統(tǒng)管理員錄入畢業(yè)生論文答辯的成績。系統(tǒng)允許系統(tǒng)管理員對畢業(yè)生和評審老師的用戶信息進(jìn)行增刪查改。該系統(tǒng)允許系統(tǒng)管理員公布畢業(yè)生論文評審成績該系統(tǒng)允許畢業(yè)生查詢個人論文的評審結(jié)果成績。2.3 系統(tǒng)的功能模塊圖 大學(xué)生畢業(yè)論文評審系統(tǒng)的功能模塊圖反映了大學(xué)生畢業(yè)論文評審系統(tǒng)的功能及各個功能之間的關(guān)系,具體的內(nèi)容如圖2.3.1。圖2.3.1 大學(xué)生畢業(yè)論文評審系統(tǒng)功能模塊圖【功能模塊圖說明】 1)大學(xué)生畢業(yè)論文評審系統(tǒng):包括用戶管理、選題

11、管理、師生互動管理和論文管理四個模塊。 2)用戶管理:主要用于用戶登入以及用戶的信息管理。 3)選題管理:用于畢業(yè)生導(dǎo)師開題和畢業(yè)生選題。 4)師生互動管理:師生之間方便交流。 5)論文管理:用于對每位畢業(yè)生用戶的論文修改、提交、批閱管理、成績查詢。 6)用戶登錄管理:按照畢業(yè)生、評審老師、管理員三類用戶的不同權(quán)限登錄系統(tǒng)。 7)用戶信息管理:管理員可以對畢業(yè)生、評審老師兩類用戶的信息進(jìn)行增刪查改。 8)評審老師開題:評審老師在系統(tǒng)中公布選題。 9)畢業(yè)生選題管理:畢業(yè)生從公布的選題中選題。 10)畢業(yè)生留言:畢業(yè)生在論文中遇到的問題,可以在線給自己老師留言。 11)評審老師回復(fù):老師在進(jìn)入系

12、統(tǒng)后,發(fā)現(xiàn)學(xué)生留言,及時回復(fù)。 12)論文提交管理:畢業(yè)生最多提交論文次數(shù)最多三次,以最后一次為終稿,最終稿不可在修改。 13)論文批閱管理:評審老師對畢業(yè)生提交的論文進(jìn)行批閱,評分。 14)成績管理:論文評審的總成績?yōu)閷?dǎo)師評定論文分?jǐn)?shù)的60%加上畢業(yè)生論文答辯分?jǐn)?shù)的40%。3.用例圖設(shè)計建模3.1 創(chuàng)建用例圖系統(tǒng)主要由 畢業(yè)生、評審老師、系統(tǒng)管理員這三個二元關(guān)聯(lián)類的事項(xiàng)組成,畢業(yè)生與大學(xué)生論文評審系統(tǒng)之間的選題管理事項(xiàng),以及畢業(yè)生導(dǎo)師與大學(xué)生論文評審系統(tǒng)管理事項(xiàng)。選題者即畢業(yè)生,代表做論文行為。開題者即導(dǎo)師,它代表公布選題、評閱論文、論文評分。系統(tǒng)服務(wù)器管理員操作,它模擬管理員與畢業(yè)生和畢業(yè)

13、生導(dǎo)師之間的中介,驗(yàn)證的行為,整個系統(tǒng)在服務(wù)器、工作站(畢業(yè)生、畢業(yè)生導(dǎo)師)運(yùn)行,因此整個系統(tǒng)參與者是畢業(yè)生、畢業(yè)生導(dǎo)師、管理員。通過對系統(tǒng)的用例進(jìn)行分析,建立用例圖如下圖3.1.1。圖3.1.1 大學(xué)生畢業(yè)論文評審系統(tǒng)用例圖3.2 用例說明登錄系統(tǒng)用例,用于方便要進(jìn)行操作并且沒有登錄系統(tǒng)的用戶登錄系統(tǒng)。溝通交流用例,方便畢業(yè)生和畢業(yè)生導(dǎo)師之間就論文問題可以在線交流。論文選題用例,用于畢業(yè)生選取畢業(yè)論文論題。提交稿件用例,用于畢業(yè)生向系統(tǒng)提交論文。查詢成績用例,用于畢業(yè)生查詢自己的成績詳情。論文總成績用例,用于系統(tǒng)計算論文的總成績。答辯分?jǐn)?shù)錄入用例,用于系統(tǒng)管理員向系統(tǒng)錄入答辯成績。維護(hù)用戶信

14、息用例,用于管理員管理畢業(yè)生和畢業(yè)生導(dǎo)師的用戶信息。論文開題用例,用于畢業(yè)生導(dǎo)師公布論文論題。評分。4.類圖設(shè)計建模4.1 類圖簡介類圖是最常用的UML圖,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計。類圖最基本的元素是類或者接口。類圖一般包含3個組成部分。第一個是類名;第二個是屬性(attributes);第三個是該類提供的方法,類名部分是不能省略的,其他組成部分可以省略。4.2 建立類圖 (1)畢業(yè)生類:該對象直接與服務(wù)器聯(lián)系,登錄、驗(yàn)證身份,得到論文選題的唯一身份,然后在規(guī)定的時間內(nèi),確認(rèn)論文題目,之后進(jìn)行論文提交和修改。另可聯(lián)系成績查詢類查詢論文總成績及論文評

15、語等。(2)畢業(yè)生導(dǎo)師類:該對象直接與服務(wù)器聯(lián)系,登錄、驗(yàn)證身份,在一定的時間內(nèi)論文開題并進(jìn)行論題公布,對畢業(yè)生提交的論文進(jìn)行評閱并給出評語,并對畢業(yè)生終稿進(jìn)行評分。(3)管理員類:此類對象直接與系統(tǒng)進(jìn)行交互,與畢業(yè)生類、畢業(yè)生導(dǎo)師類進(jìn)行交互,管理其信息并設(shè)置其權(quán)限,另將導(dǎo)師發(fā)布的考試安排、考試成績及試卷答案上傳至考試記錄供學(xué)生查詢。(4)論文庫類:包括問題論文編號、論文題目、論文提交時間。由管理員和導(dǎo)師類共同維護(hù)修改。(5)論文成績類:包括論文評分、論文答辯分?jǐn)?shù)、總成績?nèi)齻€屬性。畢業(yè)生可依據(jù)學(xué)生編號、論文題目、提交論文時間查詢到相應(yīng)論文分?jǐn)?shù)及試論文評語等信息。(6)交流平臺類:包括畢業(yè)生編號

16、、導(dǎo)師編號、交流信息三個屬性。畢業(yè)生可以通過該類實(shí)現(xiàn)與導(dǎo)師交流互動。(7)公告欄類:包括公告編號、公告信息、公告日期三個屬性。用戶都可以可以通過該類查看公告信息。根據(jù)以上描述,可以發(fā)現(xiàn)該系統(tǒng)中有七個類,類的屬性,根據(jù)類的描述及屬性,畫出系統(tǒng)類圖,具體如下圖4.2.1。圖4.2.1 大學(xué)畢業(yè)論文評審系統(tǒng)類圖4.3 類圖說明根據(jù)大學(xué)生畢業(yè)論文評審系統(tǒng)類圖的分析,在該系統(tǒng)中涉及到的主要類及類的作用如表4.3.1所示。表4.3.1 大學(xué)生畢業(yè)論文評審系統(tǒng)中的類說明類名編號屬性操作畢業(yè)生1學(xué)生賬號、學(xué)生姓名、學(xué)生編號、用戶密碼、班級、聯(lián)系方式登錄、更改信息、論文選題、成績查詢、提交論文、交流互動畢業(yè)生導(dǎo)

17、師2導(dǎo)師賬號、賬號密碼、導(dǎo)師編號、導(dǎo)師姓名、導(dǎo)師聯(lián)系方式登錄、更改信息、論文開題、評閱論文、論文評分、交流互動管理員3管理員用戶、管理員密碼、管理員姓名、管理員編號、聯(lián)系方式登錄、管理公告信息、管理用戶信息、錄入答辯成績論文庫4論文編號、論文名稱無公告欄5公告編號、公告信息、公告日期信息公布論文成績6論文編號、論文成績、答辯成績、論文評語、評語導(dǎo)師編號無交流平臺7學(xué)生編號、導(dǎo)師編號、交流信息編碼、信息內(nèi)容通信5.交互建模5.1 交互建模簡介交互圖描述對象間的交互關(guān)系。其中順序圖是將交互關(guān)系表示為一個二維圖,它顯示對象之間的動態(tài)合作關(guān)系,強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互;合作圖

18、描述對象間的協(xié)作關(guān)系,合作圖跟順序圖相似,顯示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,合作圖還顯示對象以及它們之間的關(guān)系。如果強(qiáng)調(diào)時間和順序,則使用順序圖;如果強(qiáng)調(diào)上下級關(guān)系,則選擇協(xié)作圖。這兩種圖合稱為交互圖。5.2 建立順序圖順序圖縱向是時間軸,時間沿豎線向下延伸。當(dāng)對象存在時,角色用一條虛線表示,當(dāng)對象的過程處于激活狀態(tài)時,生命線是一個雙道線。UML順序圖一般用于:確認(rèn)和豐富一個使用情境的邏輯。一個使用情境就是系統(tǒng)潛在的使用方式的描述,也就是它的名稱所要描述的。一個使用情境的邏輯可能是一個用例的一部分,或是一條備選線路。大學(xué)生畢業(yè)論文評審系統(tǒng)主要有:開題順序圖選題順序圖提交論文順序圖錄入

19、成績順序圖成績查詢順序圖溝通交流順序圖 (1) 開題順序圖通過分析,開題順序圖中有四個對象,分別為導(dǎo)師用戶、管理用戶UI、論題控制器、數(shù)據(jù)庫?;静僮黜樞蛉缦拢哼x擇開題顯示開題界面提交選題保存選題保存成功操作成功開題成功公布論題公布成功圖5.2.1 用戶順序圖(2) 選題順序圖通過分析,選題順序圖中有四個對象,分別為畢業(yè)生、界面UI、選題控制器、數(shù)據(jù)庫?;静僮黜樞蛉缦拢赫撐倪x題顯示選題界面確認(rèn)選題是否可選保存選題保存成功選題成功返回成功圖5.2.2 選題順序圖(3) 提交論文順序圖通過分析,提交論文順序圖中有五個對象,分別為導(dǎo)師、畢業(yè)生、論文管理器、界面UI、數(shù)據(jù)庫?;静僮黜樞蛉缦拢哼M(jìn)入提

20、交界面顯示論文提交界面提交論文論文檢查上傳論文上傳成功顯示上傳成功通知學(xué)生評閱論文寫評語保存評語保存成功通知學(xué)生有評語圖5.2.3 提交論文順序圖(4) 錄入成績順序圖通過分析,錄入成績順序圖中有四個對象,分別為導(dǎo)師、管理員、界面UI、成績控制器、數(shù)據(jù)庫?;静僮黜樞蛉缦拢赫撐脑u分確認(rèn)分?jǐn)?shù)論文分?jǐn)?shù)保存保存成功通知導(dǎo)師答辯成績錄入確認(rèn)成績錄入保存答辯成績保存成功通知管理員圖5.2.4 錄入成績順序圖(5) 成績查詢順序圖通過分析,成績查詢順序圖中有五個對象,分別為畢業(yè)生、界面UI、成績控制器、數(shù)據(jù)庫?;静僮黜樞蛉缦拢轰浫雽W(xué)號成績查詢數(shù)據(jù)庫查詢返回論文和答辯成績計算總成績顯示成績通知用戶圖5.2

21、.5 成績查詢順序圖(6) 溝通交流順序圖通過分析,溝通交流順序圖中有四個對象,分別為導(dǎo)師、畢業(yè)生、留言平臺?;静僮黜樞蛉缦拢簩W(xué)生留言反饋留言回復(fù)留言反饋留言圖5.2.6 溝通交流順序圖5.3 建立協(xié)作圖(1) 畢業(yè)生選題協(xié)作圖畢業(yè)生選題協(xié)作圖顯示了畢業(yè)生、管理界面UI、數(shù)據(jù)庫、管理用戶控制器四個對象之間的交互,編號為交互步驟。圖5.3.1 畢業(yè)生選題協(xié)作圖(2) 導(dǎo)師開題協(xié)作圖導(dǎo)師開題協(xié)作圖顯示了導(dǎo)師、管理界面UI、論文控制器、數(shù)據(jù)庫四個對象之間的交互,編號為交互步驟。圖5.3.2 導(dǎo)師開題協(xié)作圖6.行為建模6.1 行為建模簡介行為模型常用狀態(tài)轉(zhuǎn)換圖(簡稱狀態(tài)圖)來描述,它又稱為狀態(tài)機(jī)模型

22、。行為模型通過描述系統(tǒng)的狀態(tài)以及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件來表示系統(tǒng)的行為。狀態(tài)圖中的基本元素有事件、狀態(tài)和行為等。其描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補(bǔ)充。6.2 建立狀態(tài)圖(1) 管理員狀態(tài)圖管理員狀態(tài)圖主要包括以下狀態(tài):登錄時賬號密碼核對,不正確則返回重新輸入核對成功后進(jìn)入用戶管理界面在用戶管理界面添加用戶信息在用戶管理界面刪除用戶信息在用戶管理界面修改用戶信息在公告欄管理界面進(jìn)行公告欄管理在答辯成績錄入界面錄入答辯成績圖6.2.1 管理員狀態(tài)圖(2) 用戶狀態(tài)圖用戶狀態(tài)圖主要包括以下狀態(tài):畢業(yè)生用戶登錄時賬號密碼核對,不正確則返回重新輸入核對成功

23、后進(jìn)入系統(tǒng)主界面,可以選擇進(jìn)入個人信息界面、公告欄及論文管理界面在個人信息界面可以修改個人信息在公告欄可以查看公告欄信息在論文管理界面可以進(jìn)入選題界面、論文成績查詢界面和上傳下載論文界面在選題界面可以進(jìn)行選題在上傳下載論文界面可以提交或者下載論文在論文成績查詢界面可以查詢個人論文總成績圖6.2.2 用戶狀態(tài)圖(3) 導(dǎo)師狀態(tài)圖導(dǎo)師狀態(tài)圖主要包括以下狀態(tài):導(dǎo)師用戶登錄時賬號密碼核對,不正確則返回重新輸入核對成功后進(jìn)入系統(tǒng)主界面在系統(tǒng)主界面可以選擇進(jìn)入個人信息界面、公告欄、論文管理界面在個人信息界面修改個人信息在公告欄查看公告在開題界面開題在論文評閱中評閱論文并寫評語在論文評分中給論文打分?jǐn)?shù)圖6.

24、2.3 導(dǎo)師狀態(tài)圖6.3 建立活動圖在論文評分活動圖中,創(chuàng)建了三個個泳道,分別為畢業(yè)生對象、導(dǎo)師對象和論文評審系統(tǒng)對象。具體活動過程描述如下:畢業(yè)生選題系統(tǒng)判斷選題失敗,返回重新選擇系統(tǒng)判斷選題成功,畢業(yè)生提交論文所提交的論文次數(shù)不能超過三次提交論文次數(shù)超過三次,最后一次視為終稿提交論文成功后,導(dǎo)師批閱論文導(dǎo)師要對論文終稿評分評分完成即為結(jié)束6.3.1 論文評分活動圖7.學(xué)習(xí)總結(jié)7.1.建模 7.1.1 為什么要建模 要生產(chǎn)合格的軟件就要有一套關(guān)于體系結(jié)構(gòu)、過程和工具的規(guī)范。 建模的目標(biāo): 模型幫助我們按照實(shí)際情況或按照我們所需要的樣式對系統(tǒng)進(jìn)行可視化。 模型允許我們詳細(xì)說明系統(tǒng)的結(jié)構(gòu)和行為。

25、 模型給出一個知道我們構(gòu)造系統(tǒng)的模板。 模型對我們的決策進(jìn)行文檔化。 * 建模就是把復(fù)雜的系統(tǒng)變成小的系統(tǒng),采用“各個擊破”的原則逐一解決。 7.1.2 建模原理 1)選擇創(chuàng)建什么模型很重要,模型要反映你難于處理的開發(fā)問題。 2)模型要在不同的精度級別上來表示。你可以根據(jù)觀察的角色和觀察的原因來選擇精度。 3)建造模型要和現(xiàn)實(shí)相連。 4)重要的系統(tǒng)需要用一組獨(dú)立的模型去處理。在面向?qū)ο蟮能浖w系中, 7.1.3 面向?qū)ο蟮慕?面向算法的建模在需求發(fā)生變化或者系統(tǒng)增長后就變得難以維護(hù)。 面向?qū)ο蟮慕0褜ο蠛皖愖鳛槠渲饕獦?gòu)造塊。例如,在三層結(jié)構(gòu)中,我們可以在用戶接口層、中間層和數(shù)據(jù)庫層中找到你

26、想要的對象。 7.2 UML介紹 7.2.1 概述 1)UML可以對軟件密集型系統(tǒng)的制品進(jìn)行可視化、詳述、構(gòu)造和文檔化。最好把它用于以用況(用例)為驅(qū)動、以體系結(jié)構(gòu)為中心、跌代及增量的過程中。 2)UML是一種語言,它是一種可視化的語言,它是一組圖形符號。它可用于詳細(xì)描述。它又是一種構(gòu)造語言,可以直接生成代碼。用Rational XDE就可以實(shí)現(xiàn)從UML到C#,或者從C#到UML的雙向工程。 7.2.2 UML的概念模型 學(xué)習(xí)建模的三個要素:UML的基本構(gòu)造塊、這些構(gòu)造塊放在一起的規(guī)則、一些運(yùn)用于整個UML的公共機(jī)制。 UML中有以下四種事物 : 1)結(jié)構(gòu)事物 類、接口、協(xié)作(它是一個交互,它

27、是由一組共同工作以提供某協(xié)作行為的角色和其它元素構(gòu)成的一個群體。)、用例、主動類(至少擁有一個進(jìn)程或者線程,其元素的行為可以和其它元素的行為并發(fā))、構(gòu)件(如COM+和Java Bean)、節(jié)點(diǎn)。 2)行為事物 交互、狀態(tài)機(jī)(描述了一個對象或者一個交互在生命期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列)。 3)分組事物 包 4)注釋事物 注解 UML中的四種關(guān)系 : 1)依賴 兩個事物間的語義關(guān)系 2)關(guān)聯(lián) 是一種結(jié)構(gòu)關(guān)系,如聚合 3)泛化 一般/特殊關(guān)系 4)實(shí)現(xiàn) 用在兩種地方:接口和實(shí)現(xiàn)他們之間的類和構(gòu)件之間;用例和實(shí)現(xiàn)他們的協(xié)作之間。 UML中的圖 : 1)類圖 系統(tǒng)的靜態(tài)狀態(tài)圖,包含主動類的類圖給除系統(tǒng)

28、的靜態(tài)進(jìn)程視圖。 2)對象圖 3)用例圖 4)順序圖 5)協(xié)作圖 6)狀態(tài)圖 7)活動圖 強(qiáng)調(diào)對象間的控制流程 8)構(gòu)件圖 9)實(shí)施圖 7.2.3 體系結(jié)構(gòu) 我們用5個互聯(lián)的視圖來描述軟件密集型系統(tǒng)的體系結(jié)構(gòu): 1)系統(tǒng)的用例圖 2)系統(tǒng)的設(shè)計視圖 靜態(tài)方面由類圖和對象圖描述,動態(tài)方面由交互圖、狀態(tài)圖和活動圖描述。 3)系統(tǒng)的進(jìn)程視圖 包含了形成系統(tǒng)并發(fā)和同步機(jī)制的線程和進(jìn)程。 4)系統(tǒng)的實(shí)現(xiàn)視圖 主要針對系統(tǒng)發(fā)布的配置管理。 5)系統(tǒng)的實(shí)施視圖 7.2.4 軟件開發(fā)生命周期 用況驅(qū)動以體系結(jié)構(gòu)為中心 跌代過程 涉及到一連串可執(zhí)行發(fā)布的管理。 軟件開發(fā)生命周期的(RUP)四個階段:初始、細(xì)化、

29、構(gòu)造、移交。 7.3 公共機(jī)制 四個公共機(jī)制可以使UML簡化:詳述、修飾、公共劃分和擴(kuò)展 構(gòu)造型、標(biāo)記值和約束使UML提供的用以增加新的構(gòu)造塊、創(chuàng)建新的特性以及描述新的語義的機(jī)制。 7.4 圖 有5種最重要的互補(bǔ)視圖:用例視圖、設(shè)計視圖、進(jìn)程視圖、實(shí)現(xiàn)視圖和實(shí)施視圖,每一種視圖包含結(jié)構(gòu)建模(靜態(tài))和行為建模(動態(tài)) 建圖的兩種方法:正向工程和逆向工程 如何選擇視圖來建模? 1)視圖能夠表達(dá)系統(tǒng)的體系結(jié)構(gòu),能夠暴露項(xiàng)目的技術(shù)風(fēng)險。 2)決定用哪些制品來捕獲視圖的基本細(xì)節(jié)。 3)作為你的過程策略的一部分,決定把那種視圖至于某種形式或者半形式的控制之下。 4)保留廢棄的視圖。 兩種系統(tǒng)建模的方法:

30、1)針對同一模型,用不同層次上的細(xì)節(jié)描述圖。 2)在不同的抽象層次上,從一個模型跟蹤到另一個模型的方法建模。 7.5 類圖 類圖包括如下內(nèi)容:類、接口、協(xié)作、依賴、泛化和關(guān)聯(lián)關(guān)系。 對系統(tǒng)的靜態(tài)設(shè)計視圖建模時使用類圖的3種方式: 1)對系統(tǒng)的詞匯建模 2)對簡單協(xié)作建模 協(xié)作提供的一些合作行為強(qiáng)于其所有元素行為之和。 3)對邏輯數(shù)據(jù)庫模式建模 在UML中更一般的構(gòu)造塊是類元,類元包括:類、接口、數(shù)據(jù)類型、信號、構(gòu)件、節(jié)點(diǎn)、用況和子系統(tǒng)。他是描述結(jié)構(gòu)特性和行為特性的機(jī)制。7.6學(xué)習(xí)心得剛開始接觸這門課是,對這門課不是很了解,甚至不知道什么叫UML,也不知道為什么要學(xué)習(xí)這么多的模型?,F(xiàn)在這本書上的

31、模型終于是學(xué)完了,不能說自己學(xué)的有多么好,也不敢說自己能工對Ration Rose、StarUML、Visio這些建模工具有多么的熟悉,但是當(dāng)做完這份結(jié)業(yè)報告的時候,我的心里有千萬說不出來的成就感和喜悅感。所有的模型只有自己親自使用了那些生疏的、困難的工具一個個繪制出來后,才知道學(xué)習(xí)的過程中盡管困難重重,但是只有切實(shí)的認(rèn)真的去做,才會有意想不到的收獲。這次的結(jié)業(yè)報告我自己非常滿意,畢竟是自己一點(diǎn)一滴做出來的,辛勞的成果讓我格外的開心。通過這門課,我感覺學(xué)到了很多的東西。在課后查找資料、和同學(xué)一起討論、一起發(fā)現(xiàn)問題、發(fā)現(xiàn)解決辦法讓我學(xué)會了使用身邊的一切力量來學(xué)習(xí),也學(xué)會了用新的思考問題的方式,更

32、重要的是還學(xué)到了做事要認(rèn)真仔細(xì),實(shí)踐才能出真知的道理。8.參考文獻(xiàn)1衣楊等. 基于UML可視化設(shè)計實(shí)驗(yàn)教程M. 廣東:中山大學(xué)出版社,20062張龍祥. UML與系統(tǒng)分析設(shè)計M. 北京:人民郵電大學(xué)出版社,20073吳建,汪杰UML基礎(chǔ)與ROSE建模案例M北京人民郵電大學(xué)出版社,20074盧葦,楊少波J2EE項(xiàng)目實(shí)訓(xùn)UML及設(shè)計模式M. 北京清華大學(xué)出版社,20085楊宏平等. UML基礎(chǔ)、建模與設(shè)計實(shí)戰(zhàn)M. 北京:清華大學(xué)出版社,2012附錄資料:不需要的可以自行刪除 busybox詳解制作根文件系統(tǒng)詳解制作根文件系統(tǒng) 一、FHS(Filesystem Hierarchy Standard)

33、標(biāo)準(zhǔn)介紹當(dāng)我們在linux下輸入ls / 的時候,見到的目錄結(jié)構(gòu)以及這些目錄下的內(nèi)容都大同小異,這是因?yàn)樗械膌inux發(fā)行版在對根文件系統(tǒng)布局上都遵循FHS標(biāo)準(zhǔn)的建議規(guī)定。該標(biāo)準(zhǔn)規(guī)定了根目錄下各個子目錄的名稱及其存放的內(nèi)容:目錄名存放的內(nèi)容/bin必備的用戶命令,例如ls、cp等/sbin必備的系統(tǒng)管理員命令,例如ifconfig、reboot等/dev設(shè)備文件,例如mtdblock0、tty1等/etc系統(tǒng)配置文件,包括啟動文件,例如inittab等/lib必要的鏈接庫,例如C鏈接庫、內(nèi)核模塊/home普通用戶主目錄/rootroot用戶主目錄/usr/bin非必備的用戶程序,例如find

34、、du等/usr/sbin非必備的管理員程序,例如chroot、inetd等/usr/lib庫文件/var守護(hù)程序和工具程序所存放的可變,例如日志文件/proc用來提供內(nèi)核與進(jìn)程信息的虛擬文件系統(tǒng),由內(nèi)核自動生成目錄下的內(nèi)容/sys用來提供內(nèi)核與設(shè)備信息的虛擬文件系統(tǒng),由內(nèi)核自動生成目錄下的內(nèi)容/mnt文件系統(tǒng)掛接點(diǎn),用于臨時安裝文件系統(tǒng)/tmp臨時性的文件,重啟后將自動清除制作根文件系統(tǒng)就是要建立以上的目錄,并在其中建立完整目錄內(nèi)容。其過程大體包括:編譯安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄 利用交叉編譯工具鏈,構(gòu)建/lib目錄 手工構(gòu)建/et

35、c目錄 手工構(gòu)建最簡化的/dev目錄 創(chuàng)建其它空目錄 配置系統(tǒng)自動生成/proc目錄 利用udev構(gòu)建完整的/dev目錄 制作根文件系統(tǒng)的jffs2映像文件 下面就來詳細(xì)介紹這個過程。二、編譯安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄這些目錄下存儲的主要是常用命令的二進(jìn)制文件。如果要自己編寫這幾百個常用命令的源程序,my god, 這簡直是一個噩夢!好在我們有嵌入式Linux系統(tǒng)的瑞士軍刀busybox,事情就簡單很多。1、從 HYPERLINK / / 下載busybox-1.7.0.tar.bz22、tar xjvf busybox-1.7.0.

36、tar.bz2解包3、修改Makefile文件175 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux- 4、make menuconfig配置busyboxbusybox配置主要分兩部分。第一部分是Busybox Settings,主要編譯和安裝busybox的一些選項(xiàng)。這里主要需要配置:1)、Build Options - Build BusyBox as a static binary (no shared libs),表示編譯busybox時,是否靜態(tài)鏈接C庫。我們選擇動態(tài)鏈接C庫。2)、Installation Options - Applets l

37、inks (as soft-links) - (X) as soft-links,表示安裝busybox時,將各個命令安裝為指向busybox的軟鏈接還是硬鏈接。我們選擇軟鏈接。3)、Installation Options - (/work/nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安裝位置。我們選擇/work/nfs_root/fs_mini34)Busybox Library Tuning。保留Command line editing以支持命令行編輯;保留History size以支持記憶歷史命令;選中Tab com

38、pletion和Username completion以支持命令自動補(bǔ)全 第二部分是Applets,他將busybox的支持的幾百個命令分門別類。我們只要在各個門類下選擇想要的命令即可。這里我們基本保持默認(rèn)設(shè)置。1)選中Networking Utilities - httpd下的Enable -u option,以啟用http服務(wù)器的功能allows the server to run as a specific user5、編譯busyboxmake6、安裝busyboxmake install安裝完成后,可以看到在/work/nfs_root/fs_mini3目錄下生成了binsbinus

39、r/binusr/sbin目錄,其下包含了我們常用的命令,這些命令都是指向bin/busybox的軟鏈接,而busybox本身的大小不到800K:dennisdennis-desktop:/work/nfs_root/fs_mini3$ lsbin linuxrc sbin usrdennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l bintotal 740lrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 addgroup - busyboxlrwxrwxrwx 1 dennis dennis 7 20

40、10-04-03 23:57 adduser - busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 ash - busybox-rwxr-xr-x 1 dennis dennis 749632 2010-04-03 23:57 busyboxlrwxrwxrwx 1 dennis dennis 7 2010-04-03 23:57 cat busybox 而普通PC機(jī)上的ls命令就有差不多80K的大小: dennisdennis-desktop:/work/nfs_root/fs_mini3$ ls -l /bin/ls-rwxr-xr-

41、x 1 root root 78004 2007-09-29 20:51 /bin/ls busybox以它嬌小的身軀容納了數(shù)以百計的命令代碼,實(shí)在是讓人佩服不已,其不愧嵌入式系統(tǒng)瑞士軍刀之美譽(yù)。據(jù)說,busybox的作者身患絕癥,這更讓人欽佩GNU開源軟件的作者們。 三、利用交叉編譯工具鏈,構(gòu)建/lib目錄 光有應(yīng)用程序(命令)是不夠的,因?yàn)閼?yīng)用程序本身需要使用C庫的庫函數(shù),因此還必需制作for ARM的C庫,并將其放置于/lib目錄。my god,要自己寫C庫的源代碼嗎?不用!還記得交叉編譯工具鏈的3個組成部分嗎?交叉編譯器、for ARM的C庫和二進(jìn)制工具。哈哈,for ARM的C庫是現(xiàn)

42、成的,我們只需要拷貝過來就可以了。遺憾的是:整個C庫目錄下的文件總大小有26M。而我們根文件系統(tǒng)所在分區(qū)不過區(qū)區(qū)16M而已,根本放不下。怎么辦呢? dennisdennis-desktop:/work/nfs_root/fs_mini3$ du -s -si /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib26M /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 需要C庫目錄下所有的文件嗎?no,absolutely no! 讓我們來分析一下glibc庫目錄下內(nèi)容的組成。該目錄下的子目錄和文件共分8類:

43、 目標(biāo)文件,如crtn.o,用于gcc鏈接可執(zhí)行文件 libtool庫文件(.la),在鏈接庫文件時這些文件會被用到,比如他們列出了當(dāng)前庫文件所依賴的其它庫文件,程序運(yùn)行時無需這些文件 gconv目錄,里面是各種鏈接腳本,在編譯應(yīng)用程序時,他們用于指定程序的運(yùn)行地址,各段的位置等 靜態(tài)庫文件(.a),例如libm.a,libc.a 動態(tài)庫文件 (.so、.so.0-9*) 動態(tài)鏈接庫加載器ld-2.3.6.so、ld-linux.so.2 其它目錄及文件很顯然,第1、2、3、4、7類文件和目錄是不需要拷貝的。由于動態(tài)鏈接的應(yīng)用程序本身并不含有它所調(diào)用的C庫函數(shù)的代碼,因此執(zhí)行時需要動態(tài)鏈接庫加

44、載器來為它加載相應(yīng)的C庫文件,所以第6類文件是需要拷貝的。除此之外,第5類文件當(dāng)然要拷貝。但第5類文件的大小也相當(dāng)大。dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ du -c -si *.so* 7.2M total 需要全部拷貝嗎?非也,非也!其實(shí),需要哪些庫完全取決于要運(yùn)行的應(yīng)用程序使用了哪些庫函數(shù)。如果我們只制作最簡單的系統(tǒng),那么我們只需要運(yùn)行busybox這一個應(yīng)用程序即可。通過執(zhí)行 dennisdennis-desktop:/work/nfs_root/fs_mini3$ arm-linux

45、-readelf -a bin/busybox | grep Shared0 x00000001 (NEEDED) Shared library: libcrypt.so.10 x00000001 (NEEDED) Shared library: libm.so.60 x00000001 (NEEDED) Shared library: libc.so.6 可知:busybox只用到了3個庫:通用C庫(libc)、數(shù)學(xué)庫(libm)、加密庫(libcrypt),因此我們只需要拷貝這3個庫的庫文件即可。但是每個庫都有4個文件,4個文件都要拷貝嗎?當(dāng)然不是。 dennisdennis-deskto

46、p:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libcrypt.-*-rwxr-xr-x 1 dennis dennis 30700 2008-01-22 05:32 libcrypt-2.3.6.so-rw-r-r- 1 dennis dennis 23118 2008-01-22 05:32 libcrypt.alrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libcrypt.so - libcrypt.so.1lrwxrwxrwx 1 dennis dennis 17 200

47、8-12-22 15:38 libcrypt.so.1 - libcrypt-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libm.-*-rwxr-xr-x 1 dennis dennis 779096 2008-01-22 05:31 libm-2.3.6.so-rw-r-r- 1 dennis dennis 1134282 2008-01-22 05:32 libm.alrwxrwxrwx 1 dennis dennis 9 2008-12-22 15:38 libm

48、.so - libm.so.6lrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libm.so.6 - libm-2.3.6.sodennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ ls -l libc.-*-rwxr-xr-x 1 dennis dennis 1435660 2008-01-22 05:48 libc-2.3.6.so-rw-r-r- 1 dennis dennis 2768280 2008-01-22 05:31 libc.a-rw-r-r-

49、1 dennis dennis 195 2008-01-22 05:34 libc.solrwxrwxrwx 1 dennis dennis 13 2008-12-22 15:38 libc.so.6 - libc-2.3.6.so 4個文件中的.a文件是靜態(tài)庫文件,是不需要拷貝的。另外3個文件是: 實(shí)際的共享鏈接庫:libLIBRARY_NAME-GLIBC_VERSION.so。當(dāng)然需要拷貝。 主修訂版本的符號鏈接,指向?qū)嶋H的共享鏈接庫:libLIBRARY_NAME.so.MAJOR_REVISION_VERSION,程序一旦鏈接了特定的鏈接庫,將會參用該符號鏈接。程序啟動時,加載器在加

50、載程序前,會檢索該文件。所以需要拷貝。 與版本無關(guān)的符號鏈接,指向主修訂版本的符號連接(libc.so是唯一的例外,他是一個鏈接命令行:libLIBRARY_NAME.so,是為編譯程序時提供一個通用條目)。這些文件在程序被編譯時會被用到,但在程序運(yùn)行時不會被用到,所以不必拷貝它。關(guān)于共享庫的2個符號鏈接的作用的特別說明:當(dāng)我們使用gcc hello.c -o hello -lm編譯程序時,gcc會根據(jù)-lm的指示,加頭(lib)添尾(.so)得到libm.so,從而沿著與版本無關(guān)的符號鏈接(libm.so - libm.so.6)找到libm.so.6并記錄在案(hello的ELF頭中),表

51、示hello需要使用libm.so.6這個庫文件所代表的數(shù)學(xué)庫中的庫函數(shù)。而當(dāng)hello被執(zhí)行的時候,動態(tài)鏈接庫加載器會從hello的ELF頭中找到libm.so.6這個記錄,然后沿著主修訂版本的符號鏈接(libm.so.6 - libm-2.3.6.so)找到實(shí)際的共享鏈接庫libm-2.3.6.so,從而將其與hello作動態(tài)鏈接??梢?,與版本無關(guān)的符號鏈接是供編譯器使用的,主修訂版本的符號鏈接是供動態(tài)鏈接庫加載器使用的,而實(shí)際的共享鏈接庫則是供應(yīng)用程序使用的。通過以上分析,我們只需要拷貝3個庫(每個庫各1個主修訂版本的符號鏈接和1個實(shí)際的共享鏈接庫)以及動態(tài)鏈接庫加載器(1個符號鏈接和1

52、個實(shí)體文件)。步驟如下:dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ mkdir /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libcrypt-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp

53、-l libcrypt.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libm-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libm.so.* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc

54、-3.4.5-glibc-2.3.6/arm-linux/lib$ cp libc-* /work/nfs_root/fs_mini3/libdennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l libc.so.* /work/nfs_root/fs_mini3/lib dennisdennis-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp -l ld-* /work/nfs_root/fs_mini3/lib 四、手工構(gòu)建

55、/etc目錄 /etc目錄存放的是系統(tǒng)程序的主配置文件,因此需要哪些配置文件取決于要運(yùn)行哪些系統(tǒng)程序。即使最小的系統(tǒng)也一定會運(yùn)行1號用戶進(jìn)程init,所以我們至少要手工編寫init的主配置文件inittab。busybox的inittab文件的語法、語義與傳統(tǒng)的SYSV的inittab有所不同。 inittab文件中每個條目用來定義一個需要init啟動的子進(jìn)程,并確定它的啟動方式,格式為:。例如:ttySAC0:askfirst:-/bin/sh 表示子進(jìn)程要使用的控制臺,若省略則使用與init進(jìn)程一樣的控制臺 表示運(yùn)行級別,busybox init程序這個字段沒有意義 表示init進(jìn)程如何控

56、制這個子進(jìn)程 sysinit:系統(tǒng)啟動后最先執(zhí)行,只執(zhí)行一次,init進(jìn)程等待它結(jié)束后才繼續(xù)執(zhí)行其它動作 wait:系統(tǒng)執(zhí)行完sysinit條目后執(zhí)行,只執(zhí)行一次,init進(jìn)程等待它結(jié)束后才繼續(xù)執(zhí)行其它動作 once:系統(tǒng)執(zhí)行完wait條目后執(zhí)行,只執(zhí)行一次,init進(jìn)程不等待它結(jié)束 respawn:啟動完once進(jìn)程后,init進(jìn)程監(jiān)測發(fā)現(xiàn)子進(jìn)程退出時,重新啟動它 askfirst:啟動完respawn進(jìn)程后,與respawn類似,不過init進(jìn)程先輸出” Please press Enter to activate this console“,等用戶輸入回車后才啟動子進(jìn)程 shutdown

57、:當(dāng)系統(tǒng)關(guān)機(jī)時 restart:Busybox中配置了CONFIG_FEATURE_USE_INITAB,并且init進(jìn)程接收到SIGUP信號時執(zhí)行,先重新讀取、解析/etc/inittab文件,再執(zhí)行restart程序 ctrlaltdel:按下ctrl+alt+del鍵時執(zhí)行,不過在串口控制臺中無法輸入它 表示進(jìn)程對應(yīng)的二進(jìn)制文件。如果前面有-號,表示該程序是“可以與用戶進(jìn)行交互的”我們制作最簡單的/etc/inittab文件,其內(nèi)容如下::sysinit:/etc/init.d/rcS:askfirst:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:

58、/bin/umount -a r 制作最簡單的腳本程序文件/etc/init.d/rcS,其內(nèi)容如下: #!/bin/shifconfig eth0 7修改shell腳本文件/etc/init.d/rcS的權(quán)限,以使其可被執(zhí)行:# chmod a+x /etc/init.d/rcS五、手工構(gòu)建最簡化的/dev目錄 在linux機(jī)器上,執(zhí)行l(wèi)s /dev可看到幾百個設(shè)備文件,我需要手工創(chuàng)建它們嗎?maybe,我只需要手工創(chuàng)建幾個設(shè)備文件!我怎么知道我應(yīng)該創(chuàng)建哪幾個設(shè)備文件呢?管它呢,先看看開發(fā)板上可愛的linux的反應(yīng)再說。 啟動Linux操作系統(tǒng),顯示: VFS: Mounted root (

59、nfs filesystem).Freeing init memory: 112KWarning: unable to open an initial console. 這說明,內(nèi)核已經(jīng)成功掛載根文件系統(tǒng),但卻未能成功啟動第1個用戶進(jìn)程init。通過錯誤消息“unable to open an initial console”搜索內(nèi)核源代碼,找到init/main.c文件。748 static int noinline init_post(void)749 750 free_initmem();751 unlock_kernel();752 mark_rodata_ro();753 syste

60、m_state = SYSTEM_RUNNING;754 numa_default_policy();755 756 if (sys_open(const char _user *) /dev/console, O_RDWR, 0) 0)757 printk(KERN_WARNING Warning: unable to open an initial console.n);758 759 (void) sys_dup(0);760 (void) sys_dup(0);761 762 if (ramdisk_execute_command) 763 run_init_process(ramdi

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論