软工网络16个人作业1
Task1:注册个人博客账号
- 目的:提交每次作业
- 博客账号(用户名):网络1613冯一
- 网址:https://www.cnblogs.com/fy201621123066/
Task2:注册码云账号
- 目的:管理你的项目,记录(源码、文档,历次版本变更,bug发现与修复)等信息。
- 账号:fyxjm
- 网址:https://gitee.com/fyxjm
Task3:提出问题
快速通读教材《构建之法》,并参照提问模板,提出5个问题。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:
- 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
- 列出一些事例或资料,支持你的提问。
- 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
一个模板可以是这样:
我看了这一段文字 (引用文字),有这个问题(提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。
或者这样:
我反对作者的观点(提出作者的观点,自己的观点,以及理由)。
大学生应该能写出自己的思考, 而不是摘抄书本内容。
提示:编程经验不多的同学,建议看16章 “创新”, 提出自己的问题。
问题一:软件工程到底是什么,学习软件工程到底该做什么?
通过阅读第一章“概论”,其中1.1讲述的是“软件=程序+软件工程”,其中“程序”得到了很好的解释
程序,在这里指的是源程序,就是一行行的代码。它们是建立在数据结构上的一些算法。程序还要对数据进行操作,这些数据有些静态的(例如软件的图标、提示信息),有些是动态(例如程序生成的随机数字、程序通过网络下载的数据、用户的文字或语音输入等)
但软件工程到底是什么没有很清楚的说明,对此存在着疑问。
问题二:什么是软件工程师?如何成为一个优秀的软件工程师?
课本中第三章写的是软件工程师的成长,但着重与介绍软件开发与团队之间的关系
团队流程是软件开发流程中的一部分,在大部分成功的软件团队模型中,各个角色(开发、测试、项目管理等)考虑问题的出发点是有区别的,不同意见的冲突在所难免,一个好的团队流程能把冲突的积极方面(各自尽力把自己的工作做好,说服别人)释放出来,而避免消极方面(因为冲突而产生的消极、抵触情绪等)
那到底独立的软件工程师是什么,该做些什么,在团队中是什么样的角色?让人值得思考。
问题三:敏捷流程是快的流程?敏捷流程的定义是什么?
第六章的敏捷流程,其中介绍了敏捷开发的原则,有
- 尽早并持续地交付有价值的软件以满足顾客需求
- 敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势
- 经常发布可用的软件。发布间隔可以从几周到几个月,能短则短
- 业务人员和开发人员在项目开发过程中应该每天共同工作
- 以有进取心的人为项目核心,充分支持信任他们
- 无论团队内外,面对面的交流始终是最有效的沟通方式
- 可用的软件是衡量项目进展的主要指标
- 敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去
- 只有不断关注技术和设计,才能越来越敏捷
- 保持简明——尽可能简化工作量是技艺——极为重要
- 只有能自我管理的团队才能创造优秀的架构、需求和设计
- 时时总结如何提高团队效率,并付诸行动
这里只是说了敏捷开发的原则,并没有给出准确的定义,以至于无法很好的理解敏捷流程的定义。
问题四:在用户体验和软件质量冲突时,我们应该满足哪一方?如何去权衡?
在阅读到第12章时,其中12.1.6 讲的是用户体验和质量,我们在开发软件时或者是更新软件时,难免会遇到上述的情况。如果用户的需求,用户的体验和我们的优化的功能或者软件起冲突了,那么我们是应该满足用户的需求呢,还是继续推出优化软件?作者后面引用了一个案例表达了作者自己的想法,似乎在现实中还是不能很好的解决这个问题,而且并不是所有的情况都可以是顾用户的需求,舍功能的优化的。还有就是当两者利弊都差不多时,我们该怎么选择呢?是否能有个准则来让我们权衡这之间的问题呢?
问题五:创新在IT行业中是什么样的角色?怎样去创新?
第16章整体都在讲创新,阅读到创新者就是冒险家这里,看到了创新者和团队的几个特点:
- 创新不是喜欢冒险,而是能够从多次失败中恢复并继续努力
- 有强烈的好奇心
- 自学、动手能力强,能不断地做出新东西
- 不太在乎面子,而在乎自己能否进步
- 价值观坚定
课本中又说了要成为领域专家,才能创新;技术是创新的关键;那么我们到底应该怎么样去创新,达到什么高度才能去创新呢?
Task4:Git基本操作练习
完成以下Git基本操作
1.将https://gitee.com/happyfaye/SoftwareEngineering仓库fork到自己的账号下
2.将远程仓库clone至本地仓库
3.在本地仓库添加学号姓名.txt(例如:201621123000happy.txt),并提交至远程仓库
4.在本地修改该文本内容并再次提交
5.给出提交历史信息截图