实验十四 团队项目评审&课程学习总结
||
|:--|:--|
|项目|内容|
|这个作业属于哪个课程?|软件工程(西北师范大学)|
|这个作业的要求在哪里?|实验十四 团队项目评审&课程学习总结|
|作业学习目标|掌握软件项目评审会流程;反思总结课程学习内容。|
任务1:在Github仓库中提交甲方填写验收意见的验收意见表。
任务2:经历了一个学期的软件工程学习和项目实践,请每位同学完成一篇个人学习总结博客,内容要求如下:
-
结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出。
由于某原因,无实验1博客,但是学完本学期课程,我提出以下总结:
1.软件工程的目标
在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。
2.软件工程的原则
是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。软件工程的原则有以下四项基本原则: 1)选取适宜开发范型; 2)采用合适的设计方法; 3)提供高质量的工程支持; 4)重视开发过程的管理。
3.软件开发过程
开发软件,就像是解决-个逻辑问题。想想自己平时是怎样写程序的。首先是要有一个想法,即我写的这个程序是要干什么的;然后就是对要实现的核心功能大概构思一种或多种实现方法,并从中选出一种自认为是较好的,接下来就是将涉及的各种主要或次要功能分成各个模块;最后就是分模块来编码和debug。除了第步外,其余的步骤应该是一个循环的过程。 既然软件开发是一个具有不可预知性和变化性的动态的过程,那么,对其每一个步骤的组织,即周期模型,就必须包容它的这种性质。
具体到每步的工作 要怎样完成, 是非常灵活的, 只要把握住 大体的方向就行。在进行分析,设计,编码,调试,维护这儿部分的工作的时候,最核心的就是文档的编写。文档的作用在于以下几个方面:是可以帮助整理思路。把要完成的目标,系统的结构,每个模块的功能等整理一下,然后分门别类地写下来。
-
总结自己在项目的可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。
- 可行性分析:可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,简单的理解可行性分析就是看有没有可能完成这个项目。可以从以下几个方面来>看可行性。经济可行性、技术可行性、法律可行性。
- 需求分析:需求分析是软件定义时期的最后一个阶段,其基本任务是确定系统必须完成哪些工作。
- 软件设计:系统总体结构设计是要根据系统分析的要求和组主的实际情况来对新系统的总体结构形式和可利用的阻援进行大致的设计,是宏观上的规划。在总体设计阶段应该将系统的物理元素划分出来——程序、文件、数据库、人工过程和文档
- 实现:编码和测试为实现阶段的内容。把软件设计结果翻译成某种程序设计语言写的程序。
- 测试:测试的目的就是想以最少的时间和人力,尽早系统地找出软件中潜在的各种错误和缺陷。它能够证明软件的功能和性能与需求说明相符合。必实施测试收集到的测试结果数据为可靠性分析提供了依据。测试不能表明软件中不存在错误,它只能说明软件中存在错误。
- 项目验收:经过前期的 可行性分析、需求分析、软件设计、实现、测试这几个阶段的成果最后的项目验收阶段就是成果的展示。
-
结合个人项目/结对编程/团队项目的个人经历,谈谈心得。
一个好的团队项目,不是单打独斗的个人任务,是集思广益的团队项目,在团队编程模式下,程序员肩并肩地、平等地、互补地进行开发工作。程序员并排坐在一台电脑前,面对同一个显示器,使用同一个键盘,同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起单元测试,一起集成测试,一起写文档等。
在我们完成任务的过程中,也逐渐体会到团队编程所带来的效率。有人使用键盘编写代码,而另一个人在一旁能够及时的发现和改正错误,这样下来能够发现不少一个人工作时发现不了的低级错误。而且,在书写文档的过程中,分工去做,大大提升了效率。也可以随时进行讨论,当有概念模糊或是思路不清晰的时候,可以迅速寻求同伴的帮助,慢慢理清思路,理清逻辑,这样的效率不是一个人工作时可以相比的。而且,团部队之间还可以相互督促,能够更加全身心的投入,而且互相都能够学到很多东西。总之,受益匪浅。当然,团队项目也存在令人头疼的问题,比如,很容易因为一点意见不统一而大吵,反而影响了结对编程的效率;亦或是两人水平相差较大,老手在新手面前不耐烦,新手在老手面前紧张拘谨,也会使结对编程事倍功半。
-
统计在软件工程实践中,你完成了多少行的代码;
至少4000+吧
-
总结这门课程的实践总结和给你带来的提升,包括以下内容:
-
你在软件工程实践的各次作业分别花了多少时间?(做一个列表)
||
|:--|:--|
|作业|花费时间(h)|
|实验 一 软件工程准备|3h|
|实验 二 软件工程个人项目|5h|
|实验 三 作业互评与改进|4h|
|实验 四 软件工程结对项目|8h|
|实验 五 软件工程准备|4h|
|实验 六 团队项目选题|5h|
|实验 七 团队项目原型设计与开发|10h|
|实验 八 基于原型的团队项目需求调研与分析|12h|
|实验 九 团队项目需求改进与系统设计|5h|
|实验 十 团队项目系统设计与详细设计|5h|
|实验 十一 团队项目设计完善&编码|20h|
|实验 十二 软件测试与Alpha冲刺|5h|
|实验 十三 Beta冲刺与团队项目验收|8h|
|实验 十四 团队项目评审&课程学习总结|4h|
|总花费时间|100h|
|每周平均花费时间|8h|
-
哪一次作业让你印象最深刻?为什么?
通常来说都是第一次最令人印象深刻,第一次写博客,第一次用gethub,第一次做词频统计个人项目的那次,到现在还记得,当时因为生病回来比较晚,回来的时候什么也不会,而且马上得交博客作业,那一次,我做了很久很久 ,终于学会了用gethub,会写博客......
-
累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
100小时,平均每周8h
-
你学习和掌握的新语言、新平台;
新语言没有,接触到很多新平台:
有博客园,gethub,visio,leangoo,用过墨刀
-
填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
|||
|:--|:--|:--|
|软件开发工具、项目管理工具|软件开发方法|软件建模方法|
|eclips,gethub,mysql|生命周期法、面向对象法|面向对象建模、结构化建模|
-
你认为目前的课程存在哪些问题,你有什么更好的建议。
首先,本学期课程让我接触了很多新平台,也让我学会了写各种文档,让我深刻体会了理论与实践结合得重要性,学完之后我收获颇大,但是存在一点时间紧迫的问题,由 于是接触新知识,每次作业都要花费很多时间去做,而且期限也挺短的。