201871030103_陈荟茹 实验四 团队作业1:软件研发团队组建个人博客
项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客 |
这个作业要求链接 | 作业要求 |
团队名称 | 天线宝宝突击队 |
团队的课程学习目标 | 1.申请开通团队博客 2.完成实验任务 3.根据每个成员的擅长领域不同,合作完成项目 |
这个作业在哪些方面帮助团队实现学习目标 | 1.组建团队企业微信群,并且开通博客园的团队博客 2. 小组里团队进行分工,合作完成项目开发 |
团队博客链接 | 团队博客 |
1、实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
2、实验内容与步骤
任务1
2-1.博客评论
结对方博客链接:对方博客链接
2-2.代码核查表
1.克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录,clone步骤如下:
1.Fork
(1)点击原作者仓库github右上角的fork按钮,就会在你自己的github中新建一个同名仓库,如图2:
2.Clone
(1)进入自己的页面,打开原作者的同名仓库,如图3:
(2)clone fork仓库到本地,如图4:
(3)打开git bush here,输入:git clone http clone 的地址,如图5:
3.本地库与原始库关联
(1)进入我们的项目文件夹: cd d01fypwf,如图6:
(2)添加与原始库的关联,命名为upstream,此地址是原项目开发者的项目主页上的clone的地址:这是专门用来与主开发者保持相同进度的方法,如图7:
(3)从原始库中抓取最新的更新,如图8:
4.Push过程
(1)把Test文件夹下面的文件都添加进来,查看,如图9:
(2)git commit -a -m"提交信息",如图10:
(3)https://github.com/chenhuiru-ch/d01fypwf ,如图11:
5.Pull request
(1)在项目主页上,如图12:
(2) 代码目录左上方有如图所示的图表,点击拉取要求的图标,然后就可以比较你的版本和源中代码的差别,然后就可以选择发送一个Pull request给主开发者,添加修改的原因描述。然后就等待主开发者去merge了,如图13:
2.阅读并运行代码,找出项目代码的5个以上bug步骤如下:
1.Bug1:
没有实现将txt文件放进项目中,只能先将txt文件下载到本地并更改文件读取路径才能使用 , 如图14:
2.Bug2:
HTML页面写了结果展示部分,但并未将结果显示在这里,如图15:
3.Bug3:
未将散点图和遗传算法在GUI人机交互页面实现,如图16:
4.Bug4:
代码中无回溯算法代码,希望可以添加进去,如图17:
5.Bug5:
在博客介绍中写到做了代码检测功能,但是实际只检测了“请输入您检测的第几组数据”不为空,其余为检测,当其他部分为空时,就不会出现结果,如图18-1和18-2:
3.代码核查表具体内容如下:
-概要部分
(1)代码能符合需求和规格说明么?
答:基本符合,就是有些代码可能是因为平台的问题,有些语句显示时有一点问题。
(2)代码设计是否有周全的考虑?
答:在switch语句使用时没有运用Default。
(3)代码可读性如何?
答:可读性很好。对类,方法还有变量都做了相关注释。
(4)代码容易维护么?
答:比较容易 。
(5)代码的每一行都执行并检查过了吗?
答:是的,检查过。
-设计规范部分
(1)设计是否遵从已知的设计模式或项目中常用的模式?
答:是。
(2)有没有硬编码或字符串/数字等存在?
答:有一部分。
(3)代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)
答:没有依赖
(4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
答:可以实现,不存在
(5)有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码。)
答:没有。
-代码规范部分
(1)修改的部分符合代码标准和风格么(详细条文略)?
答:符合代码标准和风格。
-具体代码部分
(1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
答:有错误处理,并且处理了异常。
(2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
答:无错误,字符串的长度是字节的长度,以0开始计数。
(3)边界条件是如何处理的?Switch语句的Default是如何处理的?循环有没有可能出现死循环?
答:针对需要的操作进行Switch,在目前代码中没有发现Default。经测试代码不会出现死循环。
(4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
答:没有。
(5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有可能优化?
答:资源都是在类中申请,在类中释放,对资源都有一定的控制,不会导致资源泄露。
(6)数据结构中是否有无用的元素?
答:没有。
-效能
(1)代码的效能(Performance)如何?最坏的情况是怎样的?
答:经检查,代码正确,并且功能都已实现,暂无错误。
(2)代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)?
答:循环中暂无,但在柱状图的设置部分需要优化。
(3)对于系统和网络调用是否会超时?如何处理?
答:不会超时。
-可读性
(1)代码可读性如何?有没有足够的注释?
答:代码可读性较好,对类,方法和变量都进行了注释。
-可测试性
(1)代码是否需要更新或创建新的单元测试?还可以有针对特定领域开发(如数据库、网页、多线程等)的核查表。
答:希望用较多的数据对代码进行测试。
2-3.阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片如下:
1.关于软件的操作过程:
(1)对方小组所使用的软件为MyEclipse,在自己的笔记本中下载该软件,根据2-2步骤中将对方的项目clone到本地后,打开MyEclipse,如图19:
(2)选择项目,点击右键,选择运行,将运行的连接复制到浏览器中,查看结果,如图20:
2.对方项目显示结果:
(1)前端页面显示结果,如图21:
(2)散点图页面显示结果,如图22:
(3)遗传算法页面显示结果,如图23:
(4)求解最优解页面显示结果,如图24:
(5)将数据库中的数据导入页面显示结果,如图25:
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见:
1.关于功能软件的解决:
(1)对方小组所使用的软件为MyEclipse,基本实现了要求的功能,但是在人机交互界面仅实现了求优先算法的问题,散点图部分没有用到人机交互界面。
(2)对方小组没有实现将txt文件放进项目中,只能先将txt文件下载到本地并更改文件读取路径才能使用。
(3)对方小组没有回溯算法代码,希望可以添加进去。
2.软件在数据量/界面/功能上各有什么优缺点:
(1)界面:
优点:界面简单大方,易于操作。
缺点:散点图部分没有与web前端相结合。且可以将前端做功能更加丰富一些。
(2)功能:
优点:要求的功能基本实现。
缺点:没有实现回溯算法。
(3)数据量:
计算机科学与工程学院的学生。
3.对该软件产品功能的改进意见:
(1)可以让前端的功能更加完善,提高用户的可读性。
(2)没有实现的回溯算法,希望可以添加到项目中。
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么:
1.表面需求:
1.核心用户群就是西北师范大学在校大学生和老师,年龄以二十岁左右的年轻人,专业分布大多是以计算机专业为主。
2.主要是为了学生在开始学习数据处理的时候,只要简单将需要处理的数据进行导入,就可以通过前端页面中的散点图来观察数据的分布。
3.可以实现对数据(价值,重量比)的排序。
4.用户可以通过遗传算法,动态规划算法,回溯算法对可以求出最优解。
学历:本科及以上
年龄:20岁左右
专业:大数据,计算机,数学统计等
爱好:计算机,编程,软件开发
2.潜在需求:
其它数据处理可以用到该项目。
2-4.经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
结论:e
对方小组的项目完成的很不错,基本的功能都已经实现了,但是一小部分功能还需要进行完善,比如说回溯算法需要完善,项目的散点图可以与前端页面相结合等。总体来说,对方小组的很多地方值得我们小组去学习,比如文件的导入使用了与我们小组不同的方式等等,这些地方我们可以共同探讨,一起进步。
2-5.结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
已迭代项目路径
1.迭代后的前端页面
(1)排序页面,如图26:
(2)散点图页面,如图27:
(3)迭代后的遗传算法页面,如图28:
任务2
已完成团队任务2。团队任务博客连接
任务3
3-1.关于任务1
已完成任务1,如上2-1——2-5。3-2.关于任务2
已完成团队任务2。团队任务博客连接
3-3.记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间
任务名称 | 计划用时(min) | 实际用时(min) |
---|---|---|
任务1 | 360 | 300 |
任务2 | 100 | 120 |
任务3 | 80 | 60 |
3、本次作业的感受和体会
在本次作业中,通过测试其他小组的项目,让我收获很多,了解了自身的不足。在两人小组编程时,有时会出现对整体架构把握不清的情况,这时如果能跟队友共同讨论分析,会大大加快理解以及设计的速度。让我学习到了更多的经验,希望在日后团队开发项目的过程中,可以收获更多的知识与友谊。