个人作业收官——软件工程实践总结
個人作業收官——軟件工程實踐總結
一、回望開學初對于軟件工程課程的想象,回望博客開篇時對于這門課和這學期的期望,
1)對比現在的你和開學初博客開篇的課程目標和期待。
能力的預期
1.對于java的一些框架有了一定認識,不過學習的目標還有一部分沒完成。
2.在做實踐的過程中,和大家的溝通能力得到提高,可以很快的知道別人想要我做什么,并且可以很快地實現;也遇到了一些問題,比如如何做一個定時任務,每天定時刷新數據庫;這些自己可以比較快的上網搜索解決。
項目課程的期望
棟哥的每個階段都要求我們做好多事情,雖然有些事并沒有感受到有多大好處,但是回想整個流程感覺這樣才是正規的軟件開發的流程。
2)總結這門課程的實踐給你帶來的提升:
Git
GitHub、markdown
2960 行
模擬測試
使用Spring框架完成定時任務
二、寫下屬于自己的人月神話
我覺得比較重要的是每天要有計劃,今天要完成哪些人任務,如果出現時間沖突,要如何重新調整計劃。剛開始的時候并沒有寫issus這些東西,感覺麻煩,后來寫了之后,比較好的一點是,雖然沒用這個之前,每天自己也有計劃,但是使用issues之后,每天的安排和目標會更明確,對于任務的完成度有了一個可以量化的標準。三、對下一屆實踐的建議,或者對于開學初的你,對于大一的你,對于開學初的我,你有什么想建議和告知的呢?對于后來人的期許。
我認為首先作為一個程序員,自學的能力很重要,因為我們遇到的很多BUG基本上要靠自己解決,學會利用好搜索工具;然后團隊合作比較重要的就是一個團隊最重要的是態度,大家都認真的執行計劃和安排團隊才能運行下去。四、分析一下自己所處的團隊。軟件工程實踐是大學里少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過么,最后到達了“創造”階段了么?
我所在的團隊大家分工比較明確,我負責后臺,兩個寫界面,一個負責前后端的對接,還有一個主要任務是寫文檔。我們剛開始的時候就劃分好了每個人負責的部分,所以萌芽階段很快就過去了;磨合階段稍微長一點,主要是對于需求大家觀點不同,有過爭執;剩下的時間基本就是規范階段了,需求基本確定了,而且經過一段時間合作大家走出了步調,我寫完接口,就會更新接口文檔,負責對接的就根據文檔對接,并給出對應文檔,前端使用接口發現問題就記錄下來教給我們處理(雖然有些文檔不是很規范,但是很好的促進了軟件的完成),然后這個過程不斷循環。創造,這個有點難。五、閱讀軟件工程中關于代碼質量的的經典論文,從下列文獻中選擇一篇或若干篇,結合自己的實際做一個閱讀筆記(例如,自己寫的代碼質量如何,是不是一個大泥球,如何衡量自己代碼的質量)?從以下參考論文中選擇一篇或若干篇:
參考論文文獻:
[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87
摘要:
In our analysis we used a set of measurement programs
available in the Debian GNU/Linux release, and a number of Perl
scripts for managing measurement results. The metrics considered
are among the most widely reported and used in the literature and
are listed here:
- Number of lines of code (LOC) measures the physical size of the program code, excluding blank lines and comments.
- Percentage of lines of comments with respect to the number of lines of code (PerCM) describes the self-descriptiveness of the code.
- Halstead Volume (V). Halstead [4] defined four metrics that can be measured from a program's source code: n1 (the number of distinct operators), n2 (the number of distinct operands), N1 (the total number of operators) and N2 (the total number of operands). Based on them, he defined program vocabulary n (given by n = n1 + n2) and program length N (given by N = N1 + N2). Finally, he defined Volume, a composite metric given by the formula V = N * (LOG2 n). Halstead Volume provides an alternative measure for the size of a program.
- Cyclomatic Complexity V(g). Proposed by McCabe [7], this metric counts the number of independent paths in the control flow graph of a program component. Its value depends on the number of branches caused by conditional statements (if-then-else). It measures the structural complexity of the component.
It would be quite difficult to reach a consensus about the metric ranges that OSS code should respect in order to define an OSS-specific programming standard. In this study, rather than comparing with a predefined standard, we preferred to directly compare maintainability measures of open source with those obtained for closed source software, or simply to observe the trend of these measures and derive conjectures about improvement or deterioration of code quality. Because it may be difficult to obtain a single picture about maintainability from many measures derived from many different metrics, we preferred to use a different approach in our study based on the composite metric, Maintainability Index (MI), chosen by SEI [6] as the most suitable tool for measuring the maintainability of systems with high-quality requirements. We chose MI because we believe that OSS should conform to such standards in order to compete with CSS. Moreover, various OSS projects, including some we studied, are often part of large scale, critical applications. MI following this formula:
where avgV stands for "average Halstead Volume per module" and avgV(g), avgLOC, and avgPerCM are defined in a similar way.
取值并計算得:
n1=1; n2=45; N1=1; N2=49
module=4; LOC=2960
V(g)=2; PerCM=180
V=275; MI=50.94
六、怎樣證明你學會了軟件工程?
1 研發出符合用戶需求的軟件
這個沒正式發布,也沒什么要講的。
2 通過一系列工具,流程,團隊合作,能夠在預計的時間內發布 “足夠好” 的軟件
1.需求分析階段有需求規格說明書
2.設計階段用墨客進行原型設計,PowerDesign進行數據庫設計
3.實現使用GitHub進行代碼整合,PostMan測試接口;每天都有提交自己完成的任務以及次日計劃。
4.部署在云服務器上,使用Tomcat部署。
3 并且通過數據展現軟件是可以維護和繼續發展的。
后臺有接口文檔,前端有需求規格說明書、項目介紹、編譯說明和安裝說明,繼續維護和拓展還是可以進行下去的。
轉載于:https://www.cnblogs.com/vvxyz/p/6230796.html
總結
以上是生活随笔為你收集整理的个人作业收官——软件工程实践总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象原型链小结
- 下一篇: ==与equals 的使用比较