標籤:
一.軟體工程師應該將自己的精力投入到軟體的分析,規範,設計,開發,測試和維護中這會使你受益其中並受到更多的尊重。根據他們對公眾承諾的健康,安全和福利,軟體工程師應該遵循以下八大原則:
1.福士——軟體工程師應該與公眾利益一致。
2.使用者與僱主——軟體工程師應以最符合其客戶和僱主的利益的方式,以符合公眾利益的方式行事。
3.產品——軟體工程師應該確保他們的產品和相應修改盡量滿足最高的行業標準。(交付高品質軟體?)
4.判斷——軟體工程師應該保持自己獨立完整的專業判斷力。
5.管理——軟體工程的管理者和領導者應該簽訂和促進一個道德的方法來管理軟體的開發和維護。
6.專業——軟體工程師應該通過協調公眾利益來推進行業的完整性和聲譽。
7.同事——軟體工程師應該平等的對待同事並支援每一個同事
8.自己——軟體工程師應該通過終身學習致力於自己的專業實踐並且通過道德的方法推進專業實踐
二.對於開課時疑問的解答
- 程式測試,基本上一無所知,我希望在今後的學習中能夠加以瞭解。
通過這學期軟體工程的學習我學到了學多測試的方法,白盒法黑盒法,白盒法的判定覆蓋,條件覆蓋,條件判定覆蓋,路徑覆蓋等,黑箱測試的有效類無效類的選取,測試時邊界值得選取可能會使測試資料更加一針見血,還有單元測試,迴歸測試種種,這方面得到了很好的解答。
2.程式的發布,程式以何種形式發布,在什麼平台發布,以什麼渠道接收反饋資訊,都是我不清楚的。
在Team 專案的實踐中瞭解到,拿網站為例,真正地完成了一個網站就是將他放到伺服器上讓其他人通過網域名稱來訪問,擷取回饋的方式也是多種多樣,使用者調查,網站留言,聯絡管理員等等
3.一個具體項目的架構,以我之前自學的b/s為例,tomcat的搭建,連接埠的連結,還有springMVC架構我都沒有深刻的瞭解。總結起來就是對於完整的程式開發只知皮毛,並沒做到真正瞭解。
軟體工程課不是學習編軟體而是學習體會軟體開發的流程,這個問題嚴格意義上講不屬於軟體工程的問題而是自己的專業技能中的問題。通過軟體工程Team 專案的編寫,現在我已經可以使用輕量級架構springMVC,也成功完整編寫出了一個網站,解決了技術上的問題。
4.多人合作的編碼方式,以前全部是由個人完成,不同人所寫的不同代碼怎麼串連在一起,多人合作會帶來怎樣的好處和壞處都沒有體驗過,我希望通過課程的學習,理解多種多樣的編碼方式。
經過了一學期的學習和實踐我已經瞭解到了多種多樣的編程方式,我對編碼的工作方式也有了更深的瞭解,通過之前的結隊編程我發現兩人編程有時準確度和精確性都會比自己單幹有很大的提升,之後又學習了敏捷開發,code&fix還有傳統軟體的開發流程,瀑布模型,生魚片模型等,對比發現了每種方法的優缺點以及每種方法適用的項目。通過本學期coding系統的使用,瞭解到軟體開發時多人通過coding系統推送新的分支不斷推動工作進度,這方面得到了很好的解答。
三.個人總結以及對軟體工程課的意見和建議
軟體工程課可以說是我迄今為止上過的收穫最大的專業課,它不僅教會了很多重要的專業知識,也讓我明白了自己作為電腦專業的學生在知識和能力上有許多的短板。最開始上軟體工程課的時候我非常不解,這課到底在學什嗎?這課到底有什麼好學的?編寫一個軟體為什麼要這麼麻煩?自己會編不就得了嘛?通過以前學長學姐們的口述我也覺得這可真的沒什麼好學的,但是當我接觸了這門課之後我才發現事實並不是我想象的那樣。
首先,這門課改變了我對於開發軟體這一工作的看法。我以前認為編寫軟體就是拿到了要求立刻上手,完成要求沒有錯誤就可以提交了,但是事實並不是如此。通過軟體工程課的學習,我明白了編寫代碼只是軟體開發的一部分,需求分析,測試,發布,維護,使用者反饋都是軟體開發工作的一環,而且其他環的重要性都非常重要。首先開發軟體軟體必須要弄清客戶的需求,因為軟體的功能必須要滿足其使用群體,如果一個軟體不能實現使用者要求功能,即使它速度再快,記憶體再節省,演算法再最佳化他也不是一個合格的軟體,使用者也不會去使用它,更不要提用它來賺錢了。其次軟體的測試也非常重要,並不是軟體沒有錯誤就可以直接提交了,測試也不僅僅是測試出軟體的錯誤。許多軟體是具有時效性的,比如銀行的作業系統,執行一次操作要耗時半小時,即使他能夠完成使用者的需求也不會有人去使用它的,這不是一個好的軟體,測試可以保證軟體的實用性,使它在交付前能夠及時地發現問題並得到解決以提升軟體的品質。再次,軟體並不是一次性服務,軟體交付之後不是一了百了了,軟體開發的工作人員還要收取使用者的意見反饋,對發布出去的軟體進行維護,修改出現的bug,因為測試只能儘可能減少錯誤,還是有錯誤不會被發現的,軟體開發人員應該通過使用者反饋的資訊不斷推送新版本以改正錯誤。
其次,這門課並不像我以前想的“有什麼好學的”,相反,他有很多東西是要學的,作為一個電腦專業的學生並且打算以後參與軟體開發相關的工作,這門課真的是非常有用,即使現在不學,我們以後到工作崗位中也早晚要接觸到,這門課的學習對於我們的求職以及在崗位中的成長有很大的協助。他不像其他的專業課教授一些程式設計語言,電腦原理,程式演算法等等,而是交給我們作為一位軟體開發人員,我們的工作是什麼,我們應該怎樣開發一個軟體,開發不同的項目可以有什麼適用的開發模式,怎樣提高軟體的品質,文檔對於開發人員的作用,怎樣提高文檔的規範性,我們的工作需要付出什麼,失敗會有什麼代價,從事這門工作應該鍛煉哪些能力,這些東西看起來很抽象,但確確實實是讓我受益匪淺。
第三,通過這門課的學習,我發現了自己很多能力的欠缺。通過學習我瞭解到在傳統的軟甲開發流程中文檔作用巨大,文檔又分為開發人員文檔和使用者文檔,然而作為典型的理工科學生,不僅是我,想必大多數人寫作能力都是短板,軟體工程的作業採取寫部落格的方式我覺得非常好,使作業真正做到物盡其用,既強化了我們課上學習的知識又鍛煉了我們的寫作能力。自從高中畢業以來我就再也沒拿筆寫過長文章,平時跟文科掛鈎的課程要交什麼論文作業也是電腦開啟百度一下,但是通過這一學期的鍛煉,我覺得我的寫作能力有了很大提升,至少在寫文檔時我知道我該去些什麼,哪些是重點,怎樣把我的想法明確的表達出來。而且部落格對於IT工作者而言是一個非常重要的工作環境,儘早接觸對於我們的成長也有很大的好處,從開學到現在,部落格也記錄了自己在專業學習上一點一滴的積累和進步,從頭看過來非常有成就感。本想用部落格記錄自己學習c#的過程,最後決定考研時間比較緊,加上五月初的單片機考試,Team 專案匆匆做完,也沒有那麼多的時間,善始沒有善終,還是挺遺憾的,但是我確實在這門課中收穫頗豐,也希望學院能夠推廣這種教學模式。
意見:雖然這門課非常有用,但是軟體開發過程實踐的前提是有能力編出一個完整的軟體,在編寫Team 專案時頗有感受,隊員都沒有接觸過javaweb,在編寫時有很大困難,體驗和學習的效果就大打折扣了,希望學院可以早些開設.Net,asp的課程,這樣學生在學習起來會更能體驗出這麼可的重要之處。最後感謝我的老師和助教,感謝你們這一學期的辛苦付出,你們辛苦了!
軟體工程——個人最終總結