实验十四 团队项目评审&课程学习总结
||||||||||||||
|:--|:--|
|项目|内容|
|这个作业属于哪个课程|https://www.cnblogs.com/nwnu-daizh/|
|这个作业的要求在哪里|实验十四 团队项目评审&课程学习总结|
|作业学习目标|(1)掌握软件项目评审会流程;(2)反思总结课程学习内容。|
任务1:按照团队项目结对评审名单,由项目组扮演乙方,结对项目组扮演甲方,相互对各自软件产品进行验收评审(会议流程参见实验十三 软件项目验收相关知识),并形成验收意见。 .
||||||||||||||
|:--|:--|
|团队项目Github仓库|https://github.com/zhouyanghaha/CoderXiaoban|
1.软件是一个根据客户要求不断跟新,与时俱进的,作为软件工程的学习者,我应该认真的看待每一个相关软件问题。但是我还是不太懂,我的困惑是,那么我们之前编写的那些软件就毫无意义了吗?
答:开发者们希望用最新的技术写出完美的代码,写完善的文档,每个人都可以了解到具体实现,从而可以方便测试和后续的维护升级。而另一方面,其它人却只是希望快速经济地完成功能,从而他们可以推出新功能或者推销给更多客户。软件是一个根据客户要求不断跟新,与时俱进的,作为软件工程的学习者,应该不断地跟新完善所写的代码。作为程序员,我们应该尝试不那么完美主义,并且牢记保持这一目标。提供价值比我们的代码整洁更重要。只有当你为了长期目标,去追求完美才有意义
2.代码量小的话,可以独自一人完成,但代码量极大的时候,则就需要多人协作完成代码的编写,那么,在人和人不一样,在和别人合作的时候,要如何做到个人的表达观点的方式和思考的方式保持一致呢?
答:在多人合作编写代码时,应该花时间来统一谈论编程思路,保持个人的表达观点的方式和思考的方式一致,这样,就会大大提高了编程的效率,也使得的代码功能更全面,效率更高。
3.本质上, 当重构代码时, 是在编写代码之后改进它的设计”但是我对于具体的情况依然不是很了解,重构是对于旧的架构进行修改,来满足新的需求,那是否只是使用现在积木(代码)搭建一个更漂亮更优秀的大楼呢? 何时应该进行重构呢?
答:查了很多资料,总难以阅读的程序,难以阅读的程序并不是说写程序的人水平高,必须重构;逻辑重复的程序,重复的代码必须进行封装处理,这样的程序必须重构;添加新功能时,需要修改已有代码程序,不利于扩展的程序必须重构;条件复杂的逻辑程序,必须要重构
任务2:经历了一个学期的软件工程学习和项目实践,完成一篇个人学习总结博客,内容要求如下: .
1.结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出。
||||||||||||||
|:--|:--|
|《实验一 软件工程准备》|https://www.cnblogs.com/zhr-17794236906/p/10487695.html|
2.总结自己在项目的 可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。
1. 可行性分析: 用最小的代价在尽可能短的时间内确定问题是否能够解决。
2.需求分析:确定系统必须完成那些操作,对目标系统提出完整、清晰、具体的要求。
3.软件设计:确定系统具体实施方案。
4.实现:将设计转换为特定编程语言代码并在相应环境运行,同时保持可追踪性,灵活性和可扩展性。
5.测试:程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息(如数据文件)的完整性等。
6.项目验收:要明确项目的起点和终点;要明确项目的最后成果;要明确各子项目成果的标志。
3.结合个人项目/结对编程/团队项目的个人经历,谈谈心得。
1.个人项目心得:
在个人项目中, 在开发的过程中,遇到了很多的困难,不是这个软件不会用就是那个软件不会用, 还有很多很多的细节还要考虑, 还好有老师、同学的指导,自己的探索,慢慢的解决了问题。对任务的结果不是很满意,主要是制作时用了很多时间,在psp中实际完成需要的时间比计划完成需要的时间差别很大,没有效率,走了很多弯路,没有做好计划。应该先好好学习了再去做的, 而不是边学习边做。
2.结对编程心得:
在两人的合作过程中,刚开始的时候,出现各自了不同的意见,两个人的想法都是有稍微的出入,使得前期软件设计的进度不太理想。但随着我们在合作的过程中慢慢的磨合,并试着从对方的角度来看问题,理解对方,这样就慢慢减少了矛盾,同时也加快了进度。两人在合作时,效率与效果: 1+1>2,这点是毋庸置疑的,可以弥补自己的缺点,发挥优势,可以从多方面讨论问题。
3.团队项目心得:
我们是一个有效率、有组织、有团队精神的小组, 有效率在于小组制作网站中分工明确、讨论有目的; 有组织在于小组成员能按时、有质量的完成自己的分工任务, 值得一提的是这次开源代码开发的大部分时间小组成员都很尽心尽力,负责任; 有团队精神在于我们小组团队项目中的共进退, 从不因为自己分工任务提前完成而拉下其他组员, 我们意识到小组是一个有组织、有记录、有共同目的的集体而不是一个由分散的个人组成的团体。虽然项目的功能可能在设计方面有很多不足,但是感觉我们的团队很完美,我们的团队不仅团结,而且分工合理明确,很庆幸有这么好的团队成员。这是一个团队项目,虽然项目比较小,但是大家都很努力,遇到问题大家可以一起讨论完成,而不是让某一个人孤军奋战,这样才能有效、轻松的解决项目中的问题。大家一起合作完成一项任务的效率还是很高的,分工明确,互相协助,相互反馈就能够很好的做好一个系统设计
4.总结这门课程的实践总结和给你带来的提升,包括以下内容:
(1)统计在软件工程实践中,你完成了多少行的代码;
在软件工程的实践中,大概完成了2500行代码。
(2)你在软件工程实践的各次作业分别花了多少时间?(做一个列表)
1.个人作业 :
||||||||||||||
|:--|:--|
|作业博客名称|所花费时间|
|读《构建之法》后的疑惑|60min|
|作业互评与改进报告|50min|
|词频统计软件项目报告|150min|
|《英文文本统计分析》结对项目报告|350min|
|项目互评|40min|
2.团队作业
||||||||||||||
|:--|:--|
|作业博客名称|所花费时间|
|团队作业1:团队亮相|30min|
|团队作业2:团队项目选题报告|30min|
|团队作业3:团队项目的原型设计|40min|
|团队作业4:基于原型的团队项目需求调研与分析|60min|
|团队作业5:项目需求分析改进与系统设计|55min|
|团队作业6:团队项目系统设计改进与详细设计|66min|
|团队作业7:团队项目设计完善&编码|600min|
|团队作业8:Alpha冲刺|800min|
|团队作业9:Beta冲刺与验收准备|180min|
(3)哪一次作业让你印象最深刻?为什么?
在团队作业8:Alpha冲刺中,我印象特别深刻,在这次作业中 ,不光是需要写博客,还有进行编码阶段,编码阶段主要还是受了设计的限制,主要工作就只是在原有的结构上添加一些类与方法,以及对各部分代码进行修改。还有最后的团队课堂演示,因为我们自己会做并没有什么了不起的,只有课堂上看到其他同学做的我们才可以学到更多的东西,知道自己的不足与
优点。
(4)累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
累计花了75小时,平均每周花4小时左右。
(5)你学习和掌握的新语言、新平台;
在项目的开发过程中,我学习到了JavaWeb这门新的语言,而且还实践了本学期学习的数据库相关知识。
使用了新的平台——博客园,在博客园上完成提交自己的作业,与其他同学进行线上讨论,遇到不会的问题还可以求助园友,博采众长。这样一个开放的学习空间令人愉悦。
GitHub的使用。
(6)填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
||||||||||||||
|:--|:--|:--|
|软件开发工具、项目管理工具|软件开发方法|软件建模方法|
|GitHub,MyEclipse,MySQL|面向对象的软件开发方法,面向数据结构的软件开发方法|面向对象方法,模型驱动开发方法 ,结构化方法 |
(7)其他方面的收获或提升。
经过这学期的软件工程课程, 我领悟到任何东西都要“学以至用” , 学习了还不行还要看自己掌握了没, 掌握了还不行还要看自己熟练了没, 熟练了还不行还要做出一定成果。一开始,我觉得,对于开发一个软件,只要在最后能够生产出一个可以使用的产品就算完成任务,而对于项目文档以及前期设计并没有太看重。但是在实际的实践操作过程中,会发现,盲目地去编写代码,而没有一份详细的规划作为指导,会极大程度地降低开发效率。不会再像以前一样一听到写作业就手忙脚乱的先开始编码,而是用软件工程的方法去解决问题。
5. 你认为目前的课程存在哪些问题,你有什么更好的建议。
1.在时间进度安排方面很符合课程的进度,除了详细设计那一阶段时间有些仓促,毕竟大家以前接触的项目比较少,要是真的对起手来会有点吃力
2.助教工作态度很好,会很细心的发现我们的错误,并提示我们及时改正。