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、你认为目前的课程存在哪些问题,你有什么更好的建议。

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

转载于:https://www.cnblogs.com/zhangqiong/p/10687672.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强大的APIClound云修复——告别繁琐的编译打包流程

小编接到一项目的二期开发任务,拉下代码开始熟悉大概的框架、技术、上线流程等前期工作,本app是通过vue技术进行开发,使用ui是 vant 库,打包上线则是使用的 APIClound 平台; 在我们的app上线后,如果我们改…

研究下贝塞尔曲线

今天研究了下贝塞尔曲线,感觉还是很有价值的。 这里贝塞尔曲线是几个用法: 1.模拟曲线拟合。将折线找一个平滑的方案获得曲线的效果。联想可以获知,可以作为工程设计的一种方式。 2.模拟抛物线和实际场景中的一些物理特性,即物理上…

你对ES6究竟了解多少?—— 有这一篇就够用了

1. ES6相关概念(★★) 1.1 什么是ES6 ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。ES6 是ES2015以后的泛称 1.2 为什么使用 ES6 ? 每一次标准的诞生都意味着语言的完善,功能的加强。JavaScrip…

科创板基础知识

交易制度 1、上市前5个交易日不设将跌幅限制;其后涨跌幅限制为 20%; 2、单笔申报不小于 200股。 参考资料: 科创板图文解读 科创板投教长图文系列(四):详解科创板股票交易的特别规定 上交所投教&#xff1a…

0_0 保留字

引自《 JavaScript 权威指南》2.4 / P28 ~ 29 保留字 部分 保留字 JavaScript 把一些标识符拿出来用作自己的关键字。因此,就不能再在程序中把这些关键字用作标识符了: 保留字 Part1.txt123456breakdelete functionreturntypeofcasedoifswitchvarc…

JavaScript 高级——详谈面向对象

1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 1.2面向对象 面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。…

UVa202Repeating Decimals (循环小数)

解答&#xff1a; 因为除数是固定的&#xff0c;所以只要判断被除数是否出现过即可。 #include<iostream> #include <cstdio> #include <cstring> using namespace std; int m,n,vis[5000],res[5000],temp[5000],num,t,x; int main() {while(scanf("%d%…

构造函数、原型、继承原来这么简单?来吧,深入浅出

构造函数 小编上篇博客中介绍到的通过关键字class方式定义类&#xff0c;然后根据类再创建对象的方式&#xff0c;是ES6中语法&#xff0c;现在很多浏览器对ES6的支持还不是很好&#xff0c;所以也要学习通过构造函数&#xff08;构建函数&#xff09;的方式创建对象 问&…

[网络流24题] 航空路线问题 (费用流)

洛谷传送门 LOJ传送门 这道题的图还挺好想的吧 反正都是无向边&#xff0c;起点走到终点再回到起点&#xff0c;就相当于从起点走$2$次到达终点&#xff0c;且这两次不经过相同的点&#xff0c;还要经过尽可能多的点 很经典的费用流建图 限制点通过次数->拆点连边&#xff0…

Go语言字符串和正则表达式

字符串相关方法 获取字符串长度 注意: Go语言编码方式是UTF-8,在UTF-8中一个汉字占3个字节package main import "fmt" func main() { str1 : "lnj" fmt.Println(len(str1)) // 3 str2 : "lnj" fmt.Println(len(str2)) // 12 } 如果字符串中包含中…

你疏漏的 JS 函数硬核知识?这里帮你总结了

重点 更多前端知识 诚邀各位前端从事者爱好者加入前端大佬技术交流社区&#xff0c;本社区主要分享技术栈、个人心得、技术交流、问题解惑等前端体系交流 点击下方文字加入 前端大佬技术交流社区 1. 函数的定义和调用 1.1 函数的定义方式 方式1 函数声明方式 function 关键…

7 月 1 日

7 月 1 日 今日内容 1.计算机基础知识 2.python简介 3.快速入门 昨日回顾 无内容详细 1.计算机基础知识 输入输出设备 CPU 硬盘 电源 中央处理器 处理各种数据 相当于人的大脑 内存 存储数据 硬盘 存储数据的 什么是操作系统 控制计算机工作的流程 软件 什么是应用程序 安装在操…

再见了 React、Angular,Vue3 才是 yyds

切记一定要看到最后&#xff01;&#xff01;&#xff01; 最近看到一篇文章上面是一作者资讯一位IT前辈&#xff0c;问他怎么看待工作 2 年的前端开发&#xff0c;月薪就高达 30k、40k 的现状。 他说&#xff0c;在众多编程技术中&#xff0c;前端算比较容易入门和提升的&am…

HBase实战:记一次Safepoint导致长时间STW的踩坑之旅

本文记录了HBase中Safepoint导致长时间STW此问题的解决思路及办法。上篇文章回顾&#xff1a;HBase Replication详解​过 程 记 录现象&#xff1a;小米有一个比较大的公共离线HBase集群&#xff0c;用户很多&#xff0c;每天有大量的MapReduce或Spark离线分析任务在进行访问&a…

scrapy 第一个案例(爬取腾讯招聘职位信息)

import scrapy import jsonclass TzcSpider(scrapy.Spider):# spider的名字&#xff0c;唯一name tzc# 起始地址start_urls [https://hr.tencent.com/position.php?keywordspython&tid0&lid2268]# 每个url爬取之后会调用这个方法def parse(self, response):tr resp…

系统带你学习 WebAPIs 第一讲

Web APIs 本篇学习目标&#xff1a; 能够通过ID来获取元素 能够通过标签名来获取元素 能够通过class来获取元素 能够通过选择器来获取元素 能够获取body和html元素 能够给元素注册事件 能够修改元素的内容 能够区分innerText和innerHTML的区别 能够修改像div这类普通元素的属性…

react-webpack config webpack@3.4.1

1.最重要的一点 yarn add webpack3.4.1 -g 2. 解决跨域请求 webpack.json 中添加 https://segmentfault.com/q/1010000008190876?_ea1579884 webpack config less -----框架 ----查看考链接 https://blog.csdn.net/mjzhang1993/article/details/79013430转载于:https://w…

系统带你学习 WebAPIs 第二讲

Web APIs 本篇学习目标&#xff1a; 能够说出排他操作的一般实现步骤 能够使用html5中的dataset方式操作自定义属性 能够根据提示完成百度换肤的案例 能够根据提示完成全选案例 能够根据提示完成tab栏切换案例 能够区分元素节点、文本节点、属性节点 能够获取指定元素的父元素 …

在微信浏览器中 location.reload() 不刷新解决方案(直接调用方法)

1、问题 在微信浏览器中&#xff0c;需要时刷新当前页面。 正常情况下我们直接使用 location.reload 方法来刷新。 2、解决方法 function realod(){var {search,href} window.location;href href.replace(/&?t_reload(\d)/g,)window.location.href href(search?&:…

Python爬虫学习笔记1:request、selenium、ChromeDrive、GeckoDriver等相关依赖安装

系列学习笔记参考&#xff1a;python3网络爬虫开发实战 requests # pip install requests import requestsselenium Selenium是一个自动化测试工具&#xff0c;利用它我们可以驱动浏览器执行特定的动作&#xff0c;如点击、下拉等 操作 。 对于一些 JavaScript谊染的页面来说&a…