201671010456-张琼 实验十四 团队项目评审&课程学习总结

博文简要信息表

|||||||||||
|:----|:----|
| 项目| 内容|
| 这个作业属于哪个课程 |http://www.cnblogs.com/nwnu-daizh/|
| 这个作业的要求在哪里 | https://www.cnblogs.com/nwnu-daizh/p/11093584.html|
| 课程学习目标 | 掌握软件项目评审会流程,反思总结课程学习内容。|

任务一

|||||||||||
|:----|:----|
| 验收意见表GitHub仓库地址| https://github.com/snxfd123/designfile/tree/master/word|

任务二

1、对实验一问题的解答及阐述

|||||||||||
|:----|
|(1) 《实验一 软件工程准备提出》的问题链接|
|https://www.cnblogs.com/zhangqiong/p/10512047.html |
| (2) 《实验一 软件工程准备提出》的问题解答 |
|1.PSP(prsonal software process)的基本流程是什么?第二章中提到个人开发流程,那么作为一名大学生在设计软件工程作业时要注意哪些方面的拓展?标准又是怎么样的呢?

  •    PSP是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术相对独立,其原则能够应用到任何的软件任务中。PSP能够说明个体软件过程的原则,帮助软件工程师做出准确的计划。PSP为个体的能力也提供了一个阶梯式的进化框架,以循序渐进的方式介绍过程的概念,每一级别都包含了更低一级别中的所有元素,并增加了新的元素。这个进化框架是学习PSP过程基本概念的好方法,它赋予软件人员度量和分析工具,使其清楚地认识到自己的表现和潜力,从而提高自己的技能和水平。
  •    作为一名学生在设计软件工程作业时要注意以下方面,首先是概念化与分析,任何软件产品的核心都是解决用户需求问题的,在这个阶段,要明确软件的使用目的。首先,小组同学之间要密切合作,制定出明确,简介的用户需求分析以及软件的开发方案。然后徐讨论这些方案的可行性。如果用户的一些需求在技术上是可行的,如果提出的方案都可以实现,还应该评估企业的成本投入是否能够承受。其次是设计上,软件开发的设计阶段要对软件系统进行概述,并确定其关键要素,作为后者的结果,团队技术规范-功能的详细描述,将其分解成为更小的模块来开发。在实施阶段,一旦软件开发的要求及规范已经交给开发团队,技术人员就可以进行编码。整个团队的工作分工基本是一样的,这时候小组的负责人也就是组长要将开发任务细化给团队每个人,将流程和报告上报给负责人,及时了解进度。软件测试与开发要同时进行,每次功能开发完之后,可以立即进行测试,以尽可能早的检测和修复错误。最后部署时,也要模拟真实的场景,编写技术手册,用户手册等。总之一切步骤都要严格遵守软件工程的标准进行。
  • 2.一个初级软件工程师怎样一步一步成为一个卓越的高级工程师?需要做哪些方面的努力?证书真的那么重要吗?
  •   成为一名初级软件工程师都是不容易的,在学完了这门课程之后才明白,各个方面都还非常欠缺,代码、文档编写、理论、对各个阶段的把控,都很缺经验。现在的我需要的是脚踏实地,关于努力,各个方面齐头并进吧。证书什么的只是一个证明而已,就算有了也只能说明考试过了,和能力和实际操作能力关系都不大。因为就计算机等级考试而言,背题库也可以过,就算是有点技术了,也还是要多多实践才行,现在的我,实践的基础薄弱,还需要多方面的经验。所以多学习技术才是硬道理,证书什么的就只是一个见证而已,自己到底是怎样的情况,只有自己知道,只有实战才能显示出能力。
  • 3.在写代码的过程中,应注意哪些规范?并谈谈规范的重要性。
  •   写代码的过程中要遵守的规范如下:类的私有成员变量必须以m_开头,而且其后的内容必须与相对应的属性名相同,也就是说第一个字母必须大写,属性实现中的Get和Set方法的内容不可写在一行中,“{”必须写在第二行;每一段程序与下一段程序之间必须且只能有一行空行;using部分的内容必须进行分段,相同的内容放到一段中,现在可以参考的规则是:System放到一块,MicroSoft放到一块,Newegg放到一块,各个块之间要加一行空行,而且相同的内容要尽量放到一块,例如System要和System.Data要放到一块;类的私有成员变量定义要放到类的最前面,且之间不需要加空行;注释的上部没有空行,注释的下部要与using之间有一行空行;实体类和接口中不需要注释,除非非常有必要说明;文件名必须与主体类的名称相同;对于相同功能的变量,名称必须一致;在一个类中,如果没有非常的必要,不要加region;操作符的两边必须要加一个且只能加一个空格,包括:枚举必须单独定义一个类,且必须单独放在一个文件中,可以烤炉建立一个Enum目录,将所有的枚举类放到这个目录下;定义的枚举类型必须显示的指定枚举的类型和每一个枚举的数值;每一个属性或方法的属性定义(DataContract,DataMember,DataMapping,ServiceContract,OperationContract等等)必须与定义相连,不许有空行;DataMaping放在DataMember的上方;定义实体类时私有变量的顺序尽量与属性的顺序一致;每一个方法要加注释,注释在方法之上,与方法相连,之间没有空行;每一次代码修改尽量加注释;在CheckIn时,必须加注释;在try catch中定义Exception的变量名称一律用ex;如果返回值是List类型,则不可返回Null。代码规范的重要性是不言而喻的,遵守以上规范,可以减少bug的产生,可以降低维护成本,有助于代码审查,还能提高程序员本身的技能,更好的发展。|
    |(3) 学习过程及方法 |
    |  在学习的过程中,因为以前并没有基础过大型的项目,所以就按照老师的要求,首先对构建之法那本书进行详细的研读,在后面做项目的过程中,再参照软件工程导论这本书,结合老师讲解的内容,对软件项目的开展过程有了大概的了解,然后就是每周一次的实验,通过实验,进行对理论方法的实验,在整个过程中,对软件项目的流程进度都有很深的理解。在经验方面还有不足。在学习方法上,在开始是使用好工具,然后是学习工具背后的方法,在然后是掌握其本质,最后是用最简单易懂的方式传递给他人。学习软件工程,需要先有一个全景的印象,他的核心是什么?是有哪几块构成的,这样才能更好的理解每个知识点和彼此之间的联系。采用做中学(在工作中学习),自下而上;从教中学(技术分享或指导同学时),自上而下。软件工程是一门为了应对软件危机而产生的学科。主要是聚焦于质量,构建和维护高质量的软件。核心的知识点主要是三大要素:过程、方法和工具,也就是围绕软件开发过程,产生的方法学和工具。用一个简单的公式来理解的话,那就是:软件工程=工具+方法+过程。|
    | (4) 原来提出的问题是否还不明白? 学习中产生的新的问题 |
    |  前面提出的问题都已经理解了。在学习中产生的最多的也能算是问题,倒可以说是困惑。比如怎样分配任务才是最合理的,各个小组成员之间才不会有怨言,怎样分配才算是最能展现个人能力的?对于已经做了的工作,是不是都应该被重视?这些已经做了但是又不满意的工作会导致做的人丧失信心,从而怀疑自己的能力,这时候应该怎样改变现状呢?在整个团队合作完成项目的过程中,如果有人的意见不被采纳,这样一来的话本来就因为学到不够好才常常被忽视,越忽视越学不好,导致恶性循环,这种现象只靠自我调节吗?...类似这样的困惑,似乎在每个项目中都有,可能还需要不断的适应吧。|

    2、在项目的各个阶段中学到的“知识点”

    |||||||||||
    |:----|:----|
    | 可行性分析阶段|技术可行性、经济可行性、管理可行性的分析,以及对各种风险的预测评估 |
    | 需求分析阶段 |需求获取方式、需求分析、编写需求规格说明书的方法及需求验证|
    | 软件设计阶段 |软件需求的理解、表述、设计时要注意软件可扩展性、灵活性、可维护性和软件成本等 |
    | 实现阶段 |软件部署实施方案的编写、用户手册的编写、维护手册的编写、回归测试 |
    | 测试阶段 |测试文档的编写规范、测试的几种方式,如单元测试、模块测试、回归测试等|
    | 项目验收阶段 |验收方式、验收文档,验收阶段双方的交涉、用户验收、安全检测 |

    3、个人项目/结对编程/团队项目的个人经历及心得体会

    |||||||||||
    |:----|
    |   个人项目:在个人项目作业中,遇到的困难很多,花费的时间也很多,因为对语言的不熟悉,所以参考了网上的代码。刚刚拿到这个作业时不会做,翻书复习了java,对个人项目的流程有了一定的掌握。那时候柱状图的功能并没有实现,只实现了最简单的单词总数统计和词频统计。 里面涉及到了好多函数的应用,有很多都是不会的,意识到数据结构的重要性,而自己对这部分知识的掌握还仅仅停留在做题上。但是也有收获,对GitHup的操作流程也熟悉了。

  •   结对项目:在结对项目合作中,我们首先是互相评论了彼此的上一次作业,找到了优点和不足,用于那次试验完成时要借鉴的技术和改正的地方。先找到不足,然后改正。接着我们规划了要实施的步骤,首先完成任务一,因为相对来说简单些,也只有在任务一完成的基础上才能开始任务二的作业。接着是任务二的需求分析,相对来说较简单,就是在实验二的基础上加上前端界面。然后是概要设计和详细设计,我们是打算放在一起进行的,主要设计程序的类和各个模块,以及各个模块之间的交互,还有Java后台和前端的交互。在后台和前端交互的时候,因为不知道要用什么接口合适,所以我们查找了很多的资料,看到可以用数据库,也可以用json,ajax等,最终选择了一个特殊的类servlet作为实现java后台和前端的交互。在这个过程中花费了大量时间。那次实验中我和搭档合作探究,过程很愉快,更体会到了团队意识的重要性。
  •   团队项目:这学期的软件工程教会了很多东西,不仅是在编程方面的提升,还懂得了在一个开发团队中怎样互相协作。同时让我了解到一个软件的开发并不是当你拥有编程能力就可以完成开发的,在开发前需要准备很多东西像调查问卷,需求分析等,只有经过这些科学的方法,我们才能开发出用户需要的软件。在项目开发中我们会遇到很多的难题,和同伴们解决这些难题也是非常快乐的事。在这之中我们也得了很多经验,这对我们在以后的工作中有很大的帮助。|

    4、软件工程的实践总结和提升

    |||||||||||
    |:----|
    |(1) 统计在软件工程实践中,你完成了多少行的代码;|
    |   写代码是我的弱项,在整个实践中,我基本没有参与代码的编写,只是编辑文档和博客,也对部分代码进行了测试。|
    |(2)哪一次作业让你印象最深刻?为什么? |
    |   让我印象深刻的作业是最后一次团队作业,也就是实验十三,这次作业的量很大,需要查找很多资料,看很多文献才可以做出来,我们团队成员分工之后,每人都要写两到三个文档,然后还有PPT的编写,博客的编写,最后还要把各个文档汇总成为一个文档,所以是很费时间的一件事,因为作业的量很大,所以那天是一天都没有出门,到晚上写完所有文档都已经九点多了,外面下着小雨,在淅淅沥沥的雨声中做完了所有工作,思绪良多。|
    | (3) 累计花了多少个小时在软件工程实践上?平均每周花多少个小时? |
    |   累计花费的时间要超过200个小时,每周的作业时间加上学习的时间,看慕课视频的时间,实践中的记录是琐碎的,要一点一点收集的,所以大概平均每周花费的时间大概为10个小时。|
    | (4)你学习和掌握的新语言、新平台;|
    |   新语言HTML,这是种网页语言,可以用来做网页,也可以进行博客的编写,简单方便易用。新平台博客,慕课,对于博客的编写,现在已经非常熟练了。慕课网上有大量的可供学习的视频,是学习的很好的平台。另外还有墨刀,燃尽图看板等工具。|
    (5)你在软件工程实践的各次作业分别花了多少时间?(做一个列表)

    |||||||||||
    |:----|:----|:----|:----|
    | 各次试验| 花费时间(h) | 各次试验| 花费时间(h) |
    | 实验一软件工程准备 |5 |实验八基于原型的团队项目需求调研与分析 |25 |
    | 实验二软件工程个人项目 |8 |实验九团队项目需求改进与需求设计 |15 |
    | 实验三作业互评与改进 | 6|实验十团队项目需求改进与详细设计 |22 |
    | 实验四软件工程结队项目 | 8|实验十一团队项目设计完善 |30 |
    | 实验五软件研发团队的组建 |10 |实验十二软件测试与alpha冲刺 |21 |
    | 实验六团队项目选题 |12 |实验十三beta冲刺与团队项目验收 |15 |
    | 实验七团队项目原型设计与开发 |15 |实验十四团队项目评审&课程总结 |7 |
    (6) 填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;

    |||||||||||
    |:----|:----|:----|
    | 软件开发工具、项目管理工具| 软件开发方法 |软件建模方法|
    | eclipse、墨刀、Visio、GitHub |面向对象分析的软件开发方法 |结构化建模方法,面向对象建模方法 |

    5、其他方面的收获或提升。

    |||||||||||
    |:----|
    |  在选用工具方面知道了很多,比如墨刀,比如Visio,这些常用工具可以帮助我们在以后的项目中更便捷的呈现自己的想法。还有就是友谊的提升,由于项目的不断接触,我们都记住了彼此的笑容,收获良多。|

    6、你认为目前的课程存在哪些问题,你有什么更好的建议。

    |||||||||||
    |:----|
    |  我觉得目前课程在进行的方式上对我们学习软件工程很有帮助,通过实验的方式实践,也能让我们积累经验。代老师在教学过程中的态度认真严谨,一丝不苟,这种精神是我所敬仰和喜欢的,但是每周的作业量有些大,每周都要花费很多的时间在软件工程作业上面,从开始到做完,不知不觉间一个下午,有时候还得到晚上。希望能适当减轻作业量。|

  • posted @ 2019-06-30 13:08  张琼*  阅读(196)  评论(0编辑  收藏  举报