軟體工程提問回顧與個人總結

2022-05-04 07:18:07 字數 2681 閱讀 2134

傳送門

在結對程式設計的模式下,一對程式設計師肩並肩、平等地、互補地進行開發工作。他們併排地坐在一台電腦前,面對同乙個顯示器,使用過同乙個鍵盤、同乙個滑鼠一起工作。

回答:

親自體會了結對程式設計之後才會真實的體會到,溝通與交流的重要性,這其中主要的一點就是一起程式設計的過程中的交流。當然,在寫**之前的溝通也很重要,那關乎結對專案的整個問題,所以確實像書中所說的,在一起程式設計可以溝通起來方便很多。

隨著時間的推移,這幾類功能也會發生變化,例如手機的多點觸控曾經是「驚喜」的功能,後來是所有廠家競爭的核心功能,再後來已經是最基本的功能了。

回答:

這個問題我這個學期學習了經濟管理中的產品設計之後有了一些自己的看法,對於客戶來說,興奮需求是永遠無法滿足的。所以開發者不斷地了解客戶,客戶也會在潛移默化中將興奮需求轉變為期望需求,開發者應該從期望需求的角度來設計與管理產品的週期。

函式最好有單一的出口,為了達到這一目的,可以使用goto。

回答:

這個問題是乙個同學給我解答的:書中寫的是「函式最好有單一的出口」,在函式退出之前,可能還需要做一些清理工作。如果不用goto,在每個return語句前都需要把做清理工作的**加上,這樣就會出現重複的**,並且比較繁瑣,容易出錯。

我們的軟體要為新手和專家提供可定製化的設計。一些操作方式,如快捷操作,使用者可以自行調整。我們還應該為存在某些障礙的使用者(色弱、色盲、盲人、聽力有缺陷的使用者、操作鍵盤滑鼠不方便的使用者等)提供一定程度的便利。對於長期使用某個軟體的使用者,軟體應該能適應使用者的使用習慣,讓使用者越用越順手,最後產生感情上的好感和忠誠度。

回答:

這個問題還是從經濟管理中得到一些啟示,如果我們從經濟管理的**鏈的角度看這個問題(乙個不是很恰當的比較),那麼我們考慮的就是產品的縱向與橫向的設計。在產品的市場競爭優勢中有一種優勢是集中化的策略,顧客的集中化也是重要的一方面。但是在這個問題上還是要做到權衡,所以最直接與有效的方法就是通過使用者的反饋。

軟體團隊裡除了能寫**、測試**和畫圖做設計的成員,還有一類角色,不做上面這些事情但也很重要,我們叫他們專案經理——pm。

回答:

乙個優秀的專案經理完全是可以承擔一部分的開發的任務的,不過這是相對於乙個小的團隊來說,比如說我之前所在的的那個 pureman 的兼任專案經理與開發的吳昊同學就很優秀,參與到開發中還可以更好的把控整個專案的進度。

這個想法看起來沒什麼錯,我們不就是為了成為某個領域的專家,才來上學,拿學位,希望拿到學位之後成為專家,然後再開始這個領域的創新?但是統計資料表明,70%的創新者說,他們最成功的創新,是在他們的拿手領域之外發現的。

回答:

這個問題我是在讀了吳軍老師的浪潮之巔之後,有了一些自己的見解,也算是解決了自己的當時的困惑吧,it行業的創新,不僅僅是行業內技術的創新,還可以是與外界技術的結合的創新,還可以是商業模式的創新。

軟體開發是乙個過程,我希望他是乙個螺旋

需求階段更多的了解客戶,畢竟一切都是為了使用者,我們的目標就是提供更好的服務,所以要撤離知道需求是什麼,就必須去了解客戶,去了解市場。

這一階段除了要考慮到客戶之外,我們還要從開發者的角度看這個問題。從客戶的角度,設計的目的就是盡最大的可能去滿足客戶的需求,這一階段還可以達到使用者的興奮需求,也就是需求者意料之外的驚喜,但是考慮到開發者的角度,以及其它因素,時間成本,人力成本等等,所以需要做出一些權衡。

實現階段主要就是工程的推進,這個過程中,開發者要對自己的時間把握以及過程的推進有一定的掌控,既要保證質量,又不能開發的太慢,導致整個過程都滯後,這個過程也需要開發者自己權衡與考慮。同時要注重團隊開發之間的合作與交流性,比如介面這些關鍵的地方。

開發的過程很重要,但是測試的過程同樣很重要。因為沒有人能夠寫出完全沒有bug的**,更何況是團隊合作。測試的過程是對專案的進一步保證。測試不僅僅要從產品的需求的角度來看待成品,還有很多需要測試的地方,不是乙個客戶的需求,但是當客戶組成乙個群體的時候,它就變成了一種需求。

發布階段,發布階段主要的問題是平台的選擇。如果不借助宣傳以及平台的影響力的話,很難實現大規模的推廣產品。所以平台的選擇很重要,所以在開發的階段還要考慮到之後平台的需求,也就是推廣的需求。

相同之處

前端的測試都是以元件為基礎測試,元件之間的相互作用是實現功能的基本方式

需要對介面進行測試

都可以使用自動化的方式進行功能測試

不同之處:

第乙個不同是使用的軟體不同,但是測試方法相似

對 django 框架下的**做單元測試,

在功能方面,很難做到萬無一失,但是天網恢恢,疏而不漏,我採用的是使用bug樹的方式進行測試,但是這個方式也有侷限性,那就是在我們這種產品功能較少的情況下,能夠完整的覆蓋功能,但是對於情況複雜的軟體,使用的話,就會過於冗餘。而對後端的測試,自己的體會就是,需要注意開發的**是否過於冗餘,這樣不僅僅會降低效率,介面之間的相互呼叫也容易出錯。

除了在學習技術上得到的知識外,在團隊開發中也有一些體會。我經歷了兩個團隊的兩個不同的開發的過程。從乙個隊伍融入另乙個隊伍,然後一起學習,一起工作,一起將自己的事情做好,我覺得是一件很難得事情,還有就是,溝通真的很重要,進入葫蘆娃的時候,有些地方感覺還是無法適應的那麼塊,與開發者之間的溝通,使自己的效率大大的提高了。

軟體工程 提問回顧與個人總結

專案 內容這個作業屬於哪個課程 羅傑這個作業的要求在 提問回顧與個人總結 軟體工程 第一次閱讀作業 了解到了只要能有利於程式邏輯的清晰體驗,使用goto語句是完全可以接受的事情。我認為應該在達成共識後,將設計文件的寫作交付給一位成員來完成。個人認為 你 對推銷新的發明的年輕人的恨 如果有的話 個人認...

軟體工程提問回顧與個人總結

專案 內容這個作業屬於哪個課程 羅傑這個作業的要求在 提問回顧與個人總結 軟體工程第一次閱讀作業 1.我了解到結對程式設計中,工程專案完成的方式可以自己調整,選擇最合適的方式來完成工程。2.這個需要自己進行調研以及經驗的積累。3.同上。4.這個需要自己根據自身情況來衡量。5.只要有利於程式邏輯的清晰...

軟體工程 提問回顧與個人總結

專案 內容本作業屬於北航軟體工程課程 班級鏈結 作業要求鏈結檢視 作業要求 我在這門課程的目標是 成為乙個具有一定經驗的軟體開發人員 這個作業在哪個具體方面幫助我實現目標 讓我對自己目前的狀況有乙個更加清醒的認識 請點此鏈結檢視 1.型別繼承是被提倡使用的嗎?對於這個問題,我認為針對不同的專案有不同...