作業屬于課程
https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2
作業要求位置
https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706
我在這個課程的目標是:
認真學習好軟件工程原理以及科學的軟件項目開發與管理方法,并能把學到的知識運用到以后的工作當中
一,建立博客及個人介紹
1,我的博客
https://www.cnblogs.com/lichunrui/
2,個人介紹
我叫李純銳,我是一名轉專業學生,進入大學時因為成績不大理想沒有直接進入到軟件工程專業,但通過我一學期的努力,以綜合績點專業第二的成績轉入了軟件工程專業。起初也不能說很喜歡這個專業吧,畢竟當時沒有一個方向。但在我平時就是一個非常喜歡創作和設計的人,我平時喜歡剪輯音樂,剪輯視頻,喜歡做出一個像樣的作品,不管是音樂視頻,還是現實生活中的東西,也許這就是當初指引我來到軟件工程專業的號角吧。轉過來以后,我迅速愛上了敲代碼,雖然計算機語言的各種算法很燒腦,但做出成品的那種成就感正是我需要的。特別是上學期學習C#語言通過學習到的知識做出了一個簡易學籍管理系統的時候,我愈發覺得自己喜歡上軟件工程這門專業了。再說說我平時的愛好吧,我現在的愛好,街舞,也是我堅持最久的一個事情。從初二跳到大學,已經有七年時間了,這幾年里面,幾乎沒有任何東西能夠磨滅掉我對街舞的熱愛。因為它給了我很多東西,是它給予我自信,讓我能主動和別人交朋友,讓我能面對全班乃至全校同學分享自己的觀點。高中、大學擔任街舞隊隊長,讓我從中學會了如何管理一個團隊,如何在一個團隊中起好帶頭作用,如何去處理一些之前從未接觸到的事情。上大學之后,在大一一年的時間里我取得了新生才藝大賽第一名、四川省排舞比賽第一名以及全國排舞比賽第一名的成績。所以說街舞給了我很多,最重要的是,我從中學會了堅持和迎難而上的精神。
(1)???? 回想一下你初入大學時對軟件工程專業的暢想
自我介紹中已經說過,我是一名轉專業學生,進入大學時因為成績不大理想沒有直接進入到軟件工程專業,但通過我一學期的努力才轉入了軟件工程專業。因為自己喜歡設計與創作的緣故,我選擇了進入軟件工程這個專業。過去將近一年半的時間里,我學習到的專業知識很符合我對這門專業的期待,因為我可以通過這些知識完成自己目前想完成的事情,比如說制作一個簡單的程序,能夠滿足我自己的需求。軟件工程對我來說算是喜歡的領域了,因為恰好符合我的愛好之一。我很希望自己將來能夠從事軟件方面的工作,最好是在成都這座軟件之都吧。
(2)??? 即將大三的你,對照前人們走過的路和描述未來發展,現在的你
我已經具備了基本的C語言與C#語言的編程知識以及數據庫原理及應用,能夠運用這些知識解決一些簡單的生活問題。但練習的代碼量還是很少,沒有達到熟練運用的效果。如果想成為一個合格的軟件工程本科畢業生,我覺得還應該多多練習代碼的運用,并且多掌握幾門計算機語言,比如Java、Python等,在實習時能夠熟練運用所學知識解決工作問題。
(3)大三是一個人生選擇的十字路口,考研、工作、考公、出國,不同的選擇在大三就有不同的努力方向。而無論考研還是工作的每條路徑,也有許多不同的分支。
博客L【1】的作者提道,“興趣和熱情只能讓你很執著,但并不一定能讓你走好這條路,只有你的能力和你的強項才能讓你走好這條路。”所以說,光有興趣是不行的,得在能力上下足功夫,應聘的時候別人不是看你對這個行業有多大的興趣,而是拿實力說話。對我來說,在編程能力這方面,離一名合格的軟件工程專業學生還相差甚遠。所以我準備在大三努力學習專業知識,同時自學課程外的專業知識,為就業做好準備。
【1】https://coolshell.cn/articles/4561.html
三.提有質量的問題
(1)第十六章《IT行業的創新》中作者提到“改良式”與“顛覆式”兩種創新,343頁中,作者舉出了工業革命時期顛覆式創新的例子說明顛覆式的創新可能給市場帶來翻天覆地的變化。對于IT行業亦是如此,一項顛覆式的技術足以讓一個發展成熟的公司失去市場。那么一個發展已經足夠穩定的公司如何權衡技術維持與技術創新的發展呢?
(2)第十六章16.4中,作者通過三個小朋友與魔方創新的故事闡述了創新不但需要前人經驗與市場的積累,最重要的是不能把“屁股”對著觀眾。16.2中作者通過黃金點游戲來說明成功的創新還需要恰當的時機。那我們在創新的時候,如何才能創新出大眾喜歡的東西并在最恰當的時間推出這項創新呢?
(3)第五章《團隊和流程》提到,完成軟件行業的項目往往需要一個高效率的團隊,所以軟件行業中產生了很多種團隊模式,且各有各的利與弊。那我們應該如何正確的選擇出一個最適合自己的團隊運行模式才能把效率最大化呢?
(4)第十三章《軟件測試》中,作者在P281提到“如果這里面各個模塊的用戶界面不一致(即使是‘確認’和‘取消’按鈕的次序不同),用戶使用起來都會很不方便。這些問題都是在單獨模塊測試中不容易發現的”,那應該如何在給用戶使用前發現并解決這一類的問題呢?
(5)第十四章《質量保障》中作者提到“軟件要在功能、成本、時間三個方面滿足利益相關者的需求”,那么軟件開發者應當如何在時間緊張的情況下保證軟件的質量呢?
四.了解和調查源程序版本管理工具
1、GIT
優點:1、GIT 出來的目標是支持多人同時維護龐大的開源代碼(linux),所以它的分支能力特別強大,體驗特別好。加上支持離線提交,分布式推送拉取,使得代碼層面的協作相當流暢。
2、適合分布式開發,強調個體。?
3、公共服務器壓力和數據量都不會太大。?
4、速度快、靈活。?
缺點:1、學習周期相對而言比較長。?
2、不符合常規思維。?
3、代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息。
2、Microsoft TFS
優點:在用戶習慣上,TFS秉承了微軟所有產品的特新,開發人員非常容易上手。軟件使用過程中,用戶會發現與日常導入操作系統、開發工具(VS),Office軟件等有很多共同的體驗。
缺點:TFS 定位并不是源代碼管理,而是一個團隊工具,貫穿需求,開發,測試,發布各個流程提供自動化工具。
3、SVN
優點:1、 管理方便,邏輯明確,符合一般人思維習慣。?
???? ?2、 易于管理,集中式服務器更能保證安全性。?
??? ??3、 代碼一致性非常高。?
?? ???4、 適合開發人數不多的項目開發。?
缺點:1、 服務器壓力太大,數據庫容量暴增。?
????? 2、 如果不能連接到服務器上,基本上不可以工作,看上面第二步,如果服務器不能連接上,就不能提交,還原,對比等等。?
????? 3、 不適合開源開發(開發人數非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明確的權限管理機制(例如分支訪問限制),可以實現分層管理,從而很好的解決開發人數眾多的問題。
?