日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

oo第四次总结

發(fā)布時(shí)間:2025/7/25 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oo第四次总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

  • 測(cè)試與正確性論證差異

測(cè)試是直接構(gòu)造許多的測(cè)試樣例,通過程序運(yùn)行這些樣例,判斷運(yùn)行結(jié)果是否與預(yù)期結(jié)果相符,從而判斷程序的正確性。在前幾次的oo測(cè)試中,均采用了這種方法,這種方法不關(guān)心程序的實(shí)現(xiàn)邏輯,僅僅關(guān)心程序的輸出是否正確,簡(jiǎn)單直觀,與程序?qū)嶋H應(yīng)用場(chǎng)景更為接近。而正確性論證試根據(jù)代碼規(guī)格,分析程序?qū)崿F(xiàn)是否符合代碼規(guī)格的要求,從而判斷程序的正確性。

理論上來說,這兩種方法都能對(duì)程序的正確性進(jìn)行判斷,但都存在著一定的問題。使用測(cè)試方法時(shí),由于不關(guān)心程序的具體實(shí)現(xiàn)細(xì)節(jié),因此需要構(gòu)造大量的測(cè)試樣例,從而試圖覆蓋程序所有的執(zhí)行情況。在構(gòu)造樣例時(shí),很可能會(huì)出現(xiàn)幾種看上去不同的樣例,對(duì)程序而言實(shí)際上卻是相同的情況,造成樣例大量重復(fù);也可能會(huì)出現(xiàn)漏掉了某種很隱蔽的分支的情況,不能完全檢查程序的正確性。因此這種方法在程序較為簡(jiǎn)單時(shí)很有效,而且測(cè)試過程很簡(jiǎn)單;但是對(duì)于功能較為復(fù)雜的程序,即使通過了測(cè)試,也不意味著程序的完全正確。對(duì)于正確性論證,其依據(jù)是程序的規(guī)格,這就意味著程序的規(guī)格必須完全正確,完全符合需求的要求,這一點(diǎn)雖然已經(jīng)被默認(rèn)保證,但仍存在出錯(cuò)的可能。同時(shí),正確性論證需要對(duì)代碼實(shí)現(xiàn)進(jìn)行深入分析,在這一過程中,也很容易出現(xiàn)論證的邏輯錯(cuò)誤,從而使論證變得沒有意義。因此對(duì)于正確性論證,其雖然能保證通過論證的程序的正確性,但是論證過程更為復(fù)雜,不易實(shí)現(xiàn)。?

?


?

  • OCL語言與JSF

OCL是對(duì)象約束語言(Object Constraint Language)的簡(jiǎn)稱,是一種指示用戶建模系統(tǒng)中的限制方式,是UML可選的附加內(nèi)容,可以用來更好地定義對(duì)象的行為,并為任何類元指定約束。在對(duì)象約束語言中,對(duì)象代表了系統(tǒng)的組件,它定義了完善的項(xiàng)目,約束代表限制。它是對(duì)圖形符號(hào)的補(bǔ)充,說明建模元素的有關(guān)細(xì)節(jié)。OCL作為形式化語言,基本要素包括:類型,操作,表達(dá)式,語句等四部分。

OCL與JSF均可對(duì)程序運(yùn)行的前置條件、后置條件等內(nèi)容進(jìn)行說明,同時(shí)都是無二義性語言,其表達(dá)式狀態(tài)對(duì)系統(tǒng)執(zhí)行也不會(huì)有影響。但是OCL中定義了更為復(fù)雜的數(shù)據(jù)類型與語句規(guī)范,因此從形式上更為工整,但也更為復(fù)雜。JSF在使用時(shí)自由度較高,因此是一種簡(jiǎn)化的OCL。

?


?

  • 規(guī)格寫法改進(jìn)

  • UML類圖

?

  • UML順序圖

?

  • UML狀態(tài)圖

?

  


?

  • 總結(jié)

  • 知識(shí)點(diǎn)關(guān)系

第一個(gè)單元主要介紹了面向?qū)ο蟮幕局R(shí),主要有面向?qū)ο笈c面向過程的主要差別,面向?qū)ο蟮乃伎挤绞绞窃趺礃拥?#xff0c;面向?qū)ο蟪绦虻幕緲?gòu)成是什么。第二單元主要是多線程編程,介紹了java多線程編程的基本方法。第三單元在多線程的基礎(chǔ)上,主要訓(xùn)練規(guī)格的書寫。而第四單元在規(guī)格與之前程序的基礎(chǔ)上,進(jìn)行程序的正確性論證。這四個(gè)知識(shí)點(diǎn)是逐步遞進(jìn)的關(guān)系,但是每個(gè)知識(shí)點(diǎn)之間也有較大的不同,屬于編程的四個(gè)層次。

  • 提升與進(jìn)步

個(gè)人來說,在編程語言上,這個(gè)學(xué)期讓我java從0起步,現(xiàn)在已經(jīng)能夠讀懂并寫一些稍復(fù)雜的java程序,實(shí)現(xiàn)了很大的進(jìn)步。在代碼質(zhì)量上,原來對(duì)于代碼格式、代碼結(jié)構(gòu)等方面關(guān)注的不多,程序以實(shí)現(xiàn)功能為主要目標(biāo),這學(xué)期次作業(yè)由于對(duì)功能要求的降低,讓我有了更多的時(shí)間去思考如何構(gòu)建代碼,讓自己的代碼質(zhì)量、代碼可讀性有了顯著的提升。

  • 關(guān)于工程化開發(fā)

