软件工程实践寒假作业
| 这个作业属于哪个课程 | 2022福大-软件工程、实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践寒假作业 |
| 这个作业的目标 | 熟悉markdown语法和git的使用,阅读《构建之法》,撰写博客(回首过去、立足当下、展望未来、思维导图和学习路线)为下学期软工实践,为今后的学习、工作做好准备 |
| 其他参考文献 | 《构建之法》(邹欣、第三版) |
目录
- 一、准备工作
- 上传截图
- 仓库地址
- 二、回首过去
- 当初你为什么选择软件工程这个专业?
- 当初对软件工程这个专业的期待和想象是什么?
- 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
- 三、立足当下
- 个人简历
- 四、展望未来
- 《构建之法》问题与思考
- 职业规划
- 软件工程实践课程的理解与期望
- 五、思维导图和学习路线
- 思维导图
- 学习路线图
一、准备工作
上传截图

仓库地址
https://gitcode.net/m0_49128859/081900317
二、回首过去
当初你为什么选择软件工程这个专业?
当初高考结束时,想以后从事计算机相关行业,硬件、软件都可以,因为被调剂,一个都没上.后来转专业就选择软件工程。觉得通过学习编程知识,可以把自己的想法实现,是一件很有趣的事情。我觉得软件工程其实和土木工程类似,一个项目,由不同的人合作共同完成,只是两个行业不同,一个是实现软件,一个是建造设施。
当初对软件工程这个专业的期待和想象是什么?
还没有上这个专业以前,觉得通过自己编写代码,可以实现一些很酷的软件,网站。当然在这之前也听过很多前辈的经历,不论是工作还是创业,都是日渐秃头的过程。但是我依然觉得这个专业应该没有大家口中的那么可怕,写代码可以写秃头,后来觉得事实可能就是这样。
当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
高考结束后,接触了一些编程知识,希望先重基础学起,通用的语言,计算机基础知识,算法与数据结构。学习算法导论,提高自己编码水平,成为算法大佬。学习前沿技术,实现自己的想法。
三、立足当下
个人简历
- 性别:男
- 现居城市:福建福州
- 兴趣爱好:运动健身、看电影
- 成果和获奖经历:大一获校三等奖学金、大二获校二等奖学金
- 专业水平:
- 掌握的编程语言:java,C,C++,C#,python,php,html,css,javaScript
- 技术框架:Yii2.0,MySQL
- 开发软件:Eclipse,AndroidStudio,Dev-C++,VisualStudio,VScode,IntelliJ IDEA
- 累计代码量:3W+
- 项目经历:
- 基于Yii2.0框架实现的博客系统
- 基于Yii2.0实现博客系统的前后台界面,后台包括文章管理、评论管理、附件管理、头像管理、基于角色的用户权限管理、用户管理以及管理员,前台包括文章列表、文章详情、评论列表、前端图片轮播以及标签云,以及一些页面美化与缓存优化。
- 主要担任后端开发的角色
- 负责该项目的基础功能,附件管理,头像管理,基于角色的用户权限管理,前端图片轮播以及项目测试
- 基于JDBC的智能门阀管理系统(java+mysql)
- 基于java编程语言与mysql数据库,实现智能门阀管理系统,包括实时信息监测,数据可视化,历史信息查看,异常数据警报提醒,数据显示单位修改等功能。
- 主要担任前后端开发的角色
- 负责主界面设计,整合程序,以及项目测试
- 基于Yii2.0框架实现的博客系统
四、展望未来
《构建之法》问题与思考
Q:1.2.2 大陆高校中的计算机专业与软件专业是否并不像书中说的那样雷同?
A:在我看来在计算机专业与软件专业确实有雷同之处,也有不同之处。其实在本科计算机专业与软件专业的学习课程基本相同,计算机专业涉及面可能更广,但是深度我觉得与软件专业是相同的,计算机专业并不意味着涉及更多的理论,而是与软件工程专业一样。计算机专业的毕业生大部分是投身于解决工程问题,虽然计算机偏理论,但是毕业生由于就业前景好,对科研没有兴趣,也不会投身解决理论问题,而更多投身解决工程问题。
原问题链接Q:1.2.4 软件的行为和用户的期望值不一样,就一定是 Bug 吗?
A:是否是bug取决于用户、开发者的不同角度。但是软件的行为就是为了满足用户需求,如果软件只是开发人员在预计的时间内发布的“足够好”的软件,不能满足用户期望值,就是存在Bug。因此,软件的行为和用户的期望值不一样,就是存在Bug。
原问题链接Q:2.1 单元测试由最熟悉代码的人来写是否足够呢?
A:足够,最熟悉代码的人了解代码的目的、特点和实现的局限性,让熟悉代码的人来写单元测试是足够的,这样单元测试就能体现API的语义,如果让不熟悉代码的人来代劳,语义的准确性不能得到保障,会产生歧义。
原问题链接Q:2.1 如何提高单元测试的覆盖率(尤其是对于经验不足的新人)?
A:对于经验不足的新手,提高单元测试的覆盖率,应该从一下几个层次入手,函数的覆盖,语句的覆盖,分支的覆盖,条件的覆盖,分支覆盖是强有力的测试依据,必须测试公开的和私有的函数/方法,提高覆盖率。
原问题链接Q:2.1 单元测试中作者自己测试最好吗,单元测试使用随机数真的没有意义吗?
A:单元测试由作者自己测试最好,代码的作者最了解代码的目的、特点和实现的局限性。单元测试应该产生可重复、一致的结果,如果某个随机数导致程序出错,但是下一次运行又不能重复这一个错误,则于事无补,所以单元测试使用随机数没有意义。
原问题链接
职业规划
- 成为一名研究生,多参加实践,不断提高自身的编程水平,在研究生阶段逐渐确定自己的职业生涯规划。毕业后,可能成为后端的开发工程师,再逐渐成为后端的开发架构师。或者从事自己喜欢的其他方向的工作。
软件工程实践课程的理解与期望
- 通过软件工程实践课程学习Java后端以及SpringBoot2框架,提高自身编程水平,交流能力,以及团队协作能力。
- 希望与老师、助教多多交流,在这门课程的学习过程中,收获更多,提高能力。
五、思维导图和学习路线
思维导图

学习路线图




