项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2018CST/ |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14660499.html |
团队名称 | 鲤鱼跃龙门 |
团队的课程学习目标 | 组建软件项目研发团队 |
这个作业在哪些方面帮助团队实现学习目标 | 软件项目流程、团队成员如何分工以及协作等方面 |
团队博客链接 | https://www.cnblogs.com/pljj/ |
一、实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
二、实验内容与步骤
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
在进行博文选择时,我选取了我们班代码能看次比较强的刘佳华和常龙龙一队,评论链接如下:https://www.cnblogs.com/JerryLau-213/p/14652158.html
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
我是选取了刘佳华同学的代码进行了运行,总结如下。
复审核查项
代码能符合需求和规格说明么?
代码符合要求与规格说明
代码设计是否有周全的考虑?
有较为周全的考虑
代码可读性如何?
代码可读性强
代码容易维护么?
容易维护
设计是否遵从已知的设计模式或项目中常用的模式?
遵从
有没有硬编码或字符串/数字等存在?
没有
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)?
不会影响移植
在本项目中是否存在类似的功能可以调用而不用全部重新实现?
没有
有没有无用的代码可以清除?
没有
修改的部分符合代码标准和风格么(详细条文略)?
符合
有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有可能优化?
不会导致资源泄露;还有优化的可能性
数据结构中是否有无用的元素?
没有
代码的效能(Performance)如何?最坏的情况是怎样的?
达到了部分任务要求
代码中,特别是循环中是否有明显可优化的部分?
没有
代码是否需要更新或创建新的单元测试?
可以继续开发
总结:该组实验三博客作业博文内容简明,逻辑清晰,基本没有问题。代码设计方面,项目代码可读性比较好,稍微复杂的地方也做了相应注释。但是代码中多少存在一些无用的代码,若加以修正效果会更好。
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
测试运行
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
任务三要求的功能软件基本都解决了,数据处理简单有效,值得学习,但是界面友好程度不足,遗传算法不够成熟;
改进界面的友好程度,进一步改进遗传算法,对于每个算法的时间复杂度较大,很是占用资源,希望可以改进;
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
项目 | 内容 |
---|---|
职业 | 计算机类学生、IT公司人员 |
学历 | 专科及本科以上 |
年龄 | 18-45 |
专业 | 计算机科学与技术、物联网工程、软件工程 |
收入 | 0-10000 |
表面需求 | 学习掌握背包算法和遗传算法 |
潜在需求 | 提高算法设计能力 |
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论:
非常推荐,因为该组实验三博客作业博文内容简明,逻辑清晰,基本没有问题。代码设计方面,项目代码可读性比较好,稍微复杂的地方也做了相应注释。
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
界面的友好程度可以继续改进;
改进界面的友好程度,进一步改进遗传算法;
完善自己团队的要求功能;
完成本次作业的感受和体会。
本以为本次作业不做项目会相对容易,因此刚开始没有去管这个作业,第三天才开始进行,但是随着每个任务慢慢完成,越到后面越发现这次作业需要理解的东西很多,在浏览其他学校的团队作业时,发现团队项目并不是只完成这个项目就可以了,在项目开始前要做很多准备,比如项目进度计划、成员分工与合作等等。在运行别人的项目时,感叹了无数遍,感觉实在太厉害……通过这次作业,相比项目实战,我收获了更多。在后面的团队项目中,我会把这次学到的东西加以运用,使项目更好的完成。