原博客链接

原问题1:有没有系统的方法来提高一开始的文档的设计后的质量呢

在之前的OO课程上,我已经深刻领会到了设计的重要性,而且在这次的团队开发中,我也是负责从需求分析到代码设计的转换,所以对设计这个过程有一定的理解。

如果要我现在回答上面的问题,我觉得我会说,唯一的方法就是:多看书提高自己的水平,多实践改正问题,多反思并不断更新设计,才能提高设计的质量。而且这一切的前提我觉得是需求分析做的很充分。关于这一点,在下面的新问题中我会详细阐述。

原问题2:在评判软件的好坏时,是不是需要考虑软件背后的成本来对软件好坏进行评判呢?

这个问题老师已经给我做了解答,一定是需要综合考虑各个因素评判好坏的

原问题3:对于没有集体主义精神的人该如何管理呢?

管理是门很大的学问,不过还好在我们的团队项目中,大家都是有责任心的。

新的理解和收获

新收获1:需求分析十分重要

我们的团队开发是瀑布模式,即一部分人先制定游戏的内容,然后我来把他们的游戏内容转化为代码的设计,在设计好后,我们开始编写代码,一切看起来很和谐,但是如果考虑我们现有的时间成本就会发现这样的模式并不可取。

假如游戏内容设计人员花了一周时间制定了游戏内容,然后设计人员花一周时间把他们的游戏内容转化为代码设计,最后开发人员进行代码的编写再花一周。可以看到在内容设计人员设计游戏内容的过程中,代码设计人员和开发人员其实无事可做,而在代码设计人员和开发人员开发时,游戏设计人员又会没有事情可做,这就好比一个单周期的CPU,同一时间只有一个部件在工作,所以我一直在想能不能把这个模式转化为类似流水线的模式?因为我们的开发时间其实挺短的,也就最多一个月时间,况且还有其他课程需要学习,开发时间短,任务重,瀑布模式虽然好,但是可能没有那么多时间顺次的走完一个流程。

我尝试在游戏内容设计人员给我一部分内容后我就开始设计,设计好后就可以开始开发了,但是当他们把另外一部分内容设计给我的时候,我内心是拒绝的,因为如果要把他们的另外一部分内容加进来的话,需要改动之前的一些架构。虽然软件开发讲求可扩展性,但是还是会有一些扩展的方向是一开始没有考虑到的,所以我们在β阶段对α阶段的改动是很大的,就是因为需求的改动太大了。

所以我个人认为,在瀑布模型中,需求分析是绝对不可以与其他阶段并行的,需求分析是接下来所有阶段的基础。

新收获2:框架选择时,尽量选择成熟的开发工具

这次我们做游戏选择的开发工具是一个新的编辑器,随着开发过程的深入,这个新编辑器逐渐的显露了出它的一些缺点:

  • 本身有一些bug
  • 相关的技术文档还不完善
  • 技术社区的很多问题没人解答
  • 没找到做单元测试的方法
  • 游戏场景文件不能很好的支持github的冲突处理(场景文件应该是自己生成的json格式的文件,如果多人开发时有了冲突,会发现有几百甚至上千处冲突需要合并,而且场景文件的内容还不好理解),这就导致多人合作开发成了问题

所以在选择开发工具时,选择成熟的,已经多个版本迭代的工具,才能减少开发的成本。

新收获3:代码规范真的很重要,而且代码规范的严格遵守更重要

多人开发,每个人都有每个人的编码习惯,如果没有一个统一的规范遵守,会发现最后写出来的代码可读性较差,也不利于接口之间的对接。

学习到的知识点

需求阶段: NABCD模型,认真分析需求,而且要尽早做,做充分

设计阶段:设计阶段很重要,设计的好才能更好的分工合作

实现阶段: 即使自己不负责测试,也不能说自己写的代码连测都不测,代码的质量是自己保证的不是测试人员给你保证的

测试阶段: 单元测试很重要,但是首先你在选择框架时要选择一个能做单元测试的

发布阶段: 不要以为发布阶段很简单,把文件打包一下上传就好了。发布要尽早做,因为可能有许多未知的事情,比如还要考虑审核时间。

维护阶段: 用户反馈很重要。

