《构建之法》——个人总结
《构建之法》——个人总结
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign |
---|---|
这个作业要求在哪里 | https://www.cnblogs.com/harry240/p/11524252.html |
团队名称 | Golden Express |
这个作业的目标 | 回首、展望 |
Github地址 | https://github.com/isliudong/eyoo2 |
一、请回望第一次博客作业,你对于软件工程课程的想象和提出的问题
在我的第一次博客作业中,我认为软件工程是个关于软件创造的学文,现在看来其实也差不多;
在第一次写博客时我提出了几个关于软件工程的问题,虽然当时也有一点思考但是只是片面,现在来看当初的我是多么的才疏学浅,这门课让我懂得了许多。
二、链接到以前的博客链接
第一次的博客链接(稚嫩却不失真诚,哈哈哈)
三、尝试对自己提出的问题进行解答,并阐明,是如何通过看书,实践,或者讨论弄明白的
1.第一章概论中我对:软件=程序+软件工程的说法不是很理解。这样写是不是就是程序和软件工程是分开的意思呢?意思说软件工程不包括程序是吗?
个人观点:其实我发现是大致这样的,但是软件工程是不包括程序的,它是一种方法。以前我认为这里的软件工程是一种狭义的说法,将程序本身认为是工程的原料,而不是要达成的目标。意思是:软件是将原料通过工程后的产物;这相当于从来源定义软件。还有一种说法是:软件等于程序加文档,这应当是从组成来定义软件的。
2.在第四章两人合作结对编程中,两个人共同完成一个任务,如何确保两人的工作量?如果有人偷懒岂不是很难发现?
个人观点:以前我认为这应该是这个模式最大的缺点,合作必然造成极大的耦合,责任难分。在允许的条件下可以加入第三方监督者,这样既可以发挥结对编程的优势又可以避免其带来的负面影响。其实也不错,只是现在知道了一种方法很难十全十美。
3.第十三章中讲了很多种软件测试方法,但是我怎么知道要用哪种合适呢?
个人观点:以前我认为既然没有明确提出测试程度分类,是否可以认为这是个极大依赖经验的地方呢。其实这里是需要测试者有一定的能力,知道用什么方法去测试。
4.第五章团队和流程中,5.3.5老板驱动流程中作者归纳该方法的原因为如下四点:1.订单靠老板个人关系 2 .大型企业,往往软件功能由行政部体系决定 3.老板更懂市场和竞争 4.团队未成熟
个人观点:以前我认为可能老板本身就是技术大牛,团队也很成熟,所以老板可以把方案说得很仔细,也是一种因素吧。其实大致没错
5.第十一章软件设计与实现的11.5.3构建大师一节中,将构建的任务交给每次导致构建失败的人,会不会容易导致项目构建出现不稳定,或者增加隐藏bug呢?
个人观点 :以前我认为将构建的任务交给每次导致构建失败的人,因此这个人大概是轮换的,不是专业的,容易出现问题,还可能发生责任不明确的问题。确实可以这样,但是不妨加一个监管者
四、是否产生了新的问题?请提出。
产生的新的问题:
暂无
五、经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
包括以下内容:
1、哪一次作业让你印象最深刻?为什么?
关于写博客,发现博客原来不是那么难写但也不是一件简单的事
2、累计花了多少个小时在软工实践上?
3、学习和使用的新软件;
git、服务器控制相关软件
4、学习和使用的新工具;
git、墨刀、Axure、idea git插件等
5)学习和掌握的新语言、新平台;
无
- 学习和掌握的新方法;
项目管理,敏捷的开发、结对编程,软件项目开发流程控制
- 其他方面的提升。
团队协作能力、编码能力、查找能力、交流能力、文档撰写能力
项目开发过程中可能会写到的文档:
1、可行性分析报告
说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。
2、项目开发计划
为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。
3、软件需求说明书(软件规格说明书)
对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。
4、概要设计说明书
该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。
5、详细设计说明书
着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。
6、用户操作手册
本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。
7、测试计划
为做好集成测试和验收测试,需为如何组织测试制订实施计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。
8、测试分析报告
测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。
9、开发进度月报
该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。
10、项目开发总结报告
软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。
11、软件维护手册
主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。
12、软件问题报告
指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。
13、软件修改报告
软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。
六、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?
-
萌芽阶段
团队初期,任务布置混乱,大家摸不着头脑 -
磨合阶段
团队成员开始合作宛城相关任务,开始朝着一个井然有序的方向前进,不再是各搞各的
-
规范阶段
大家开始在第一个alpha版本发布后,统一遵守团队规范,统一编码格式,统一文档格式等等;再也不是靠自己去猜了。
七、怎样证明你学会了软件工程?软件工程的有些什么内容
1、研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件;
第一天注册用户达到4人
第二天注册用户达到9人
第三天注册用户达到14人
2、有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ;每个人都自己的事项目井然有序,严格依照流程办事
八、个性发挥:团队合照
九、最后想说几句:
项目完了,课程也结束了,但这只是个开始。
软件工程这门课教会我的不仅仅是代码工程,它是一种思想,是一种在往后生活工作中无处不用的工程思想;同时谢谢这门课让我体会到实际的工程开发之间的团队合作交流。