软工网络15个人作业4——alpha阶段个人总结

软工网络15个人作业4——alpha阶段个人总结

======================================

一、个人总结

1.在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程;
2.请用自我评价表:http://www.cnblogs.com/xinz/p/3852177.html 有比较才会有进步。

类型 具体技能和面试问题 现在的回答
语言 最拿手的计算机语言之一(偏前端),代码量是多少 因为现在并没有接触相关的课程,自己也没有特意去了解,故没有最拿手的偏前端计算机语言,也就提不上代码量了
语言 最拿手的计算机语言之二(偏后端),代码量是多少 偏后端的计算机语言自己打的最多的应该是java了,代码量大概有5到6k
软件实现 有没有在别人的代码基础上进行改进,你是怎么读懂别人的代码的 在别人的代码基础上进行改进肯定是有过的,次数也不算少,看懂他们的代码主要是通过结合他们的注释和自己对语法的理解;
测试软件 你如何测试自己的代码?
你如何测试别人的代码?
你掌握了多少种测试工具和方法?
你写过测试工具么?
测试自己的代码主要通过运行代码
测试别人的代码主要还是通过自己运行一遍,将可能的结果尽量都试出来
测试工具和方法在上这门课之前只是会使用eclipse中的junit进行测试,后来在结对编程时接触到了JProfier
自己没有写过
效能分析 你写过的最复杂的代码是什么?你是如何测试和改进它的效能的,用了什么工具,如何分析? 最复杂的代码应该算是去年java的课设
当时并没有使用效能测试的工具进行测试
需求分析 你做过多少个有实际用户的项目,用户人数多少,你的项目有什么创新的地方? 只有目前团队编程正在做的24点游戏,不同于现在的游戏需要专门空出一段时间来游戏,我们只需利用碎片化的时间就可以游戏
项目管理 你参加过项目管理吗?请描述一下两个当下流行的开发方法在你的项目中的具体应用情况
如何决定项目中各个任务的优先次序,有什么理论来支持你的做法?
如果你突然发现项目不能按时完成,你作为项目领导,有什么办法?
项目管理主要还是通过码云来管理
项目任务优先顺序就目前来说还是按确立时间先后来进行的
如果突然发现项目不能按时完成,我作为项目领导会先了解无法按时完成的原因,根据原因是否情有可原来决定下一步的解决方法,如果真的有特殊情况的话会酌情延长时间
软件设计 你做过架构设计,模块化设计,接口设什么?请说明一下你为何是这样设计,你比较过什么不同的设计方式,你的设计取得什么结果? 只是在java的实验和课设中接触过接口设计,接口主要的功能就是使代码更加地灵活
质量意识 你是怎么做到代码复审的,你加入团队后,能帮助我们提高代码质量么,请具体说怎么提高? 从设计是否周全,代码可读性,代码是否有错误,程序是否可运行,结果是否正确等方面进行代码复审。代码必须要符合代码规范,代码的灵活性要够高,方便进行修改。
工具/社区 你在各种开发平台都使用过什么工具,自己写过什么工具来改进工作效率?给社区贡献过什么工具和代码?Github有分享代码么?你写的技术博客坚持了多久,读者最多的是那一篇? 目前没有在开发平台使用过工具,也没有写过;Github有分享过结对编程代码和java课程的实验代码;博客的功能就是用来提交博客作业的,阅读量都差不多
团队协作 请描述你在项目中如何说服同伴采取你更好的方案,或是听取别人的意见改进自己的方案?你如何说服懒惰的同伴加紧工作,实现团队的目标? 说出我的方案,然后采取这种方案的理由。别人的意见,首先要听懂并理解,然后决定是否要采纳别人的意见,如果不采纳也要说出个所以然
理论素养 你上过什么数学,计算机或是理论课,
请举出具体的例子,说明你学到的理论知识如何帮助你解决实际问题。
高数、离散、概率论、计算机组成原理、线性代数等
在需要编写一些与数学知识有关的函数时,如斐波那契数就需要数学方面的知识辅助了
自我管理 全年级你专业排名多少?
你从刚入学(大一年级)到现在的排名有变化么?
如何解释你的排名的变化?
大三上排名中游偏上;大学一二年纪成绩都在这个范围波动;原因是:确定自己不从事本专业工作,也就没有花很多心思在这上面

二、回答问题

我们在课程开始之初,曾经要求大家针对软件工程提出问题:个人阅读作业2,那么在经过alpha阶段,大家是否对软件工程有了一定的了解?请结合自己提出的问题进行回答

Q1:第三章-软件工程师的成长中提到了“专与精的关系”,一个大的团队由各方面专精的多位程序员组成,那么如果假设有这么一位全能的、各方面技术都过硬的超级能干的程序员,在不考虑时间和精力的前提下能否靠个人取代一个团队的情况呢?

answer:经过alpha阶段后,发现即使时间有富余的话,个人也是很难负担起所有的工作的,那样实在是工作量太大。

Q2:在第二章-个人技术和流程中提到了单元测试,"软件的很多错误都来源于程序员对模块功能的误解、疏忽或不了解模块的变化……单元测试就是一个很有效的解决方案。"这个单元测试会让我联想到以前写代码的时经常干的一件事——调试。调试是对于在编码过程中产生的bug进行解决,那么我们在进行软件编程的过程中,对于调试和单元测试应该怎样分配精力和时间呢?又或者说哪一个更值得我们花更多的时间?

answer:真正项目做起来的话,我发现其实单元测试可能要花更多的时间,单元测试涉及到很多细节的问题,需要投入大量的时间进行改正和优化。

Q3:整本书快速浏览下来发现自己对于软件工程的理解已经不仅仅再局限于编程而已了。从个人到团队再到实际的项目开发,这里边不仅仅有编程,还有团队的协作,队友与队友的相处关系等等。可以说这本构建之法不仅仅构建的是软件开发方法,他也可以从中延伸,生活中的很多事都可以运用构建之法。

answer:确实经过alpha阶段后,我觉得编程不是最重要的,怎样合理地安排时间、安排任务、协作来提高效率更加重要。

三、再提问题

同时,大家一定会在实践过程中产生更多问题, 结合你的读书(教材,博客,参考书), 实践, 再提出关于软件工程的 5 个问题。
1.在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文。
2.列出一些事例或资料,支持你的提问 。
3.说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?

  • 一个模板可以是这样:
    我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。

Q1:如果开发出一款软件后,尽管符合用户的需求,但是用户没有了多大的使用的兴趣怎么办?那么开发出来的软件还有存在的必要吗?

Q2:第九章项目经理中的9.3 PM做开发和测试之外的所有事情,经过我们上个阶段,发现这样做似乎PM的工作量很有可能非常大,那么是否可以PM也参与开发,将原有的工作与其他成员分担一些?

Q3:似乎在我们课程中的这种团队编程的形式下,PM的作用似乎体现不太出来,是否需要改变?

Q4:“软件团队的人员也会流动,新的成员要尽快读懂已有的程序,了解程序的设计。”这种人员流动的机制是很好,但是我们没有办法保证流动到自己团队的一定就是“人才”啊,如果来了一个什么都不做的又请不走的“大佛”怎么办?

Q5:用户需求调查我们多是采用问卷的方式来获取所谓的需求,但是收回的问卷有多大的可信度呢,这是否就能够作为我们开发的初衷了呢?

原文地址:https://www.cnblogs.com/Bonnenult/p/9060442.html