[2017BUAA软工]提问回顾的更多相关文章

  1. 2020BUAA软工提问回顾和个人总结作业

    2020BUAA软工提问回顾和个人总结作业 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾和个人总结作业 我在 ...

  2. [BUAA 软工]提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪个具体方面帮助我实现目标 督 ...

  3. [BUAA软工]提问回顾与个人总结

    提问回顾与个人总结 项目 内容 所属课程 2019春季计算机学院软件工程(任健) 所属作业 提问回顾与问题总结 课程目标 理解软件工程的作用和重要性,提升工程能力,团队协作能力 作业目标 回顾软工课程 ...

  4. [2017BUAA软工助教]第0次作业小结

    BUAA软工第0次作业小结 零.题目 作业链接: This is a hyperlink 一.评分规则 本次作业满分10分: 按时提交有分 一周内补交得0分 超过一周不交或抄袭倒扣全部分数 评分规则如 ...

  5. [2017BUAA软工助教]收集个人信息

    如题 我们要收集三个东西 1.学号 2.Github地址 ① 3.博客园博客地址 ② 请各位同学自行创建,并按照如下的格式评论在这篇博客下 "14061195+https://github. ...

  6. [2017BUAA软工助教]第0次个人作业

    学习别人的经验和体会 零.前言 我认为人生就是一次次地从<存在>到<光明>. 一.软件工程师的成长 0.这是一个博客索引 同学们在上这门课的时候基本都是大三,觉得在大学里,到教 ...

  7. [2017BUAA软工助教]学期总结

    一.表 学号 第0次 week1 week2 week3 个人项目 附加1 结对项目 附加2 a团队得分 a贡献分 b团队得分 b贡献分 阅读作业 提问回顾 总分1 总分2 14011100 8 8 ...

  8. [2017BUAA软工助教]个人项目小结

    2017BUAA个人项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7545780.html 二.评分细则 0.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...

  9. [2017BUAA软工助教]博客格式的详细说明

    一.为什么要强调博客格式 可以对比粗读一下这几篇博客然后自己感受一下博客格式对博客阅读体验的影响: MarkDown流:    [schaepher]2017春季 JMU 1414软工助教 链接汇总 ...

随机推荐

  1. C#实现之(自动更新)

    做开发的人,尤其是做客户端(C/S)系统开发的人都会遇到一个头疼的问题,就是软件的自动更新:系统发布后怎样自动的更新程序,在下有幸开发过一个自动更新程序,更新程序与任何宿主程序是完全独立的:只要在主程 ...

  2. php 两个二维数组重组新数组,数组下标不同

    Array ( [0] => Array ( [PosNum] => 27025008 [start_time] => 20180328164929 [type] => 0 ) ...

  3. Python2.7-stat

    stat模块,用于解释 os.stat(),os.lstat(),os.fstat() 返回的结果,定义了许多表示文件或路径的各个状态的常数和测试各个状态的函数具体参考 官方文档 和 http://w ...

  4. java过滤器filter使用

    一:filter:过滤器,拦截servlet的请求和响应. 1. package jd.com.filter; import javax.servlet.*; import java.io.IOExc ...

  5. SS、SP、BP寄存器

    SS, SP, BP 三个寄存器 SS:存放栈的段地址: SP:堆栈寄存器SP(stack pointer)存放栈的偏移地址; BP: 基数指针寄存器BP(base pointer)是一个寄存器,它的 ...

  6. [Usaco2009 Feb]Revamping Trails 道路升级 BZOJ1579

    分析: 比较裸的分层图最短路,我的实现方式是,每次求出1所有节点的最短路,之后用每一个节点更新与其相连的节点(取较小值),之后做K次,就求出了分层图的最短路了. 附上代码: #include < ...

  7. 【转】Google Chrome中顺时针/逆时针滚动圆的含义

    当浏览器处于以下状态时,看起来好像圆圈是逆时针滚动的: 解析主机名 连接服务器 等待响应(从服务器发送第一个字节之前?) 当浏览器处于以下状态时,圆圈似乎顺时针滚动: 加载页面或引用的资源 在标签页中 ...

  8. 20155305乔磊《网络对抗》逆向及Bof基础

    20155305乔磊<网络对抗>逆向及Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何 ...

  9. EZ 2018 01 14 2018noip第四次膜你赛

    这次惨烈的炸了个精光(只有20),然后对我的OI想法造成了巨大的转折. (以上有点作,其实我只是再也不用vector存图了而已(用邻接表)) 难度很不均匀,而且题型很狗(还有结论题???) T1 坑人 ...

  10. Bluedroid协议栈BTU线程处理HCI数据流程分析

    在蓝牙enable的过程中会进行多个线程的创建以及将线程与队列进行绑定的工作.该篇文章主要分析一下处理hci数据这个 线程. void BTU_StartUp(void) { ... btu_bta_ ...