作业课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/
作业要求:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706
课程目标:了解软件工程,学会去分析项目,了解自己要如何去做
这次作业在实现目标方面的帮助:让我自主去学习,了解了这门课的目标
一.建立博客并介绍自己
- 博客地址:https://www.cnblogs.com/zbwsl/
- 自我介绍:由于大学的舒适,我处于半划水状态,我感觉自己还是个初学者,但今年我认为我要加油了,专业课程越来越多,基础课程越来越少,现在我已经进入大二下学期了,不能再迷茫。在别的兴趣爱好方面,我比较喜欢打乒乓,玩游戏,听歌。我个人感觉自己的记忆力比较好吧。
二.阅读与思考
(1)回想一下你初入大学时对软件工程专业的畅想
1.当初你是如何做出选择软件工程专业的决定的?
当初选择这个专业有几点原因,首先,主要是分数,其次,对这门专业并不了解,感兴趣,最后,个人的决定吧
2.你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
一般符合吧,虽然没我想象的那么容易,但那些课程也让那个我对这门课程有了很多认知,不再是一窍不通
3.你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
由于比较喜欢游戏,所以对开发游戏还是比较感兴趣的,我感觉还是比较擅长的
4.将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
我现在还拿不定,主要是现在能力不足,但如果将来从事这方面的工作,我还是想近一点吧,比如就在成都或重庆,公司到没有大的追求,但岗位还是越高越好。如果将来没有从事这方面的工作,可能是没学到家吧
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
1.自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
具备了用c,c#等语言来编程的能力,写过的代码量我感觉又上万了
2.离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
编程语言还需丰富,代码量不足,没有项目经验
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
1.对照以上你阅读的前人们的经历,你的选择是什么?
我会选择工作,虽说开始很难,需要更多的学习,但不管是从哪方面去看,我都会选择工作,每个人的处境不同,机遇不同,想法不同
2.在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优势:我可能会因为工作优先获得社会经验,可能对人生有更透彻的理解,对生活有更多的理解,能积累几年的工作经验。
劣势:我们之间的差距可能会更大,他们有更多的选择。
3.针对你的选择,你给自己的大三设定的规划安排是什么?
首先,我会去学习更多,如果有着去公司实践的机会,我一定不会放过,尽量去参加有利于自身技能提高得项目,让自己能熟练自己的技能,锻炼自己的能力。
完成一个类C文法的编译器,我感觉这是我们自身能力的体现
三.提有质量的问题
1.快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。注明是哪一章哪一节。要有观点、有证据或分析。字数不是直接的考核标准,但是要求篇幅长到能把观点表述清楚。
问题:一.在第16章1.2节,最开始提出一个观点,大家都喜欢创新,但在后面的内容又论证了大家都不喜欢创新,但我认为,其实大家都是喜欢创新的,而且只有创新,才会出现新东西,新产业,只是害 怕被超越,就像手机行业,因为创新,手机行业出现了新的成功者,人们对自己的创新成果是很高兴的,但对别人的创新却不屑一顾。所以我认为大家都是喜欢创新的。
二.在第2章2.1节单元测试,它既强调了单元测试要快速,但他又具有独立性,需要最熟悉这个程序的人去测试,还必须测试所有方法,这不就和前面矛盾了吗,而且还不一定正确。我认为这个方 法有很多的局限性。
三.第6章的敏捷流程,这是一种特别强调速度,时间能短则短的一种开发流程,但我认为这种流程是否会有很大的缺点,比如质量保证,成果是否满足市场需求,是否会有巨大错误。
四.第10章10.4节,功能驱动(FDD),它侧重于单元测试,也就意味着我的第二问上的问题在功能驱动上也有可能发生。对其他测试方式的投入不足,会有很大问题。
五.第5章第二节的内容中,全是软件团队的设计模式,但我感觉并不全面。
四.了解和调0查源程序版本管理工具
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点?
1.GitHub:
优点:
- 基于web工作的工具,可以作为一个版本控制系统和协作工具,用它来发布工作。
- 他支持多人共同完成一个项目,可以在同一页面对话交流。
- 创建自己的项目,并备份,代码不需要保存在本地或者服务器
- 不需要设置主机或者DNS。
缺点:
- Github使用新手,需要不断实践和时间
- 他不是捕捉创意过程和记录创意点子的最佳工具。
- 如果,你专门在GIthub上工作,版本控制存储库就值得你拥有,也需要你长期付出。
2.Microsoft TFS:
优点:
1.与vs无缝连接,方便原代码的管理
2.不会上传.NET开发时生成的垃圾文件
3.支持数据库版本管理,自带很多管理工具(测试管理器、反馈客户端、界面设计工具等等)
缺点
- 能应用起来的团队、公司的数量极少
3.Git:
优点:
- 分布式,所有本地库包含了远程库的所有内容
- 优秀的分支模型,打分支以及合并分支,机器方便
- 快速,Git由于代码都在本地,打分支和合并分支机器快速
缺点:
- 没有比较完善的访问权限控制
- 子模块管理一直不完善
- 分支合并的历史很容易搞乱