oo第三次博客做業

1、 規格發展歷史

軟件研究人員每每根據本身的研究對象和研究範圍對軟件規格說明作了相應的限定和要求。例如, 軟件工程的傳統觀點假定軟件需求規格說明在需求分析的基礎上產生, 軟件設計規格說明在軟件設計的基礎上產生。然而, 根據程序設計方法學的觀點, 則乾脆把對程序的要求統稱爲程序規格說明。
對軟件所應知足的要求,以可驗證的方式做出徹底、精確陳述的文件。「規格說明」一詞與其餘工業產品的「規格說明書」有類似的含義。不過,在軟件領域中,它已成爲一個特定的技術用語。軟件產品與使用環境之間的關係,軟件產品內部各組成部分之間的接口每每十分複雜,而且在發展過程當中軟件產品要經歷屢次變換,以各類不一樣形式出現於不一樣的階段。所以,對軟件的各組成部分之間、各發展階段之間的接口關係應當規定得十分準確。軟件規格說明須用某種語言書寫。天然語言的陳述中常存在歧義性,易引發誤解。於是,最好使用人工語言或者人工語言與天然語言的混合形式書寫軟件的規格說明。這種語言就叫做規格說明語言。大型軟件的規格說明每每十分冗長,於是但願這種語言易於用計算機處理,以便能用機器檢查軟件規格說明中有無遺漏或自相矛盾的地方。軟件規格說明的內容可根據不一樣場合的須要而有所側重。
在我看來,代碼的規格確實很是有必要,我認爲,一我的拿到別人的代碼的時候,是不會仔細閱讀代碼的,因此,咱們寫出相應的規格,就能夠幫助別人瞭解本身的代碼,這就是方便了別人,我認爲,這樣是一種極爲優秀的作法,而且,別人看代碼尚且可能存在看不懂的狀況,可是規格就不同了啊,人人均可以看得懂,因此規格這種東西在計算機的發展歷史上頗有必要,我認爲計算機軟件的急速發展就是有了規格的出現,人們能夠很方便的看懂別人的代碼,因此就會有了很好的繼承與發展。
世界上第一臺電子數字式計算機於1946年2月15日在美國賓夕法尼亞大學正式投入運行,它的名稱叫ENIAC(埃尼阿克),是 電子數值積分計算機(The Electronic Numberical Intergrator and Computer)的縮寫。它使用了17468個真空電子管,耗電174千瓦,佔地170平方米,重達30噸,每秒鐘可進行5000次加法運算。雖然它的功能還比不上今天最普通的一臺微型計算機,但在當時它已經是運算速度的絕對冠軍,而且其運算的精確度和準確度也是前所未有的。以圓周率(π)的計算爲例,中國的古代科學家祖沖之利用算籌,耗費15年心血,才把圓周率計算到小數點後7位數。一千多年後,英國人 香克斯以畢生精力計算圓周率,才計算到小數點後707位。而使用ENIAC進行計算,僅用了40秒就達到了這個記錄,還發現香克斯的計算中,第528位是錯誤的。 
ENIAC奠基了電子計算機的發展基礎,開闢了一個計算機科學技術的新紀元。有人將其稱爲人類第三次產業革命開始的標誌。 
ENIAC誕生後,數學家馮•諾依曼提出了重大的改進理論,主要有兩點:其一是電子計算機應該以二進制爲運算基礎,其二是電子計算機應採用存儲程序方式工做,而且進一步明確指出了整個計算機的結構應由五個部分組成:運算器、控制器、存儲器、輸入裝置和輸出裝置。馮•諾依曼的這些理論的提出,解決了計算機的運算自動化的問題和速度配合問題,對後來計算機的發展起到了決定性的做用。直至今天,絕大部分的計算機仍是採用馮•諾依曼方式工做。 
ENIAC誕生後短短的幾十年間,計算機的發展日新月異。主要電子器件相繼使用了真空電子管,晶體管,中、小規模集成電路和大規模、超大規模集成電路,引發計算機的幾回更新換代。每一次更新換代都使計算機的體積和耗電量大大減少,功能大大加強,應用領域進一步拓寬。特別是體積小、價格低、功能強的微型計算機的出現,使得計算機迅速普及,進入了辦公室和家庭,在辦公室自動化和多媒體應用方面發揮了很大的做用。目前,計算機的應用已擴展到社會的各個領域。 

