项目 | 内容 |
---|---|
这个作业属于哪个课程 | <任课教师博客主页链接> |
课程 | 2016级计算机科学与工程学院软件工程(西北师范大学) |
作业要求 | 实验十四 团队项目评审&课程学习总结 |
作业学习目标 | 团队项目评审&课程学习总结 |
一、实验目的与要求
(1)掌握软件项目评审会流程;
(3)反思总结课程学习内容。
二、实验环境要求
实验十三所准备团队项目验收资料和配置系统。
三、实验内容与步骤
任务(一):按照团队项目结对评审名单,由项目组扮演乙方,结对项目组扮演甲方,相互对各自软件产品进行验收评审(会议流程参见实验十三 软件项目验收相关知识),并形成验收意见。
评审会分两个阶段验收:第一阶段由A项目组长担任主持人,组织验收会对A项目进行验收,结对项目组成员扮演A项目甲方;第二阶段由B项目组长担任主持人,组织验收会对B项目进行验收,结对项目组成员扮演B项目甲方。
课后,各项目组在团队项目Github仓库中提交甲方填写验收意见的验收意见表。
团队项目github仓库地址链接: https://github.com/struggle17/projecttable
任务(二):经历了一个学期的软件工程学习和项目实践,请每位同学完成一篇个人学习总结博客,内容要求如下:
结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,
问题博客链接:https://www.cnblogs.com/XL1105/p/10487669.html
问题1.我们为什么需要软件工程呢?
专业点讲,软件工程最终是为了实现“软件制造业”的社会化,工业化大生产,提高其劳动生产效率。只有如此,软件业才能实现社会化,工业化大生产,才能“做大做强”。没有管理的设计是失败和混乱的设计,没有设计指导的编程是无序的忙碌的。根据开发的软件的规模,应该适当程度的运用软件工程化的思想,需要灵活,毕竟我们开发的软件大多数是中小型的,大型的并不多见(我是这么认为的)。但只要涉及人员间的交流和沟通,或多或少都要需要软件工程才能更有效率,工作成果更稳定。
问题2.如何学好软件工程?
软件工程涉及的内容非常多,而且学习时理论抽象的东西居多,没有具体的实践经验在将来处理具体问题时会有难度,也许这也是为什么很多人觉得很空洞的原因,不过事实显然并非如此。
(1)首先,必须掌握一门编程语言,具备编程能力。
(2)其次,多看书,不是要盲从,而是要在将来形成自己的观点。
(3)实践中需要具体问题具体对待,最忌生搬硬套。
“理论”和“经验”都很重要,象现在很多人都在谈“道”(理论),切不可被其迷惑,“术”也很重要,知道“道”不一定能够帮你解决问题,但知道“道”会使人得到升华和括宽思路,“术”则是真正体会“道”的基础,否则一切都是空谈,就像武侠小说里常说的什么“明白就是明白”之类的鬼话。
问题3.如何研究出符合用户需求的软件?
通过实际的工作收集、推导、提炼需求,并在软件发布之后通过实际数据验证需求的确被满足了。需求来源于实际,而不是自己想象出来的“需求”或者人云亦云的需求(例如:虚拟的、没人用的、也没有数据的“图书管理系统”)。
(1)总结自己在项目的 可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。
可行性分析 | 可行性分析的目的和可行性分析的步骤 |
需求分析 | 针对用户对软件的需求作为开发方可以根据用户的需求通过原型开发工具(墨刀、mockplus)取更加具体准确的信息。还学习到了需求分析的任务,了解数据的规范化及其状态图的转换。 |
软件设计 | 学习了UML模型开发,同时掌握了建模工具(ProcessOn 和Visio) |
实现 | 在编码时一定要注意逻辑简明清晰易读易懂,在编写代码的过程中肯定会出现很多的BUG,需要耐心的去解决。 |
测试 | 测试是为了发现程序中的错误,测试任何项目都需要白盒测试(结构测试)和黑盒测试(功能测试),懂得了黑盒测试更注重第三方的测试。还学习到了测试的步骤。 |
项目验收 | 知道了验收项目进行的整个会议议程及其需要准备的工作,同时也学到了验收项目需要检查的方面。 |
(2)结合个人项目/结对编程/团队项目的个人经历,谈谈心得。
刚开始我的编程能力特别的薄弱,对于个人项目的完成都是很是牵强,但是身为大三的我们已经不可再被老师讲编程语言了,只能自己在课下学习。经过这门课的学习,让我创建项目的实现有了一个系统的了解,算是经历一次从项目立项到项目验收的过程,在其中我掌握了原型开发工具,建模工具还学习了团队任务部署与分工的WBS。经过小组 合作让我知道一个人的力量是很薄弱的,在团队中每个成员都有自己的长处,所谓三个臭皮匠顶一个诸葛亮。在这个过程中少不了团队成员之间的相互交流沟通,在沟通中找到了结局问题的方法;此外,文档设计的重要性也慢慢体会到了,要是没有文档的记录,后期的任务做起来就没那么方便了。每个阶段每个人的工作量工作任务不同,一个完整的团队必然是各个团队成员之间紧密配合的结果。
(3)统计在软件工程实践中,你完成了多少行的代码;
在软件工程实践中我完成了2500行的代码。
(4)你在软件工程实践的各次作业分别花了多少时间?(做一个列表)
软工作业 | 花费时间(h) | 累计花费时间(h) | 平均每周花费时间(h) |
---|---|---|---|
实验一 软件工程准备 | |||
实验二 软件工程个人项目 | |
||
实验三 软件工程结对项目 | |
||
实验四 基于原型的软件需求获取 | |
||
实验五 软件研发团队组建 | |||
实验六 团队项目评审与团队项目选题报告 | |||
实验七 团队作业3—团队项目的原型设计与开发 | |||
实验八 团队作业4—基于原型的团队项目需求调研与分析 | |||
实验九 团队作业5—团队项目需求改进与系统设计 | |||
实验十 团队作业6—团队项目系统设计改进与详细设计 | |||
实验十一 团队作业7—团队项目设计完善&编码测试 | |||
实验十二 团队作业8—团队项目用户验收评审 |
(6)你学习和掌握的新语言、新平台;
我掌握新语言有:Java;新平台:Myeclipe
(7)填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
软件开发工具 | 项目管理工具 | 软件开发方法 |
MyEclipse、MySQL、tomcat | Github | 原型开发、问卷调查 |
(8).你认为目前的课程存在哪些问题,你有什么更好的建议。
1.实操和理论要同步进行,时间不够,需增加上课时间。