版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程課程實(shí)驗(yàn)考試輔導(dǎo)
(二)
實(shí)例使用面向?qū)ο蠓椒ǚ治瞿硞€學(xué)校的課程注冊系統(tǒng)
一:問題描述課程注冊系統(tǒng)根據(jù)目前的課程目錄系統(tǒng),學(xué)生注冊和課程安排非常耗時,效率極低,為此要開發(fā)一個課程目錄系統(tǒng)。課程注冊的情況如下:在每一學(xué)期的開始,學(xué)生需要包含可選課程相關(guān)信息的課程目錄,如課程的教師、所屬系、預(yù)備課程。新系統(tǒng)允許學(xué)生選該學(xué)期的四門課。另外,除了四門首選的課程外,每一個學(xué)生要指出兩門備選課以防沖突(如選課人數(shù)已滿或課程被取消)。選每門課程的學(xué)生不能少于三個或多于十個,對每一個學(xué)生所做的課程安排,要有合適的算法保證不發(fā)生沖突。如果選該門課的學(xué)生少于三個,這門課將被取消。一旦學(xué)生的登記過程完成,課程登記系統(tǒng)將向記帳系統(tǒng)發(fā)送信息,該學(xué)生被列入這學(xué)期的名單。教師能夠在線地訪問系統(tǒng)以指出他們要教的課程,并查看要聽課的學(xué)生。每一學(xué)期開始的一段時間(比如,一周內(nèi)),學(xué)生能夠改變他們的課程安排。在這段時間內(nèi),學(xué)生能夠訪問系統(tǒng)以增加或刪除課程。需求規(guī)格說明書
二:建立初步對象模型
發(fā)現(xiàn)類
在OOA中,發(fā)現(xiàn)主要是標(biāo)識應(yīng)用領(lǐng)域相關(guān)的類,包括應(yīng)用領(lǐng)域中的物理實(shí)體和概念,如:雇員、部門等。并不是所有的類都清楚地出現(xiàn)在需求描述中,有些可能隱含在背景知識中。找到合適的類是比較困難的,可以注意以下指導(dǎo)原則:在分析階段,主要標(biāo)識應(yīng)用領(lǐng)域的知識而不是實(shí)施的概念。如進(jìn)程、鏈表、數(shù)組等,這些類是在設(shè)計(jì)中加以考慮,而不是在分析階段。發(fā)現(xiàn)類(Cont.)可以通過順序中交互的對象發(fā)現(xiàn)類領(lǐng)域中依賴于某個實(shí)體的特性應(yīng)該作為屬性而不是類,如名字、年齡等合適的類應(yīng)該描述問題領(lǐng)域中的一個抽象,具有一個主要的主題發(fā)現(xiàn)類(Cont.)給每一個類取一個合適的名字,并給出簡明的定義 -給出的名字和其它類的名字相同或相近,考慮合并兩個類 -雖然能夠給出類名,但是定義卻非常復(fù)雜,考慮拆分這個類 -不能給出一個確切的名字或定義,這個類需要進(jìn)一步分析給出候選的類
較早使用的方法:通過問題陳述中的名詞或名詞詞組,挑選候選類去掉冗余的、不正確的類
為選定的類準(zhǔn)備一個數(shù)據(jù)字典類字典:類名-CourseOffering類描述-某個課程的特定的設(shè)置,包括日期,時間,學(xué)時。所包含的屬性有:課程設(shè)置編號(number),開始時間,結(jié)束時間,學(xué)生數(shù)
三、說明類之間的關(guān)系
所有的系統(tǒng)都是由許多類和對象構(gòu)成。系統(tǒng)行為通過對象之間的合作獲得。發(fā)現(xiàn)關(guān)系可以從以下幾個方面入手:檢查對象之間的交互(scenario,sequencediagram):對象之間的消息傳遞意味著它們一定存在著某種關(guān)聯(lián)需求描述中的動詞或動詞詞組有可能隱含著類之間的關(guān)系也可以從操作的參數(shù)入手發(fā)現(xiàn)關(guān)系(在后面會講到)關(guān)系的多重性(Multiplicity)和導(dǎo)航(Navigation)Association和Aggregation關(guān)系缺省是雙向的在分析的初始階段或還不能確定的情況下,不要急于定義這兩種特性對于每一個Association,都要進(jìn)行兩次判斷(對關(guān)聯(lián)的每一端)Association和Aggregation
在分析過程中,兩種關(guān)系有時難以區(qū)別:在需求說明中,是否有“x是x的一部分”這樣的描述?是否整體上的操作自動地應(yīng)用到其組成部分上?例如,刪除一個Course,自動刪除所有的CourseOffering關(guān)系的雙方是否不對稱或一個從屬于另一個在Association和Aggregation關(guān)系的判斷上,有時依賴于特定的背景自反關(guān)系自反關(guān)系:同一類之間的不同對象之間的通訊關(guān)系在對象交互中發(fā)現(xiàn)類和操作MVC設(shè)計(jì)模式實(shí)體類:建模反映現(xiàn)實(shí)世界中的實(shí)體及其相關(guān)的信息和行為。通常表示為領(lǐng)域描述中的名詞。邊界類:處理系統(tǒng)外部環(huán)境與系統(tǒng)內(nèi)部的通訊,對用戶或另外的系統(tǒng)提供提供界面。在分析階段,通常只決定用戶界面需求和表示界面,而不實(shí)現(xiàn)界面??刂祁悾河糜趨f(xié)調(diào)對每一項(xiàng)功能的行為,在初始階段,可以對每一項(xiàng)功能加入一個控制類,而在設(shè)計(jì)階段,可能刪除、合并或取消。描述腳本以“課程注冊”為例:主要事件流:學(xué)生可以注冊當(dāng)前學(xué)期的可選課程。在選課系統(tǒng)開放的一段時間內(nèi),如果學(xué)生改變主意,可以更新或刪除所作的課程選擇?;臼录鳎寒?dāng)學(xué)生要選課,或改變已經(jīng)選過的課程時,啟動該系統(tǒng),1.系統(tǒng)要求學(xué)生要執(zhí)行的功能,包括創(chuàng)建一個課程安排,更新或刪除已有的課程安排。2.根據(jù)學(xué)生的選擇,系統(tǒng)執(zhí)行相應(yīng)的功能。如果學(xué)生選擇“創(chuàng)建課程安排”,則執(zhí)行“創(chuàng)建課程安排”功能;如果學(xué)生選擇“更新課程安排”,則執(zhí)行“更新程安排”功能;如果學(xué)生選擇“刪除課程安排”,則執(zhí)行“刪除課程安排”功能。時序圖創(chuàng)建課程安排1.系統(tǒng)從課程目錄系統(tǒng)中檢索當(dāng)前課程可選課程設(shè)置的列表,并對學(xué)生顯示該列表。2.學(xué)生從提供的課程列表中,選擇四門首選的課程和兩門備選的課程。3.一旦學(xué)生確認(rèn)選擇,系統(tǒng)為學(xué)生創(chuàng)建一個課程安排,該課程安排包含學(xué)生選擇的課程設(shè)置。4.系統(tǒng)執(zhí)行“提交課程安排”功能。時序圖更新課程安排
1.系統(tǒng)檢索并顯示學(xué)生當(dāng)前的課程安排,并對學(xué)生顯示相應(yīng)課程列表。2.學(xué)生更新課程設(shè)置時可能執(zhí)行兩種操作:從可選列表中增加新的課程設(shè)置或刪除已做的課程設(shè)置。3.一旦學(xué)生作出了選擇,系統(tǒng)用改變的信息更新學(xué)生的課程安排。4.執(zhí)行“提交課程安排”功能
時序圖刪除課程安排
刪除課程安排:1.
系統(tǒng)檢索并顯示學(xué)生當(dāng)前的課程安排(即該學(xué)期的課程安排)。2.
系統(tǒng)提示學(xué)生確認(rèn)對課程安排的刪除。3.
學(xué)生進(jìn)行確認(rèn)。4.
系統(tǒng)從課程目錄系統(tǒng)中刪除該課程設(shè)置。如果課程設(shè)置標(biāo)記為“已注冊”,必須將學(xué)生從課程設(shè)置中刪除。
時序圖加入行為類體現(xiàn)了對象的責(zé)任,而對象的責(zé)任則由類定義的操作執(zhí)行對象的結(jié)構(gòu)由類的屬性描述定義操作一般情況下,可以通過檢查交互圖發(fā)現(xiàn)大部分類,將消息映射為接受消息的類的一個操作(特殊情況除外)一個操作通常只做一件事情,一個操作執(zhí)行的任務(wù)不要過于復(fù)雜檢查交互圖并不能發(fā)現(xiàn)所有的操作,因?yàn)椴⒉皇撬械哪_本都被描述為交互圖加入操作registrationformregistrationmanager3:addcourse(joe,math01)RegistrationManageraddCourse(Student,Course)說明操作操作的說明重要包括操作的功能、輸入、返回值等這些信息在分析的開始可能并不能明確,可以在迭代的過程中逐步加入操作描述模板操作名輸入前置條件處理輸出后置條件關(guān)系和操作可以通過檢查操作來發(fā)現(xiàn)關(guān)系。如果一個操作的參數(shù)或返回值是一個類的對象,則意味類之間存在一個關(guān)系。例如,Course具有操作addProfessor(professor,courseOffering),則可以發(fā)現(xiàn)下面的類存在關(guān)系: -Course和Professor
-Course和CourseOffering加入屬性發(fā)現(xiàn)屬性一般有三種方式:檢查類定義、分析問題陳述、應(yīng)用領(lǐng)域知識。每一個courseoffering都有一個number,location和timeCourseOfferingnumberlocationtime加入屬性和操作的類實(shí)現(xiàn)該功能的類圖使用概化或特化調(diào)整類層次
發(fā)現(xiàn)繼承繼承是面向?qū)ο蠹夹g(shù)中重用的關(guān)鍵技術(shù)雖然繼承的層次沒有限制,一般在C++應(yīng)用中不要超過5層,在smalltalk應(yīng)用中可以更多一些發(fā)現(xiàn)繼承有兩種方式:Generalization和SpecializationGeneralizationGeneralization的方法是自底向上的過程,從現(xiàn)有的類中提取共同的結(jié)構(gòu)和行為。處理兩種問題:-屬性和操作的分配 -關(guān)系的重新安排屬性和操作的安排
例如,有下面的兩個類:很顯然,通過Generalization,可以找到它們的超類:RegistrationUser,那么超類應(yīng)該有哪些屬性呢?關(guān)系的安排在創(chuàng)建超類或子類以后,除了屬性和操作,關(guān)系也要重新安排。有兩種方式: -將關(guān)系放在子類一層 -將關(guān)系移至超類例如,加入超類RegistrationUser后,CourseOffering和Professor、Student的關(guān)系如何處理關(guān)系的安排(Cont.)Specializatio
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店客房銷售與營銷制度
- 酒店員工培訓(xùn)需求分析與制定制度
- GB/Z 103-2026健康信息學(xué)互聯(lián)網(wǎng)健康服務(wù)網(wǎng)絡(luò)架構(gòu)
- 藥品倉儲管理制度
- 化工工藝過程安全管理制度(3篇)
- 內(nèi)勤培訓(xùn)課件
- 內(nèi)分泌科相關(guān)知識
- 教材推廣活動策劃方案(3篇)
- 桂林舞蹈活動策劃方案(3篇)
- 混凝土廠庫房管理制度(3篇)
- 2026年呂梁職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試備考試題帶答案解析
- 清華大學(xué)教師教學(xué)檔案袋制度
- 2025年新疆師范大學(xué)輔導(dǎo)員招聘考試真題及答案
- 人教版九年級物理上學(xué)期期末復(fù)習(xí)(知識速記+考點(diǎn)突破+考點(diǎn)練習(xí)題)含答案
- 電梯更新改造方案
- GB/T 70.4-2025緊固件內(nèi)六角螺釘?shù)?部分:降低承載能力內(nèi)六角平圓頭凸緣螺釘
- 2026年安徽國防科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試題庫及完整答案詳解1套
- 2026年電商年貨節(jié)活動運(yùn)營方案
- 2025秋粵教粵科版(新教材)小學(xué)科學(xué)二年級上冊知識點(diǎn)及期末測試卷及答案
- 譯林版英語六年級上冊專題05 首字母填詞100題專項(xiàng)訓(xùn)練含答案
- 醫(yī)院信息系統(tǒng)零信任訪問控制方案
評論
0/150
提交評論