工程化開發(fā)是工程中進(jìn)行系統(tǒng)化、模塊化、規(guī)范化編程的過程。在實(shí)際工程實(shí)踐中,這一點(diǎn)顯得尤為重要。在我們的作業(yè)中,主要進(jìn)行了兩大模塊的作業(yè),即電梯與出租車。寫電梯的時(shí)候,由于對(duì)java及面向?qū)ο蠖际莿倓側(cè)腴T,怎么寫代碼都不清楚,也就談不上工程化的問題。因此在這一模塊作業(yè)中,每一次的需求附加,幾乎都面臨著程序重寫的問題,因?yàn)樵诔跏茧A段對(duì)程序沒有一個(gè)合理的構(gòu)建。在寫出租車的時(shí)候, 由于編程能力的提升,在最開始就對(duì)代碼框架進(jìn)行了設(shè)計(jì),因此后續(xù)的需求更改也就顯得比較容易,無需對(duì)程序主體進(jìn)行任何改動(dòng)。

雖然我們的作業(yè)遠(yuǎn)遠(yuǎn)談不上工程,但是從這兩個(gè)模塊的實(shí)踐中也可以很明顯的發(fā)現(xiàn),工程化設(shè)計(jì)在編寫程序中是非常重要的。

  • 建議

關(guān)于課程,最明顯的感覺就是作業(yè)和課堂聯(lián)系的不夠緊密,除了后幾次作業(yè)必須看ppt,按照要求寫規(guī)格、寫論證之外,前幾次的ppt對(duì)于作業(yè)來說幫助不大,這也就表明,課上講的東西沒有在作業(yè)中很好的進(jìn)行體現(xiàn)、進(jìn)行考察。其實(shí)原因也是顯而易見的,在第一單元介紹面向?qū)ο蟮臅r(shí)候,課上的理論對(duì)同學(xué)們的指導(dǎo)作用不是很強(qiáng),這個(gè)時(shí)候很少有人有時(shí)間按照課上的理論分析需求進(jìn)行編程,此時(shí)大多數(shù)人根本不了解java的任何語法(包括我),他們需要花費(fèi)大量時(shí)間學(xué)習(xí)語法。在學(xué)習(xí)語法后,時(shí)間已經(jīng)所剩不多了,就只能按照自己最熟悉的方式(面向過程),先把作業(yè)做完。第二單元介紹多線程,第一次課花了大量時(shí)間介紹java實(shí)現(xiàn)多線程的原理及多線程的意義,反而對(duì)多線程的具體代碼實(shí)現(xiàn)僅進(jìn)行了很少的介紹,而課后的作業(yè)卻是需要利用多線程編寫復(fù)雜程序;第二次課注重介紹了線程安全機(jī)制,在編程中卻基本上也就用到了最基本的類鎖,創(chuàng)建線程安全類,而且個(gè)人感覺鎖設(shè)計(jì)最為復(fù)雜的反而是上一次作業(yè),在以后的作業(yè)中也基本見不到鎖的蹤影。從第二單元的第三次到后續(xù)的所有作業(yè),基本上都和軟件規(guī)范有關(guān),我相信這是很好的訓(xùn)練,但我記得吳老師在第一節(jié)課就說過,這門課曾經(jīng)確實(shí)還有一個(gè)目的,就是訓(xùn)練軟件工程能力,但是現(xiàn)在軟件設(shè)計(jì)已經(jīng)被分成一門單獨(dú)的課,在大三下學(xué)期進(jìn)行。在面向?qū)ο蟪绦蛟O(shè)計(jì)課的后幾次作業(yè)中,可以很明顯的感覺到,對(duì)面向?qū)ο筮@一思想的理解沒有顯著的提升,都是在利用第一次出租車作業(yè)時(shí)的程序進(jìn)行修修補(bǔ)補(bǔ),很明顯不會(huì)因?yàn)橹皩懙牟皇恰泵嫦驅(qū)ο蟆?#xff0c;而在后幾次作業(yè)當(dāng)中逐漸因?yàn)閷?duì)面向?qū)ο蟮睦斫?#xff0c;而將程序重構(gòu)為”面向?qū)ο蟆笆降摹T诿嫦驅(qū)ο笤O(shè)計(jì)與構(gòu)造中,花費(fèi)半學(xué)期的時(shí)間著重訓(xùn)練軟件工程的內(nèi)容,我感覺占比稍微大了一些。

當(dāng)然我可能也沒有什么特別好的建議給老師,只是指出了一些我認(rèn)為不夠合理的地方。我想到了一兩點(diǎn)改進(jìn)意見,比如是否可以對(duì)java語法進(jìn)行一些講解,或是將作業(yè)從一些類更少、算法更簡(jiǎn)單的程序開始,通過編寫幾個(gè)基本程序熟悉語言,而不是一開始就將語言學(xué)習(xí)、正則表達(dá)式匹配等多個(gè)知識(shí)點(diǎn)融合在一起。還有就是后面軟件規(guī)格、正確性論證等方面,是否需要在本門課程中占據(jù)這樣的比重,是否會(huì)和其他課程有一定的教學(xué)重疊,老師們可以考慮一下。

轉(zhuǎn)載于:https://www.cnblogs.com/liuhm98/p/9224030.html

總結(jié)

以上是生活随笔為你收集整理的oo第四次总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。