




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)科內(nèi)容:實(shí)現(xiàn)團(tuán)隊(duì)經(jīng)營可行性研究:經(jīng)濟(jì)可行性、技術(shù)可行性、社會(huì)可行性。 軟件工程的三要素:工具、過程、方法。軟件過程部分:軟件的生命周期:指軟件孕育、誕生、成長、成熟、衰亡的過程軟件生命周期包括:定義、開發(fā)、維護(hù)。定義包括:問題定義、可行性研究、需求分析。開發(fā)包括:設(shè)計(jì)、編碼、測試。f問題定義定義可行性研究%需求分析維護(hù)包括:運(yùn)行維護(hù)。開發(fā)YA.維護(hù)-J設(shè)計(jì)編碼測試運(yùn)行維護(hù)?什么是軟件過程模型?又稱:軟件開發(fā)模型/軟件生命周期模型?指軟件生命周期內(nèi)過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架? 過程模型是一個(gè)模型(需要進(jìn)行具體定義和剪裁方可使用)? 過程模型是對不同過程的一種組織方式。瀑布模型的優(yōu)缺點(diǎn):優(yōu)點(diǎn)可強(qiáng)
2、迫開發(fā)人員采用規(guī)范的方法嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔要求每個(gè)階段的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗(yàn)證缺點(diǎn)無法解決軟件需求不明確或不準(zhǔn)確的問題; 可能導(dǎo)致最終開發(fā)的產(chǎn)品不能真正滿足用戶需要瀑布模型比較適合開發(fā)需求明確的軟件(極少的情況)不適應(yīng)需求經(jīng)常變化的軟件開發(fā)開發(fā)早期存在的問題往往要到交付使用時(shí)才發(fā)現(xiàn),維護(hù)代價(jià)大瀑布模型的特點(diǎn):階段間具有順序性和依賴性、推遲實(shí)現(xiàn)的觀點(diǎn)(目的是什么?)、質(zhì)量保證的觀點(diǎn)(怎樣實(shí)現(xiàn) 的?)、只適用于極小型的項(xiàng)目!(為什么?)瀑布模型的精髓和內(nèi)涵:精髓:針對每一步驟的要求嚴(yán)格的驗(yàn)證內(nèi)涵:保證質(zhì)量大家耍建立起以下思想:在軟件過程的每個(gè)活動(dòng)之后進(jìn)行嚴(yán)格的評審
3、!* 什么是瀑布式思維,怎樣避免?增量模型說明:把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完 成特定的功能使用增量模型時(shí),第一個(gè)階段的增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能;后面的增量構(gòu)架逐漸添加 系統(tǒng)的功能 增量和迭代開發(fā)的理解和實(shí)際應(yīng)用:增量模型的精髓和內(nèi)涵:從最主要的需求開始進(jìn)行增量開發(fā), 不斷獲得用戶的使用反饋,上一次增量作為下一次 增量的基礎(chǔ),從而使需求逐漸完善內(nèi)涵通過多次增量,不斷獲得用戶的反饋,并使需求逐步精化迭代的概念,*增量?瀑布式 有什么缺點(diǎn);迭代、增量有什么優(yōu)缺點(diǎn),怎么實(shí)現(xiàn)需求(requirements )
4、就是確定系統(tǒng)該做些什么以及該符合什么條件。軟件需求包括:功能需求、性能需求、用戶或人的因素、環(huán)境需求、界面需求、文檔需 求、數(shù)據(jù)需求、資源使用需求、安全保密要求、可靠性需求、軟件成本消耗與開發(fā)進(jìn)度 需求、其他非功能性要求需求分析的目標(biāo) :明確性、完整性、一致性、可測試性需求一致性的含義:-致性業(yè)務(wù)需求與用戶需求的一致性 用戶需求與功能需求的一致性RUP以及敏捷過程都采用迭代和進(jìn)化式的需求分析需求工程的任務(wù):1需求獲取2需求分析、協(xié)商與建模3需求規(guī)約與驗(yàn)證4需求管理如何進(jìn)行增量和迭代式的開發(fā)?(即增量和迭代的實(shí) 際應(yīng)用)常用的需求分析(啟發(fā))技術(shù):常用的分析和建模方法有面向數(shù)據(jù)流方法、面向數(shù)據(jù)結(jié)
5、構(gòu)方法和面向 對象的方法。實(shí)地觀察訪談開會(huì)問卷調(diào)查 原型制作 研究文檔研究競爭對手幾種常用的過程模型及其特點(diǎn):(了解一下)快速原型模型:什么是“原型”原型是快速實(shí)現(xiàn)和運(yùn)行的早期版本,反映最終系統(tǒng)部分重要特性 常見的原型實(shí)例:人機(jī)界面;系統(tǒng)主要功能優(yōu)點(diǎn):通常能反映用戶真實(shí)需求、軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的快速原型模型的精髓和內(nèi)涵:精髓:通過在早期建立原型系統(tǒng),獲得用戶的反饋,并由反饋進(jìn)一步精化用戶需求內(nèi)涵:通過用戶反饋精化需求螺旋模型:缺點(diǎn):一個(gè)周期的執(zhí)行時(shí)間太長、要有方法和自動(dòng)化工具支持,否則無法實(shí)施、進(jìn)行風(fēng)險(xiǎn)分析 的費(fèi)用可能較大螺旋模型的精髓和內(nèi)涵:精髓:風(fēng)險(xiǎn)驅(qū)動(dòng)內(nèi)涵:規(guī)避風(fēng)險(xiǎn)可行性
6、研究的目的(作用?):1用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。2不是解決問題,而是確定問題是否值得去解決。3說明該軟件開發(fā)項(xiàng)目的實(shí)現(xiàn)在技術(shù)上、經(jīng)濟(jì)上和社會(huì)條件上的可行性;評述為合理地 達(dá)到開發(fā)目標(biāo)可能選擇的各種方案。可行性研究的內(nèi)容:技術(shù)可行性、經(jīng)濟(jì)可行性、法律可行性、操作可行性可行性研究的步驟:1項(xiàng)目目標(biāo)和規(guī)模2研究目前的系統(tǒng)3形成高層邏輯模型4問題的重新定義。敏捷和統(tǒng)一過程知識(shí)點(diǎn):? 1,RUP的階段劃分?1初始階段2細(xì)化階段(精化階段)3構(gòu)造階段(構(gòu)建階段)4交付階段(產(chǎn)品化階段)Ml頃t甘.實(shí)欄覇it« 1EF境IH由Xi戶電 ilbam迭代? 2,RUP中迭代
7、的理解(RUP迭代階段圖):? RUP Rational Unified Process四個(gè)階段:? 1初始階段2細(xì)化階段(精化階段)3構(gòu)造階段(構(gòu)建階段)4交付階段(產(chǎn)品化階段)?工作流程(九個(gè)):業(yè)務(wù)建模、需求、分析設(shè)計(jì)、實(shí)施、測試、部署、配置和變更管理、項(xiàng)目 管理、環(huán)境。? RUP的六個(gè)最佳商業(yè)實(shí)踐:? 1迭代式開發(fā)(develop software iteratively )?給定的時(shí)間內(nèi),開發(fā)一個(gè)大型的復(fù)雜的軟件系統(tǒng),定義問題并構(gòu)建解決方案是不可能一蹴而就 的。?允許每次迭代中的需求變化;?每個(gè)迭代完成一個(gè)版本的程序。? 2管理需求(man age requireme nts)?需求
8、是變化的;? RUP實(shí)現(xiàn)對需求的動(dòng)態(tài)管理。? 3使用基于構(gòu)件的體系結(jié)構(gòu)(use component-based architectures)?構(gòu)件就是已存在的模塊或子系統(tǒng)(重用);?降低復(fù)雜度,提高效率,提高軟件質(zhì)量。? 4可視化軟件建模(visually model software )?建模就是建立模型,模型是對客觀事物的抽象;?可視化模型更容易理解;?可采用UML建立可視化的模型。? 5驗(yàn)證軟件質(zhì)量(verify model quality )?軟件質(zhì)量決定軟件的成敗;? RUP寸軟件質(zhì)量的評估貫穿于整個(gè)開發(fā)過程的始終。? 6控制軟件變更(control changes to softw
9、are?管理軟件變更;直復(fù),詳細(xì) 完虛70 %的 用例.審Si確定80%90 的用例并編 寫。二小部分在 細(xì)化叮段構(gòu) 建其余在 構(gòu)造產(chǎn)段實(shí) 現(xiàn)。細(xì)優(yōu)1 (4)本次遙代接還 結(jié)束時(shí)舉行2 天的希求研討 會(huì)打從實(shí)現(xiàn)中我取理解和反償.然后完成50% 的詳細(xì)用例。2天需求研討會(huì)= 定義大多數(shù)用 例名稱,附以 文字槪要: 對10%的需求(高風(fēng)險(xiǎn)、高 架構(gòu)意JD -分 析并編寫用例o用惻模型需求本次迭代接近 結(jié)束時(shí)舉行2天 的需求研討會(huì).TZ計(jì)模型設(shè)計(jì)無 對一組高鳳險(xiǎn)、具有重螢架構(gòu) 倉義的需求進(jìn) 行設(shè)計(jì)無代碼等實(shí)現(xiàn)開發(fā)計(jì)劃項(xiàng)I管理重復(fù)車復(fù)車復(fù)髙風(fēng) 險(xiǎn)和重要架 構(gòu)意義的方 面現(xiàn)在應(yīng)該 穩(wěn)定化=實(shí)現(xiàn)之重復(fù),構(gòu)
10、建直復(fù)。構(gòu)建的殳終系統(tǒng)*10%的最終15坯的繪終系統(tǒng)系統(tǒng)十分鋁珞的估預(yù)算開始形戰(zhàn)少許改進(jìn)少許改現(xiàn)在可以提計(jì)帯悴工作量進(jìn)交合理的總體項(xiàng)目進(jìn)程、 主宴里程碑、 工作龜、成 本預(yù)算從實(shí)現(xiàn)中獲取 理禪和反饋, 然后完1*30 的詳統(tǒng)用例匚但現(xiàn)實(shí)總是殘酷的,需求總是會(huì)變化。變化的原因有以下幾種:1)業(yè)務(wù)發(fā)生了變化;2)客戶對業(yè)務(wù)的理解發(fā)生了變化;3)需求分析人員對需求的理解出現(xiàn)了偏差,需要修正。? 3,敏捷思想如何對待需求變化的(擁抱變化):1現(xiàn)場客戶:很多開發(fā)團(tuán)隊(duì)并不喜歡客戶對他們指手畫腳,甚至認(rèn)為他們不停提出的需求變化讓他們 疲于應(yīng)對。但現(xiàn)場客戶給團(tuán)隊(duì)開發(fā)帶來的益處還是要遠(yuǎn)遠(yuǎn)超過他帶來的壞處。無論團(tuán)
11、隊(duì)中聚集了多么權(quán)威的領(lǐng)域?qū)<?,但真正了解客戶需求的還是客戶自己。(即客戶就是開發(fā)團(tuán)隊(duì)的一員,客戶加入到開發(fā)團(tuán)隊(duì))2定期迭代:不僅要定期迭代,而且要盡可能地讓迭代周期短,并及時(shí)交付可以工作的小版本發(fā)布。 XP的迭代周期通常為一周,而發(fā)布一個(gè)小版本大約是一個(gè)月。敏捷方法絕對不可閉門造車,因?yàn)樾枨罂偸强赡艽嬖诙x性,且需求總是處于不斷的變化中。 若能定 期交付一個(gè)可以工作的小版本,一方面可以給與開發(fā)團(tuán)隊(duì)和客戶以信心, 另一方面也有助于我們及時(shí) 獲得客戶的反饋。3持續(xù)改進(jìn):開發(fā)過程總是會(huì)出現(xiàn)錯(cuò)誤,無論是開發(fā)方法、技能,還是團(tuán)隊(duì)管理與團(tuán)隊(duì)合作。持續(xù)地 改進(jìn)我們的開發(fā)方法、管理方法與開發(fā)過程,才能夠及時(shí)而
12、有效地解決錯(cuò)誤,避免重蹈覆轍。一個(gè)能 夠持續(xù)改進(jìn)的團(tuán)隊(duì)是一個(gè)成長的團(tuán)隊(duì),同時(shí)必然會(huì)是一個(gè)擁抱變化的團(tuán)隊(duì)。?4,敏捷宣言的理解:1個(gè)體和交互 勝過 過程和工具2可以工作的軟件 勝過 面面俱到的文檔 3客戶合作 勝過 合同談判4響應(yīng) 變化勝過遵循計(jì)劃迭代思想的具體體現(xiàn):具體應(yīng)用實(shí)例(一定要掌握)軟件方法部分業(yè)務(wù)建模知識(shí)點(diǎn)業(yè)務(wù)建模對于軟件開發(fā)的作用:描述現(xiàn)實(shí),幫助發(fā)現(xiàn)軟件需求。建模的目的:(幫助大家進(jìn)行溝通和理解)業(yè)務(wù)建模和系統(tǒng)建模的區(qū)別:針對的對象不同:前者針對業(yè)務(wù)現(xiàn)狀,后者針對系統(tǒng)1, 業(yè)務(wù)建模的目的?業(yè)務(wù)建模的目的(from RUP)理解將要實(shí)施的系統(tǒng)的組織結(jié)構(gòu)和動(dòng)態(tài)特性理解當(dāng)前在目標(biāo)組織中的
13、問題,并明確改進(jìn)的潛力 確保客戶、最終用戶和開發(fā)人員對目標(biāo)組織有統(tǒng)一的理解 獲取用于支持目標(biāo)組織的系統(tǒng)需求2, 什么情況需要進(jìn)行業(yè)務(wù)建模。不熟悉業(yè)務(wù)機(jī)構(gòu)(當(dāng)團(tuán)隊(duì)成員對業(yè)務(wù)現(xiàn)狀不了解時(shí))機(jī)構(gòu)最近進(jìn)行了一些業(yè)務(wù)過程重組機(jī)構(gòu)準(zhǔn)備進(jìn)行業(yè)務(wù)過程重組建立機(jī)構(gòu)主要部分使用的軟件機(jī)構(gòu)中大型復(fù)雜工作流的文檔不足3, 業(yè)務(wù)建模的手段:領(lǐng)域模型、業(yè)務(wù)對象圖、業(yè)務(wù)用例圖、活動(dòng)圖第一種方式:領(lǐng)域建模(本質(zhì)就是類圖)領(lǐng)域建模是業(yè)務(wù)對象圖的一個(gè)特例。反映的是現(xiàn)實(shí)世界的 一個(gè)概念,而非軟件系統(tǒng)的概念第二種方式:后面兩個(gè)(比較麻煩)4, 領(lǐng)域模型的理解:領(lǐng)域模型基本元素就是概念類,反映出現(xiàn)實(shí)世界的一種概念,是類圖的一種簡化的表
14、示方式 ?基本概念:領(lǐng)域模型(domain model)是對領(lǐng)域內(nèi)的概念類或現(xiàn)實(shí)世界中對象的可視化表示。領(lǐng)域模型也稱為概念模型、領(lǐng)域?qū)ο竽P秃头治鰧ο竽P?。在UP中領(lǐng)域模型指的是對現(xiàn)實(shí)世界概念類的表示,而非軟件對象的表示。什么是概念類? ??通俗的講,概念類是思想、事物或?qū)ο蟆?正式的講,概念類可以從其符號、內(nèi)涵和外延來考慮。-符號:表示概念類的詞語或圖形-內(nèi)涵:概念類的定義-外延:概念類所適用的一組示例5, 可視化建模的主要作用(溝通和理解)Why Model?IModeling achieves four aims:Helps you to visualize 可視化)a system a
15、s you want it to be.Permits you to specify (描述)the structure or behavior of a system. Gives you a template that guides you in constructin構(gòu)造) a system. Documents (文檔)the decisions you have made.2、You build models of complex systems because you cannot comprehend such a system in its entirety3、You buil
16、d models to better understand the system you are developing用例(系統(tǒng))建模知識(shí)點(diǎn)1,用例、參與者、用例圖概念的理解幾個(gè)概念的含義 參與者:在系統(tǒng)之外,透過系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物 參與者要點(diǎn):系統(tǒng)外參與者代表在系統(tǒng)邊界之外的真實(shí)事物,并不是系統(tǒng)的成分系統(tǒng)邊界參與者透過系統(tǒng)邊界直接與系統(tǒng)交互,參與者的確定代表系統(tǒng)邊界的確定 有意義的交互系統(tǒng)需要關(guān)注其交互過程,即系統(tǒng)職責(zé)任何事物人、外系統(tǒng)、外部因素、時(shí)間用例:用例實(shí)例是系統(tǒng)執(zhí)行的一系列動(dòng)作,這些動(dòng)作將生成特定參與者可觀測的結(jié)果值 一個(gè)用例定義一組用例實(shí)例(場景)2,針對實(shí)際
17、問題進(jìn)行用例建模,手繪用例圖先識(shí)別參與者,再識(shí)別參與者對應(yīng)的用例就畫出來了反映的是外部參與者與內(nèi)部系統(tǒng)的一個(gè)交互畫業(yè)務(wù)建模、系統(tǒng)建模圖(組成部分、細(xì)節(jié))以某種圖(用例圖、活動(dòng)圖、順序圖、用例規(guī)約)描述用例 必考內(nèi)容,看以什么形式考(用例圖+描述應(yīng)該為一體)。3,理解用例建模中用例規(guī)約的最重要和最本質(zhì)的工作用例建模中最重要的東西不是畫用例,而是寫用例規(guī)約用例規(guī)約具體描述用例,是最核心的東西,才可以進(jìn)行下一步的設(shè) 計(jì),因?yàn)檎嬲齾⒖嫉倪€是用例規(guī)約用例規(guī)約:更進(jìn)一步的精度用例文檔的核心,而用例圖作為用例文檔的總圖進(jìn)一步的精度:有層次的文檔文檔中每一句話都有其價(jià)值用例圖是骨架,而用例規(guī)約則是其內(nèi)在的肉用
18、例分析知識(shí)點(diǎn)1,分析類和設(shè)計(jì)類的區(qū)別用例分析的產(chǎn)物(參與類類圖和用例實(shí)現(xiàn)(即順序圖)簡單的三層架構(gòu)BCE什么是分析類?分析類代表了“系統(tǒng)中必須具備職責(zé)和行為的事物”的早期概念模型分析類處理主要的功能需求,模型化問題域?qū)ο蟾鶕?jù)備選構(gòu)架定義三類分析類 邊界類:系統(tǒng)及其執(zhí)行者的邊界 控制類:系統(tǒng)的控制邏輯 實(shí)體類:系統(tǒng)實(shí)用的信息邊界類直接可以通過用例得出,不需要任何思考,起個(gè)名字直接畫出來就行了,控制類也不用想 但是實(shí)體類需要通過用例分析出來有哪些實(shí)體。邊界類表示系統(tǒng)與執(zhí)行者之間的邊界代表系統(tǒng)與環(huán)境的交互 是接口和外部事物的中間體構(gòu)造型 vvboundary>>三類邊界類用戶界面類系統(tǒng)接
19、口類設(shè)備接口類每對執(zhí)行者/用例定義一個(gè)邊界類我就是邊界類控制類表示系統(tǒng)的控制邏輯系統(tǒng)行為的協(xié)調(diào)器 構(gòu)造型 vvcontrol>>查找控制類在系統(tǒng)開發(fā)早期,為一個(gè)用例定義一個(gè)控制類,負(fù)責(zé)該用例的控制邏輯我就是揑制類實(shí)體代表了待開發(fā)系統(tǒng)的核心概念實(shí)體類提供了另一個(gè)理解系統(tǒng)的觀點(diǎn)顯示了系統(tǒng)的邏輯數(shù)據(jù)結(jié)構(gòu)傳統(tǒng)的面向?qū)ο蠓椒ň褪菑倪@個(gè)角度進(jìn)行分析和設(shè)計(jì)使用構(gòu)造型v<entity>>可以從以下中找到實(shí)體類詞匯表(需求)、業(yè)務(wù)領(lǐng)域模型(業(yè)務(wù)建模卜用例事件流(需求)、關(guān)鍵抽象概念(構(gòu)架分析)什么是設(shè)計(jì)類?2, 用例分析的流程的理解 用例分析流程(步驟):i完善用例規(guī)約2實(shí)現(xiàn)每一個(gè)
20、用例2.1從用例行為中查找類2.2將用例行為分配給類2.3構(gòu)造該用例的參與類類圖3對每一個(gè)得到的分析類3.1說明職責(zé)3.2說明屬性和關(guān)聯(lián)3.3限定分析機(jī)制3 *系統(tǒng)用例的實(shí)現(xiàn):手繪順序圖*軟件分析設(shè)計(jì)考察點(diǎn)1,類圖、類之間的關(guān)系 ,類圖的畫法(必考) 繼承、實(shí)現(xiàn)、依賴等等,關(guān)系的表示,公有、私有、保護(hù)成員的表示類間關(guān)系:依賴關(guān)系use-a:自行車和打氣筒、充電電池和充電器關(guān)聯(lián)關(guān)系has-a:主人和自行車(固定的對應(yīng)關(guān)系)Q聚合關(guān)系關(guān)聯(lián)的特例,整 體部分的關(guān)系, 聚合可分離,而 組合唇齒相依組合關(guān)系 泛化關(guān)系:is-a:繼承,基類派生類實(shí)現(xiàn)關(guān)系接口,接口類2,數(shù)據(jù)庫建模(ER圖、表結(jié)構(gòu)圖)步驟:
21、需求分析概念結(jié)構(gòu)設(shè)計(jì)(最重要的)邏輯結(jié)構(gòu)設(shè)計(jì)(最重要的)物理結(jié)構(gòu)設(shè)計(jì)(不作為重點(diǎn),開發(fā)中經(jīng)常涉及不到的內(nèi)容)具體的部署和實(shí)施概念結(jié)構(gòu)設(shè)計(jì)-ER圖ER圖中的E和BCE中的E的相同點(diǎn)和區(qū)別:相同點(diǎn):通常兩者是一致的區(qū)別:ER圖中的E是需要持久化到數(shù)據(jù)庫中的實(shí)體,而BCE中的E通常指所有的實(shí)體:包括需要持久化和不需要持久化的實(shí)體形成獨(dú)立于及其特點(diǎn),獨(dú)立于各個(gè) DBMS產(chǎn)品的概念模式(E-R圖)ER (Entity Relation 圖也成 ER模型邏輯結(jié)構(gòu)設(shè)計(jì) 表結(jié)構(gòu)(圖之間的關(guān)系,多為外間關(guān)系)邏輯設(shè)計(jì)階段:首先將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式;然后根
22、據(jù)用戶處理的要求、安全性的考慮,在基本表的基礎(chǔ)上 在簡歷表要的視圖,形成數(shù)據(jù)的外模式。(表和字段設(shè)計(jì)技巧 邏輯設(shè)計(jì))數(shù)據(jù)庫建模以及表的聯(lián)合查詢是重點(diǎn),外連接不考,內(nèi)連接考。三個(gè)表的From變成inner join的形式(兩者是相同的)3, 數(shù)據(jù)庫SQL的使用(內(nèi)連接、聯(lián)合查詢)create table std (id integer,name varchar(20);create table course (id integer,name varchar(40);create table std_course (std_id integer,course_id integer);insert
23、into course values(1 數(shù)據(jù)庫原理');insert into course values(2數(shù)據(jù)結(jié)構(gòu)');insert into course values(3軟件工程');insert into course values(4,'C+編程');select * from course;insert into std values(1 小王');insert into std values(2小李');insert into std values(3小張');insert into std values(4小趙
24、');select * from std;insert into std_course values(1,1);insert into std_course values(1,2);insert into std_course values(1,3);insert into std_course values(1,4);insert into std_course values(2,1);insert into std_course values(2,2);insert into std_course values(2,3);insert into std_course values(
25、3,1);insert into std_course values(3,2);insert into std_course values(4,4);課程任務(wù):1,完成 mysql 的安裝 (也可使用其它數(shù)據(jù)庫 )2, 按照上面的 sql 語句完成實(shí)驗(yàn)環(huán)境的建立。3, 請使用一條SQL查詢選修各門課程的課程名稱和對應(yīng)的學(xué)生人數(shù)(分別使用聯(lián)合查詢方式和 inner join方式實(shí)現(xiàn)) select as課程名稱', count(sc.stdd) as選修人數(shù)' from course c,std_course sc where c.id=sc.course_id g
26、roup by sc.course_id;select as課程名稱', count(sc.stdd) as選修人數(shù)' from course c join std_course sc on c.id=sc.course_id group by sc.course_id;select as課程名稱',t as '選修人數(shù) 'from course c join(select count(*) as cnt,course_idfrom std_coursegroup by course_id) a on a.course_id=
27、c.id;4, 深入練習(xí),請完成下面查詢:請使用一條SQL實(shí)現(xiàn)學(xué)生列表的查詢,要求顯示如下三列:學(xué)生名稱、所選修課程名稱、所選修課程的選修人數(shù) as '學(xué)生姓名 ', as '課程名稱 ',t as '選修人數(shù) ' from std sjoin std_course sc on s.id=sc.std_id join course c on c.id=sc.course_id left join (select count(*) as cnt,course_id from std_coursegroup by
28、course_id ) a on a.course_id = sc.course_id; as '學(xué)生姓名 ', as '課程名稱 ', t as '選修人數(shù) 'from std s,std_course sc,course c,(select count(*) as cnt,course_id from std_coursegroup by course_id ) awhere s.id=sc.std_idand c.id=sc.course_idand a.course_id = sc.course_id
29、;5,left join 之探索新增一門新的課程:insert into course values(5,'Oracle DBA');該課程現(xiàn)在沒有任何學(xué)生選修,好看下面的兩個(gè)語句的執(zhí)行結(jié)果區(qū)別:select distinct as課程名稱,sc.course_idfrom course cjoin std_course sc on c.id=sc.course_id;select distinct as課程名稱',sc.course_idfrom course cleft join std_course sc on c.id=sc.cour
30、sed這一行是否存在不影響查詢結(jié)果的條數(shù)內(nèi)連接時(shí),是僅取出滿足 where 條件以及關(guān)連關(guān)系的記錄。外連接時(shí),是先取出滿足 where條件的course表中的記錄,然后再針對每一條結(jié)果去匹配 std_course表中的記錄。4, 數(shù)據(jù)庫建模的流程數(shù)據(jù)庫設(shè)計(jì)的步驟:1. 需求分析 2. 概念結(jié)構(gòu)設(shè)計(jì) 3. 邏輯結(jié)構(gòu)設(shè)計(jì) 4. 物理結(jié)構(gòu)設(shè)計(jì) 5. 數(shù)據(jù)庫實(shí)施 6. 數(shù)據(jù)庫 運(yùn)行和維護(hù)。基于職責(zé)的類架構(gòu)和分層架構(gòu)強(qiáng)調(diào) 基于職責(zé)職責(zé)需要知道:信息系統(tǒng)的架構(gòu)設(shè)計(jì)例根據(jù)架構(gòu)的原則和方法對考勤系統(tǒng)進(jìn)行設(shè)計(jì)。依 照典型的分層模型進(jìn)行設(shè)計(jì),并進(jìn)行擴(kuò)展,得到 如下包圖:class Logical ViewWeb
31、CDomain (Sltfi)Except! on (呂辛吳CivnfrolBu£ire£& t業(yè)爭爰芻廳j1Web用戶弄血層)弔戶界直言的職貴是:與旳戶的空互,接吹用戶時(shí)各耙輸入以及輸出答種 捱示倍息或處理結(jié)果二厶時(shí)于雜人旳農(nóng)據(jù)逬行校撿,過濾非法的載措. 也向控制層討彖發(fā)送扯理請翕5, 基于職責(zé)的分層架構(gòu)設(shè)計(jì)?分層的思路是將系統(tǒng)按功能職責(zé)進(jìn)行劃分,將同一類職責(zé)的功能抽象為一層?信息系統(tǒng)中常用的三層結(jié)構(gòu):-1,表示層用戶界面-2,業(yè)務(wù)邏輯層-業(yè)務(wù)處理流程-3,數(shù)據(jù)層持久化存儲(chǔ)模型視圖控制器構(gòu)架 MVC模型,即相關(guān)的數(shù)據(jù),它是對象的內(nèi)在屬性視圖是模型的外在表現(xiàn)形式,一
32、個(gè)模型可以對應(yīng)一個(gè)或者多個(gè)視圖,視圖還具有與外界交互 的功能控制器是模型與視圖的聯(lián)系紐帶,控制器提取通過視圖傳輸進(jìn)來的外部信息轉(zhuǎn)化成相應(yīng)事件, 然后由對應(yīng)的控制器對模型進(jìn)行更新;相應(yīng)的,模型的更新與修改將通過控制器通知視圖,保持視圖與模型的一致性MVC構(gòu)架示意圖B-C-E模型層以構(gòu)造型vvlayer示系統(tǒng)不同層次以B-C-E三層結(jié)構(gòu)劃分系統(tǒng)的三類功能 邊界層(Boundary負(fù)責(zé)系統(tǒng)與執(zhí)行者之間的交互 控制層(Control處理系統(tǒng)的控制邏輯 實(shí)體層(Entity管理系統(tǒng)使用的信息層之間建立依賴關(guān)系類設(shè)計(jì)模式中的職責(zé):需要知道集中職責(zé)模式以及分別解決什么問題面向?qū)ο笤O(shè)計(jì)的5個(gè)職責(zé)模式創(chuàng)建者(Creator) 信息專家(Information Expert)低耦合(Low Coupling)控制器(Controller)高內(nèi)聚(High Cohesion)6, 基于職責(zé)的類設(shè)計(jì)模式定義:設(shè)計(jì)類圖我們已經(jīng)討論過,同一種 UML圖可以用于多種情況。在業(yè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 混凝土攪拌站勞動(dòng)合同
- 房屋買賣合同書封面
- 全新月餅購銷合同
- 綠色建筑節(jié)能材料應(yīng)用推廣合同
- 游戲發(fā)行合同
- 5 我們的校園 (教學(xué)設(shè)計(jì))-部編版道德與法治 一年級上冊
- 中國計(jì)量大學(xué)現(xiàn)代科技學(xué)院《公共事業(yè)管理概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春師范高等??茖W(xué)?!夺t(yī)學(xué)生創(chuàng)新創(chuàng)業(yè)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州科技貿(mào)易職業(yè)學(xué)院《智慧教學(xué)理論與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 滁州學(xué)院《成本核算與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 微信公眾號運(yùn)營及推廣合同
- 2025年浙江長興文旅集團(tuán)招聘筆試參考題庫含答案解析
- 醫(yī)院臨床科研大數(shù)據(jù)平臺(tái)方案
- 2024年北京市中考生物真題卷及答案解析
- 2023年涼山州西昌市人民醫(yī)院招聘衛(wèi)生專業(yè)技術(shù)人員考試真題
- (2024)湖南省公務(wù)員考試《行測》真題卷及答案解析
- 2025年部編教材的網(wǎng)絡(luò)培訓(xùn)心得體會(huì)
- 《籃球規(guī)則》課件
- 中醫(yī)24節(jié)氣課件
- 《化工安全技術(shù)》教學(xué)設(shè)計(jì)(教學(xué)教案)
- 《與顧客溝通的技巧》課件
評論
0/150
提交評論