201871030125-王芬 实验四 团队作业1:软件研发团队组建
实验四 团队作业1:软件研发团队组建
项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2018CST |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14660499.html |
我的课程学习目标 | (1)掌握软件项目结对开发流程;(2)掌握Github发布软件项目的操作方法。 |
团队的课程学习目标 | (1)建设团队文化,开通团队博客;(2)选择出团队的组长,了解团队各个成员的目标;(3)完成所有实验任务;(4)明确小组成员的分工。 |
这个作业在哪些方面帮助我实现学习目标 | (1)在程序设计方面提高了自己的编程能力;(2)让我了解了团队协作、分工的重要性;(3)组队编程、和同伴如何分工以及与同伴如何更好的交流。 |
团队博客链接 | https://www.cnblogs.com/txbbswm/p/14684126.html |
一、实验目的与要求:
(1)实验三作业互评。
(2)组建软件项目研发团队。
二、实验内容与步骤:
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
-
博客评论截图:
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。 -
bug1:在实现遗传算法的时候,运行的结果不能出现在前端的页面中。(点击遗传算法,显示结果未出现在前端页面中)
-
bug2:代码实现登录后台的页面中,可以连接一下数据库,实现:当用户名和密码一致的时候,登录至后台页面。
-
bug3:在文件“dbservlet.java”文件中,作者写了数据的添加,删除,修改等操作,可以将其在前端页面实现,会让功能更加丰富。
-
bug4:文件读取数据的部分,可以采用另外一种方式:实现多行的按行读取,这样会使数据的读取更加方便。
-
bug5:散点图部分的画坐标轴部分:纵坐标的具体数据没有显示,上箭头部分的位置需要进行调整。
复审项目代码及记录如下:
项目的开发者:陈鑫莲、陈荟茹
项目的复审者:冯永萍、王芬1、概要部分
(1)代码符合需求和规格说明么?
代码符合需求和规格说明(2)代码设计是否考虑周全?
考虑周全(3)代码可读性如何?
可以顺利读下去(4)代码容易维护么?
比较容易维护(5)代码的每一行都执行并检查过了吗?
是的,都可以执行2.设计规范部分
(1)设计是否遵从已知的设计模式或项目中常用的模式?
- 遵从
(2)有没有硬编码或字符串/数字等存在?
- 有
(3)代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)?
- 没有,不会影响移植,任何平台都可以
(4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
- 可以用
- 存在,有些代码是可以调用的
(5)有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码)
- 基本清除完毕了
3.代码规范部分
修改的部分符合代码标准和风格么?
- 符合,全都按照代码标准修改的
4.具体代码部分
(1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
- 对错误都进行了处理,没有异常
(2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
- 无错误
- 本项目中字符串以0开始计数
(3)对资源的利用是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有优化的空间?
- 在对数据库进行操作之前申请数据库连接资源,操作完毕之后释放申请的资源
- 不会导致资源泄露
- 可以优化使用断言来保证我们认为不变的条件
(4)数据结构中有没有用不到的元素?
- 没有
5.效能
(1)代码的效能(Performance)如何?最坏的情况如何?
- 达到了具体任务的要求
(2)代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)?
- 没有,已经比较优化了
(3)对于系统和网络调用是否会超时?如何处理?
- 目前没有出现超时的现象。假如出现了可以杀毒;整理系统,减少运行的进程,释放内存、cpu,释放c盘空间等方法处理 这些问题;
6.可读性
代码可读性如何?有没有足够的注释?
- 可以顺利读取
- 代码有足够的注释让我们读懂
7.可测试性
代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。
- 可以继续开发,摆脱传统的命令行方式,更为实用
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
-
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
- 软件的使用过程:
- 使用软件的照片:
- 软件的使用过程:
-
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
任务三完成的功能有:
人机交互页面、排序、散点图、最优解、遗传算法
评价:基本实现了要求的功能软件;
优缺点:
数据量:
优点:基本能满足老师给出的大部分数据;
缺点:任然有少部分数据无法被正确处理;
界面:
优点:界面简洁美观,使用方便;
缺点:如果搭配其他功能会更好;
功能:
优点:人机交互页面清晰简洁;功能丰富便于操作;
缺点:遗传算法的结果不能显示在前端界面中;
改进意见:
希望可以修改程序中的bug并完善日志部分,会更完美。
-
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
-
职业:医生,学生
-
学历:本科及以上
-
年龄:18以上
-
专业:生物学,计算机,人工智能
-
爱好:计算机,编程,软件开发
-
收入:无限制
-
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
-
e)非常推荐。
-
功能方面:通过运行该案例代码,觉得项目功能很齐全。老师所要求的功能基本上都实现了。且人机交页面的设计也非常简单人性化。唯一的不足可能就是希望给出用户名、密码的提示或者将用户的注册信息写进数据库,这样用户就可以更方便的登录。
-
博文方面:博客在我们的学习生活中很有用处,无论是对项目的总结回顾还是对软件的设计思路的引导和记录,该组分享总结写的特别好,突出重点且兼顾全面,可以让我很快找到我想找到的那部分的内容,他们的分享总结有的写的特别好,有很多值得我们学习的地方。
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。 -
根据与本次结对小组讨论,确定我们小组迭代方向为:
- 1:实现将txt文件放进项目中,目前只能先将txt文件下载到本地并更改文件读取路径才能使用,或者采用上传的方式;
- 2:将散点图和遗传算法在GUI人机交互页面实现;
- 3:HTML页面写了结果展示部分,但并未将结果显示在该部分;
- 4:代码中无回溯算法代码;
- 5:在博客介绍中写到做了代码检测功能,但是实际只检测了“请输入您检测的第几组数据”不为空,当其他部分为空时,会出现bug,这部分仍需要改进。
-
迭代改进后的结果如下:
- 平台基础功能:
- D{0-1}KP 实例数据集需存储在数据库
- 人机交互界面
- 平台基础功能:
团队博客
- 已完成并发表
个人总结:
本次作业和之前做的作业都不同,让我们选择实验三的结对项目作业进行评价、学习,感受到了不一样的体验。首先,在那么多的优秀作业中选择一个自己想要分析的,这就要考虑自己的兴趣和自己的专业技能,选择很高级的项目的话,有的知识完全没有了解过,分析起来也不上手。以前也经常网上百度看别人的项目,但大都扫几眼,然后就不看了,但这次是带着任务分析别人的项目设计流程,就会看的很仔细,也真正体验到了不一样的设计思路和问题解决方式,感觉很有收获。
在这次实验中,通过阅读别人的代码和查看别的团队的合作,更加理解了团队之间的合作的重要性,让我在以后的实践中获得了更多的经验。