项目 | 内容 |
---|---|
所属科目 | 软件工程http://www.cnblogs.com/nwnu-daizh |
作业要求 | https://www.cnblogs.com/nwnu-daizh/p/11093584.html |
课程目标 | (1)掌握软件项目评审会流程;(2)反思总结课程学习内容。) |
任务1:各项目组在团队项目Github仓库中提交甲方填写验收意见的验收意见表。
验收意见表链接: https://github.com/snxfd123/designfile/tree/master/table
任务2:经历了一个学期的软件工程学习和项目实践,请每位同学完成一篇个人学习总结博客,内容要求如下:
- 结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出。
作业地址 | https://www.cnblogs.com/yaoyuting/p/10511094.html |
问题1解答 | 要使模块能够得到稳定的、量化的保证,单元测试就是一个很有效的解决方案。而一个好的单元测试有以下几个方面的标准。 1)单元测试应该在最基本的功能/参数上验证程序的正确性 2)单元测试必须由最熟悉代码的人(程序作者)来写. 3)单元测试应该覆盖所有代码路径 4)单元测试必须和产品代码一起保护和维护 5)单元测试应该集成到自动测试的框架中。 |
问题2解答 | 对于一个软件工程师,他所要掌握的工程师的一些核心技术应该要有以下几个方面。 1)积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。如:对Java、C/C++、C#的掌握,诊断/高效能的技术,对设备驱动程序(DevicDriverKernel Debugger)的掌握;对于某一开发平台的掌握。 2)积累问题领域的知识和经验(例如:对游戏、医疗或金融行业的了解)。 3)对通用的软件设计思想和软件工程思想的理解。 4)提升职业技能(区别于技术技能)。职业技能包括:自我管理的能力,表达和交流的能力,与人合作的能力,按质按量成任务的执行力,这些能力在IT行业和其他行业都很重要。 |
问题3解答 | 首先,在代码复审前,应该进行的首要工作是代码规范。还要注意代码的可读性,代码的可测试性,代码的优化等等。 |
- 总结自己在项目的 可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。
- 可行性分析:软件的可行性研究的目的,就是在用最小的代价在最短的时间内确定问题能否能够解决,是否值得去解决。
- 需求分析:一个项目的完成,需求分析不能忽略,而在需求获取中,用户的需求尤为重要,而此时在获取用户的需求,也是需要一定的方法。
- 软件设计:在软件设计中,学习了许多设计工具。
- 实现:在编写代码中,一定要有耐心,一旦出现Bug,要慢慢去调试,不能想着一蹴而就,也不能就因此放弃。
- 测试:在开发一个软件时,不仅仅是代码的编写,代码编写只是其中的一部分,软件测试也尤为重要,并且,测试不能是在软件开发完成后进行,而应该在开始的时候就要进行测试。否则,以后修改会很麻烦。
- 项目验收:在项目验收过程中,要有一定的沟通能力,要让用户真正了解你开发的产品。因为产品是给用户用的,不是程序员自己懂就可以。
- 结合个人项目/结对编程/团队项目的个人经历,谈谈心得。
这次项目之后,我觉得一个人尤其大学生要养成总结与反思的习惯,并有意识地提炼日常工作成果。这次开发主要用的是Java,在一种语言上编程,但别为其束缚了思想。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与束缚的例子俯拾皆是。同时,通过这学期的学习,将本次项目完整地从前到后梳理了一遍,从文档的整理到代码的上传、代码的完善、界面的完善,再到会议记录、会议汇报等过程,实际模拟了项目从开发到完成的过程,在该过程中,和小组里其他成员的密切配合很好地完成了项目,虽然在合作期间也有过矛盾,小组成员的信任以及耐心这些矛盾便化解了。在这个过程中少不了团队成员之间的相互交流沟通,在沟通中找到了结局问题的方法;此外,文档设计的重要性也慢慢体会到了,要是没有文档的记录,后期的任务做起来就没那么方便了。每个阶段每个人的工作量工作任务不同,一个完整的团队必然是各个团队成员之间紧密配合的结果。就像盖楼房,一层没盖好之后的工作进展也就步履维艰了。
- 总结这门课程的实践总结和给你带来的提升,包括以下内容:
1)统计在软件工程实践中,你完成了多少行的代码;
答:在这学期的软件工程实践中,大概写了5000行代码吧。
2)你在软件工程实践的各次作业分别花了多少时间?(做一个列表)
软件作业 | 花费时间(h) |
---|---|
实验 一 软件工程准备 | 4h |
实验 二 软件工程个人项目 | 4h |
实验 三 作业互评与改进 | 3h |
实验 四 软件工程结对项目 | 8h |
实验 五 软件工程准备 | 4h |
实验 六 团队项目选题 | 4h |
实验 七 团队项目原型设计与开发 | 9h |
实验 八 基于原型的团队项目需求调研与分析 | 6h |
实验 九 团队项目需求改进与系统设计 | 4h |
实验 十 团队项目系统设计与详细设计 | 4h |
实验 十一 团队项目设计完善&编码 | 25h |
实验 十二 软件测试与Alpha冲刺 | 6h |
实验 十三 Beta冲刺与团队项目验收 | 4h |
实验 十四 团队项目评审&课程学习总结 | 5h |
总花费时间 | 150 |
每周平均花费时间 | 21 |
3)哪一次作业让你印象最深刻?为什么?
答:这学期让我印象最深刻的作业是第一次两人的结对项目作业,具有人机交互的英文词频统计。因为之前学过的语言长时间没有接触,刚开始使用java语言编写时,花费了很大力气还有时间。
4)累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
答:累计花了150小时在软件工程实践上。平均每周花21个小时。
5)你学习和掌握的新语言、新平台;
答:在这学期学到的有很多,如:
1)博客园
2)process on、墨刀的使用
3)visio、问卷星、leangoo
6)填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
软件开发工具、项目管理工具 | 软件开发方法 | 软件建模方法 |
---|---|---|
Eclipse | 面向对象的开发方法 | 面对对象建模 |
【备注】 面对对象建模方法将‘数据’和‘过程’集成到一个称之为对象的结构中,消除了数据和过程的人为分离现象。面向对象建模方法所创建的模型称之为对象模型、随着面向对象技术的不断发展和应用,形成了面向对象的建模标准。即UML(统一建模语言)。UML定义1了几种不同类型的模型图,这些模型图以对象的形式共建一个信息系统或者应用系统,目前比较常用的一个建模方法补充知识点:简单的描述下UML:UML分两类:结构型、行为型。结构型:类图、对象图、构件图、部署图、包图。行为型:活动图、状态机图、顺序图、通信图、用例图、时间图
- 其他方面的收获或提升。
答:在这学期的软件工程课程的学习中,学到了许多东西,虽然,这学期开设的课程不多,但是在软件工程课其实花费了许多时间和精力,偶尔会抱怨一下吧,但是,毋庸置疑,我还是学到了许多东西。除此之外,团结合作意识更高;对待事物更加的严谨仔细。
7)你认为目前的课程存在哪些问题,你有什么更好的建议。
作业量还是有些偏多,很多时间都花费在了作业上
翻转课堂可以适当的改进一下。刚开始,让同学们思考回答问题,说出自己的想法,我觉得很好,但是在后面的课堂中,感觉教学效果不是很好。