2、 bug統計

  規格BUG 功能BUG 是否有聯繫
第九次做業 3 0
第十次做業 0 0
第十一次做業 0 0

 

從上面這個表格能夠看出來,個人三次做業都沒有被報功能性BUG,我認爲這村內在兩方面緣由:一是我寫了做業,二是測試者沒有測出來個人BUG,在第九次做業中,我被報告了3個規格BUG,在我看來,這三處BUG都是一摸同樣的,由於這是我三個判斷正則表達式的地方,都是因爲前置條件寫的有問題,當時我認爲不須要條件就要寫null,但是並非,要寫成空,因此被報告了三個BUG。正則表達式

我認爲被報告的BUG和代碼行數並無多大聯繫,這三處代碼算上我習慣的空行應該也沒有40行,有效代碼更是少,可是就會被報告規格BUG,而其餘地方寫的很長的方法並無被報告BUG。學習

因此,我認爲我被報告BUG的緣由主要是我沒有仔細看好那份word,因此纔會被報告規格BUG,這也是第一次寫規格,因此會出現一些紕漏。測試

3、 規格舉例

一、運用了天然語言this

/** @REQUIRES: Req_list類的對象r
*@MODIFIES: this
*@EFFECTS: 給this裏的變量賦值
*@THREAD_REQUIRES:
*@THREAD_EFFECTS:
*/設計

修改後:對象

/** @REQUIRES: r!=null
*@MODIFIES: this
*@EFFECTS: this!=null
*@THREAD_REQUIRES:
*@THREAD_EFFECTS:
*/繼承

二、打出了null接口

/** @REQUIRES: null
*@MODIFIES: start_x, start_y, end_x, end_y
*@EFFECTS: 給上面的變量賦值
*@THREAD_REQUIRES:
*@THREAD_EFFECTS:
*/get

修改後:數學

/** @REQUIRES: 
*@MODIFIES: start_x, start_y, end_x, end_y
*@EFFECTS: start_x=a1 && end_x=b1&&start_y=a2&&end_y=b2

 

*/

三、effect寫的不清楚

/** *@REQUIRES: null
*@MODIFIES: null
*@EFFECTS: 返回value
*@THREAD_REQUIRES: Vocked(value)
*@THREAD_EFFECTS:
*/

修改後:

/** *@REQUIRES: 
*@MODIFIES: 
*@EFFECTS: \result==>value
*@THREAD_REQUIRES: \locked(value)
*@THREAD_EFFECTS:
*/

四、較爲簡單的都是用了天然語言

/** @REQUIRES: null
*@MODIFIES: null
*@EFFECTS: 返x1
*@THREAD_REQUIRES: \locked(x1)
*@THREAD_EFFECTS:
*/

修改後:

/** @REQUIRES:
*@MODIFIES: 
*@EFFECTS: \result==>x1
*@THREAD_REQUIRES: \locked(x1)
*@THREAD_EFFECTS:
*/

五、限定範圍不明確

/** @REQUIRES: null
*@MODIFIES: value
*@EFFECTS: 修改value爲x
*@THREAD_REQUIRES: \locked(value)
*@THREAD_EFFECTS:
*/

修改後:

/** @REQUIRES: x>=0 && x<=300
*@MODIFIES: value
*@EFFECTS:value==>x
*@THREAD_REQUIRES: \locked(value)
*@THREAD_EFFECTS:
*/

4、 聚焦關係

  功能bug 規格BUG
match 0 1
match_op 0 1
match_cl 0 1

能夠看出,BUG基本都在規格方面,因此主要是因爲沒有看清楚word,因此纔會出現BUG。

5、寫規格的思路

要大量運用布爾表達式,纔會邏輯清楚沒有二義性。

詳細寫出前置條件。

6、心得體會

 代碼和JSF仍是要好好寫,分數只是好好學習的附屬品,咱們不該該爲了幾分就拋卻了重要的學習。開心的學習知識才是咱們上大學的目的,不是嗎?

相關文章
相關標籤/搜索