【正文】
behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T.(如果對(duì)每一個(gè)類(lèi)型為S的對(duì)象o1,都有類(lèi)型為T(mén)的對(duì)象o2,使得以T定義的所有程序P在所有的對(duì)象o1都代換成o2時(shí),程序P的行為沒(méi)有發(fā)生變化,那么類(lèi)型S是類(lèi)型T的子類(lèi)型。)里氏替換原則通俗講,只要父類(lèi)出現(xiàn)的地方子類(lèi)就可以出現(xiàn),而且替換為子類(lèi)也不會(huì)產(chǎn)生任何錯(cuò)誤或異常,使用者可能根本就不需要知道是父類(lèi)還是子類(lèi)。但是反過(guò)來(lái)就不行了,有子類(lèi)出現(xiàn)的地方,父類(lèi)未必就能適應(yīng)。迪米特法則的定義:迪米特法則(Law of Demeter, LoD)也稱(chēng)為最少知識(shí)原則,一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有最少的了解。一個(gè)類(lèi)應(yīng)該對(duì)自己需要耦合或調(diào)用的類(lèi)知道得最少,被耦合或調(diào)用的類(lèi)的內(nèi)部如何復(fù)雜都和我沒(méi)有關(guān)系,那是你的事情,我就知道你提供的這么多public方法,我就調(diào)用這么多,其他的我一概不關(guān)心。開(kāi)閉原則的定義:一個(gè)軟件實(shí)體如類(lèi)、模塊和函數(shù)應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。一個(gè)軟件實(shí)體應(yīng)該通過(guò)擴(kuò)展來(lái)實(shí)現(xiàn)變化,而不是通過(guò)修改已有的源代碼來(lái)實(shí)現(xiàn)變化。依賴(lài)倒置原則包含三層含義:167。 高層模塊不應(yīng)該依賴(lài)低層模塊,兩者都應(yīng)該依賴(lài)其抽象;167。 167。 抽象不應(yīng)該依賴(lài)細(xì)節(jié); 細(xì)節(jié)應(yīng)該依賴(lài)抽象。在java語(yǔ)言中,抽象就是指接口或抽象類(lèi),兩者都是不能直接被實(shí)例化的;細(xì)節(jié)就是實(shí)現(xiàn)類(lèi),實(shí)現(xiàn)接口或繼承抽象類(lèi)而產(chǎn)生的類(lèi)就是細(xì)節(jié),其特點(diǎn)就是可以直接被實(shí)例化,也就是可以加上一個(gè)關(guān)鍵字new產(chǎn)生一個(gè)對(duì)象。接口隔離原則定義:167。 167。 客戶(hù)端不應(yīng)該依賴(lài)它不需要的接口;類(lèi)間的依賴(lài)關(guān)系應(yīng)該建立在最小的接口上。建立單一接口,不要建立臃腫龐大的接口,接口盡量細(xì)化,同時(shí)接口中的方法盡量少。它要求“盡量使用多個(gè)專(zhuān)門(mén)的接口”。專(zhuān)門(mén)接口指提供給每個(gè)模塊的都應(yīng)該是單一接口,提供給幾個(gè)模塊就應(yīng)該有幾個(gè)接口,而不是建立一個(gè)龐大的臃腫接口,容納所有的客戶(hù)端訪問(wèn)。,軟件開(kāi)發(fā)生命周期根據(jù)時(shí)間和RUP的核心工作流劃分為二維空間。橫軸表示項(xiàng)目的時(shí)間維,縱軸以?xún)?nèi)容來(lái)組織為自然的邏輯活動(dòng)。第四篇:系統(tǒng)分析與設(shè)計(jì)心得讀《系統(tǒng)分析與設(shè)計(jì)方法》一書(shū)有感作為一個(gè)軟件專(zhuān)業(yè)的學(xué)生,理解和掌握系統(tǒng)分析與設(shè)計(jì)的知識(shí)是必不可少的。在閱讀《系統(tǒng)分析與設(shè)計(jì)方法》一書(shū)中以及加上老師教導(dǎo),我學(xué)到了很多東西,收獲不少。系統(tǒng)就是由若干可以相互區(qū)別、由相互聯(lián)系并且各自獨(dú)立的單元組成各個(gè)子系統(tǒng)之間同樣是獨(dú)立而又相互聯(lián)系的。系統(tǒng)具有集合性、相關(guān)性、目的性、整體性和環(huán)境適應(yīng)性。在開(kāi)發(fā)完成一個(gè)軟件項(xiàng)目的過(guò)程中,系統(tǒng)工程必須經(jīng)過(guò)開(kāi)發(fā)階段、建造階段、運(yùn)行階段、更新階段、維護(hù)階段。系統(tǒng)分析與設(shè)計(jì)的方法主要包括結(jié)構(gòu)化生命周期法(又稱(chēng)瀑布法)、原型化方法(迭代法)、面向?qū)ο蠓椒?。按時(shí)間過(guò)程來(lái)分,開(kāi)發(fā)方法分為生命周期法和原型法,實(shí)際上還有許多處于中間狀態(tài)的方法。原型法又按照對(duì)原型結(jié)果的處理方式分為試驗(yàn)原型法和演進(jìn)原型法。試驗(yàn)原型法只把原型當(dāng)成試驗(yàn)工具,試了以后就拋掉,根據(jù)試驗(yàn)的結(jié)論做出新的系統(tǒng)。演進(jìn)原型法則把試好的結(jié)果保留,成為最終系統(tǒng)的一部分。按照系統(tǒng)的分析要素,可以把開(kāi)發(fā)方法分為三類(lèi):①面向處理方法(Processing Oriented,簡(jiǎn)稱(chēng)PO)。②面向數(shù)據(jù)方法(Data Oriented,簡(jiǎn)稱(chēng)DO)。③面向?qū)ο蟮姆椒ǎ∣bject Oriented,簡(jiǎn)稱(chēng)OO)。系統(tǒng)分析和設(shè)計(jì)應(yīng)遵循的原則有:系統(tǒng)開(kāi)發(fā)是面向客戶(hù)的,應(yīng)從客戶(hù)的角度考慮。諸如系統(tǒng)開(kāi)發(fā)生命周期之類(lèi)的產(chǎn)品更新?lián)Q代機(jī)構(gòu)應(yīng)該在所有的信息系統(tǒng)開(kāi)發(fā)項(xiàng)目中建立起來(lái)。信息系統(tǒng)開(kāi)發(fā)的過(guò)程并不是一個(gè)順序的過(guò)程,它允許步驟的重疊和倒轉(zhuǎn)等。如果系統(tǒng)的成功可能性受到很大限制時(shí),應(yīng)取消整個(gè)項(xiàng)目。文檔材料是系統(tǒng)開(kāi)發(fā)生命周期中重要的可遞交成果,應(yīng)加以重視。在本書(shū)的第一部分中,主要集中于系統(tǒng)分析和設(shè)計(jì)的整體描述,包括系統(tǒng)分析和設(shè)計(jì)方法的環(huán)境,信息系統(tǒng)構(gòu)件,信息系統(tǒng)開(kāi)發(fā),項(xiàng)目管理。期中印象比較深刻的是系統(tǒng)開(kāi)發(fā)過(guò)程的能力成熟度模型(CMMI)。信息系統(tǒng)和軟件的CMM框架用來(lái)幫助改善其系統(tǒng)開(kāi)發(fā)過(guò)程的成熟度。CMM包括了五個(gè)成熟度等級(jí):初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、已管理級(jí)、優(yōu)化級(jí)。期中,每個(gè)等級(jí)都是下一個(gè)等級(jí)的必須條件。在軟件開(kāi)發(fā)過(guò)程中需求分析階段是至關(guān)重要的一個(gè)階段,需求分析階段可能被稱(chēng)為定義階段或者邏輯設(shè)計(jì)階段。需求分析階段的第一個(gè)任務(wù)是確定需求,在這個(gè)階段至少將目標(biāo)轉(zhuǎn)換成為滿(mǎn)足其需要的功能需求和非功能需求的框架。在這個(gè)階段需要交付的成果是功能需求和非功能需求的草稿。在初步定義完了功能需求和非功能需求后,得排列需求的優(yōu)先次序。如果一個(gè)項(xiàng)目落后于進(jìn)度或者超出預(yù)算,知道哪個(gè)需求比其他需求更重要可能是很有用的。在排列需求的優(yōu)先次序中可以使用到時(shí)間盒的技術(shù)。需求分析并不會(huì)真正的技術(shù),因?yàn)槠髽I(yè)需要具有快速適應(yīng)不斷變化的需求和機(jī)會(huì)的能力。信息系統(tǒng)不能比企業(yè)自身的響應(yīng)技術(shù)還慢。在學(xué)習(xí)本書(shū)第二部分的時(shí)候,我了解到了需求分析在整個(gè)項(xiàng)目開(kāi)發(fā)中的作用以及成為整個(gè)項(xiàng)目主導(dǎo)的因素。只要好的需求才能設(shè)計(jì)開(kāi)發(fā)出好的軟件項(xiàng)目。在項(xiàng)目開(kāi)發(fā)過(guò)程中,我們還可以利用圖表的形式來(lái)簡(jiǎn)化方便人員的開(kāi)發(fā)設(shè)計(jì)。期中有五種圖表是系統(tǒng)分析師常用的:類(lèi)圖、用例圖、協(xié)作圖、順序圖、狀態(tài)圖。期中用例圖是用例建模的產(chǎn)物,它以圖形化的方式將系統(tǒng)描述成用、參與者(用戶(hù))及其之間的關(guān)系。簡(jiǎn)單的說(shuō)就是用直立的小人來(lái)表示參與者(用戶(hù)),用圓圈來(lái)表示用例,他們之間以箭頭的形式來(lái)連接。關(guān)系包括了:關(guān)聯(lián)關(guān)系、擴(kuò)展關(guān)系、使用關(guān)系、依賴(lài)關(guān)系、繼承關(guān)系。但是書(shū)上沒(méi)講到《include》關(guān)系,跟老師的講解有點(diǎn)出路。老師在講義上通過(guò)畫(huà)圖的方式很好的解釋了《include》和《extend》的關(guān)系。數(shù)據(jù)建模這一章節(jié)中,我了解了數(shù)據(jù)建模的含義,它是一種為數(shù)據(jù)庫(kù)定義業(yè)務(wù)需求的技術(shù)。數(shù)據(jù)建模中比較重要的概念有實(shí)體和屬性之間的關(guān)系,關(guān)系是連接實(shí)體的一個(gè)時(shí)間,或者僅僅是存在于實(shí)體之間的邏輯關(guān)系。關(guān)系有很多種類(lèi),多對(duì)多、一對(duì)多、一對(duì)一、等等。這些關(guān)系的圖形化符號(hào)記起來(lái)很不容易,但是我自己想到了一個(gè)比較容易記憶的簡(jiǎn)單的方法。一個(gè)就用 “|”表示,零個(gè)就用“0”表示,多個(gè)就用“前面說(shuō)到需求分析是整個(gè)軟件項(xiàng)目開(kāi)發(fā)中最重要的一環(huán),其實(shí)我覺(jué)得可行性分析也是跟需求分析一樣的重要。因?yàn)樾畔⑹且粋€(gè)必須經(jīng)過(guò)檢驗(yàn)的重要資本投入,就像市場(chǎng)要檢驗(yàn)一個(gè)新產(chǎn)品,系統(tǒng)分析員應(yīng)該考慮投資能夠收回嗎?是否有其他投資能夠帶來(lái)比預(yù)期更高的回報(bào)。要說(shuō)他們的區(qū)別,我個(gè)人覺(jué)得是:可行性分析是要決定“做還是不做”。需求分析是要決定“做什么,不做什么”。可行性分析報(bào)告有六個(gè)準(zhǔn)則:運(yùn)行可行性、文化可行性、技術(shù)可行性、進(jìn)度可行性、經(jīng)濟(jì)可行性。只有進(jìn)行了可行性分析報(bào)告,才能夠確定企業(yè)是否要 做這個(gè)項(xiàng)目。如果說(shuō)在可行性報(bào)告中顯示沒(méi)有成功的可能,那么就沒(méi)有必要再做需求分析了,整個(gè)項(xiàng)目就不會(huì)做下去了。進(jìn)行可行性分析報(bào)告可以避免項(xiàng)目中途告終的結(jié)果,在系統(tǒng)開(kāi)發(fā)過(guò)程中舉足輕重。數(shù)據(jù)庫(kù)開(kāi)發(fā)與設(shè)計(jì)這章,感覺(jué)書(shū)上講解的沒(méi)有老師講的詳細(xì)。書(shū)上并沒(méi)有提到范式,但是在課堂上我了解到數(shù)據(jù)庫(kù)設(shè)計(jì)的范式。有第一范式、第二范式、第三范式、BC范式等。等級(jí)越高,數(shù)據(jù)冗余越少,對(duì)系統(tǒng)調(diào)用數(shù)據(jù)庫(kù)更方便。數(shù)據(jù)庫(kù)的核心是DBMS,DBMS的核心是數(shù)據(jù)庫(kù)引擎,引擎響應(yīng)專(zhuān)門(mén)的命令以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu),然后創(chuàng)建、讀取、修改和刪除數(shù)據(jù)庫(kù)中的記錄。DBMS使用數(shù)據(jù)定義語(yǔ)言(DDL)創(chuàng)建記錄類(lèi)型、字段和結(jié)構(gòu)化關(guān)系,還定義了數(shù)據(jù)庫(kù)視圖;DBMS還是用數(shù)據(jù)處理語(yǔ)言(DML)用來(lái)創(chuàng)建、讀取、修改和刪除數(shù)據(jù)庫(kù)中的記錄。但是并非所有數(shù)據(jù)庫(kù)的DBMS都被要求使用DDL和DML??赐赀@章,總結(jié)了一下建立關(guān)系數(shù)據(jù)庫(kù)模式的步驟,首先要為每個(gè)實(shí)體類(lèi)型建立一張表,然后為每張表選擇一個(gè)主鍵,同時(shí)增加外鍵來(lái)表示一對(duì)多的關(guān)系,接著還可以建立幾個(gè)新表來(lái)表示多對(duì)多的關(guān)系,然后還得定義參照完整性約束,評(píng)價(jià)模式質(zhì)量,并且進(jìn)行必要的改進(jìn),最后為每個(gè)字段選擇適當(dāng)?shù)臄?shù)據(jù)類(lèi)型和取值約束。數(shù)據(jù)庫(kù)在系統(tǒng)開(kāi)發(fā)的過(guò)程中是必不可少的,幾乎所有框架類(lèi)型都得用到數(shù)據(jù)庫(kù),它也是MVC框架的底層核心。對(duì)于本書(shū)的還有一個(gè)比較映像深刻的就是UI(user interface),用戶(hù)界面設(shè)計(jì)。一個(gè)良好的用戶(hù)界面應(yīng)該為用戶(hù)提供友好的使用方式,通過(guò)用戶(hù)界面用戶(hù)可以同應(yīng)用程序打交道,處理輸入并且獲得輸出。Galitz曾經(jīng)提出過(guò)用戶(hù)界面設(shè)計(jì)的原則:理解你的用戶(hù)及任務(wù)、讓用戶(hù)參與界面設(shè)計(jì)、在實(shí)際用戶(hù)中測(cè)試系統(tǒng)、進(jìn)行迭代設(shè)計(jì)。記得以前大二的時(shí)候?qū)W習(xí)JAVA的時(shí)候,我曾經(jīng)開(kāi)發(fā)過(guò)基于圖形用戶(hù)界面(GUI)的聊天軟件,不過(guò)當(dāng)時(shí)的界面設(shè)計(jì)完全設(shè)計(jì)的是隨心所欲,并沒(méi)有理論作為指導(dǎo)。在學(xué)習(xí)VB課程的時(shí)候?qū)W過(guò)UAR,簡(jiǎn)單的了解了一些關(guān)于界面友好化設(shè)計(jì)的原則。這本書(shū)也給出了用戶(hù)界面設(shè)計(jì)過(guò)程的幾個(gè)步驟:;;;,回到1步或者2步。最后總結(jié)下,雖然我沒(méi)用把這本書(shū)的每一個(gè)地方都認(rèn)真精讀,有些地方略讀的,但是看完整本書(shū)后我收獲很大。讀完《系統(tǒng)分析與設(shè)計(jì)方法》這本書(shū)再加上老師在課堂上的一些講解以及以前學(xué)習(xí)事件過(guò)程中的收獲,我對(duì)于系統(tǒng)分析與設(shè)計(jì)有了進(jìn)一步的理解,能高屋建瓴的看待系統(tǒng)分析與設(shè)計(jì)整個(gè)過(guò)程的步驟以及增加了一些開(kāi)發(fā)設(shè)計(jì)中的重要事件的理論知識(shí)。對(duì)于系統(tǒng)分析的心得第五篇:信息系統(tǒng)分析與設(shè)計(jì)《信息系統(tǒng)分析與設(shè)計(jì)》考試題目及評(píng)分標(biāo)準(zhǔn)下周一(11月26日)中午12點(diǎn)之前由班長(zhǎng)或?qū)W習(xí)委員收齊各班紙質(zhì)版本作業(yè),周二收齊交給任課老師。請(qǐng)注意論文封面、格式以及老師強(qiáng)調(diào)的論文重點(diǎn),打印并裝訂好交給班長(zhǎng)或?qū)W習(xí)委員??荚囶}目:(任選其一)設(shè)計(jì)一個(gè)銀行存取款管理信息系統(tǒng)。要求具有下面的功能:①儲(chǔ)戶(hù)憑身份證在銀行開(kāi)戶(hù),銀行賬戶(hù)中保存儲(chǔ)戶(hù)姓名、聯(lián)系電話(huà)、家庭住址等基本信息,并保存儲(chǔ)戶(hù)每筆存取款業(yè)務(wù)數(shù)據(jù)。②儲(chǔ)戶(hù)存款時(shí),需提交存折/卡號(hào),由業(yè)務(wù)員在銀行賬戶(hù)及存折/卡上登記存款信息。③儲(chǔ)戶(hù)取款時(shí),還需提交密碼,以確認(rèn)身份,在驗(yàn)證取款合法性后,更新銀行賬戶(hù)。④統(tǒng)計(jì)員每日統(tǒng)計(jì)存、取款情況,形成日存取款匯總表,提供給信貸管理部作為信貸主要依據(jù)。設(shè)計(jì)一個(gè)物資采購(gòu)及庫(kù)存管理業(yè)務(wù)管理信息系統(tǒng)。要求具有下面的功能:①車(chē)間填寫(xiě)領(lǐng)料單到倉(cāng)庫(kù)領(lǐng)料,庫(kù)長(zhǎng)根據(jù)用料計(jì)劃審批領(lǐng)料單,未批準(zhǔn)的退回車(chē)間。②庫(kù)工收到已批準(zhǔn)的領(lǐng)料單后,首先查閱庫(kù)存賬,若有貨,則通知車(chē)間前來(lái)領(lǐng)取所需物料,并登記用料流水賬;否則將缺貨通知采購(gòu)人員。③采購(gòu)人員根據(jù)缺貨通知,查閱訂貨合同單,若已訂貨,則向供貨單位發(fā)出催貨請(qǐng)求,否則就臨時(shí)申請(qǐng)補(bǔ)充訂貨。④供貨單位發(fā)出貨物后,立即向訂貨單位發(fā)出提貨通知。采購(gòu)人員收到提貨通知單后,就可辦理入庫(kù)手續(xù)。接著是庫(kù)工驗(yàn)收入庫(kù),并通知車(chē)間領(lǐng)料。⑤此外,倉(cāng)庫(kù)庫(kù)工還要依據(jù)庫(kù)存賬和用料流水賬定期生成庫(kù)存報(bào)表,呈送有關(guān)部門(mén)??己藘?nèi)容:熟練掌握信息系統(tǒng)分析與設(shè)計(jì)的方法。具體考核的內(nèi)容是:編寫(xiě)信息系統(tǒng)可行性報(bào)告。編寫(xiě)信息系統(tǒng)需求分析報(bào)告,繪制數(shù)據(jù)流圖。編寫(xiě)信息系統(tǒng)設(shè)計(jì)報(bào)告,繪制功能結(jié)構(gòu)層次圖,數(shù)據(jù)庫(kù)設(shè)計(jì),界面設(shè)計(jì)和硬件和軟件設(shè)計(jì)。評(píng)分標(biāo)準(zhǔn):編寫(xiě)信息系統(tǒng)可行性報(bào)告。(20分)編寫(xiě)信息系統(tǒng)需求分析報(bào)告,繪制數(shù)據(jù)流圖。(30分)編寫(xiě)信息系統(tǒng)設(shè)計(jì)報(bào)告,繪制功能結(jié)構(gòu)層次圖。(20分)數(shù)據(jù)庫(kù)設(shè)計(jì)(10分)界面設(shè)計(jì)。(10分)簡(jiǎn)單的硬件和軟件設(shè)計(jì)。(10分)