项目 | 内容 |
---|---|
课程班级博客链接 | 19级卓越工程师班 |
这个作业要求链接 | 实验四 -- 团队项目 |
我的课程学习目标 | 1、提高自身团队合作能力 2、通过此次实验提高代码编写水平 |
这个作业在哪些方面帮助我实现学习目标 | 1、与同学结对完成本次实验 2、此次实验需要具有一定的团队协作能力及相应代码基础 |
团队名称 | 花开富贵 |
团队博文链接 | 团队作业博客 |
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
项目 | 成果 |
---|---|
评论对象 | 201971010242-王凯英 |
评论链接 | 点击查看评论内容 |
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
(2)克隆任务3项目源码到本地机器,阅读并运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
*** A、克隆任务3项目源码到本地机器,阅读并运行代码**
- B、阅读并运行代码
2、参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录
项目的开发者:王凯英
项目的复审者:张萌
提出问题 | 执行情况 |
---|---|
* 概要部分 | |
代码符合需求和规格说明么? | 代码符合需求和规格说明。 |
代码设计是否考虑周全? | 考虑周全。 |
代码可读性如何? | 可读性强。 |
代码容易维护么? | 容易维护。 |
代码的每一行都执行并检查过了吗? | 可执行。 |
* 设计规范部分 | |
设计是否遵从已知的设计模式或项目中常用的模式? | 遵从常用模式。 |
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)? | 不会影响移植,不依赖于某一平台。 |
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? | 能;存在,有些代码是可以调用的 |
有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码) | 无。 |
* 代码规范部分 | |
修改的部分符合代码标准和风格么? | 修改的部分符合代码标准和风格。 |
* 具体代码部分 | |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 对错误都进行了处理,没有异常。 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? | 无错误;本项目中是以0开始计数。 |
边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? | switch语句的default分支返回false,没有出现死循环。 |
有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? | 无。 |
对资源的利用是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有优化的空间? | 都在内存中完成,很有可能泄露 |
数据结构中有没有用不到的元素? | 无。 |
* 效能 | |
代码的效能(Performance)如何?最坏的情况如何? | 达到了具体任务的要求。 |
代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)? | 没有。 |
对于系统和网络调用是否会超时?如何处理? | 目前没有出现超时的现象。假如出现了我们会整理系统,减少运行的进程。 |
* 可读性 | |
代码可读性如何?有没有足够的注释? | 可读性强;代码有足够的注释 |
* 可测试性 | |
代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。 | 可以继续开发。 |
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
-
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
(1) 软件的使用过程:软件首页面为输入文件名和选择数据编号两部分组成;选择完之后将进入二级页面进行查询数据、选择数据等功能选择;然后进行对应的后续界面进行实验操作。
(2) 首页面:
(3) 功能界面:
-
散点图绘制:
-
数据库数据保存
*数据排序(以beibao0.in为例)
-
利用遗传算法求解
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
类别 | 优缺点 |
---|---|
软件功能解决度 | 用户可以根据需求进行不同的功能选择,但保存算法实验日志数据方面还需要进行改进 |
软件在数据量/界面/功能上各有什么优缺点 | 可处理数据较多、范围较大;界面清晰 ;功能较全面 |
对该软件产品功能有什么改进意见 | 可以添加一些新功能进去,以此来减小软件的竞争力 |
C. 从学历、年龄、专业、爱好、收入等方面概括实验三任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求都是什么?
类别 | 典型用户群特征 |
---|---|
学历 | 大学本科生及以上学历 |
年龄 | 18-22 |
专业 | 计算机相关专业 |
爱好 | 编程、数据分析、算法设计 |
收入 | 2000-5000 |
表面需求 | 课程要求了解、代码分析 |
潜在需求 | 对相关代码及算法知识进行学习 |
(4)经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论:a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
* 通过对软件进行相对应的测试及分析,虽然软件基本要求满足了实验要求,但有些方面还需要进行相对应的改进。
* 所以我给评价作业选择的结论是d) 好,不错
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三的任务3。
改进部分为:
-
find函数:利用数据库进行数据查询
def find(result=[]): win1 = tkinter.Toplevel() win1.title('查询数据') win1.geometry('500x300') sw = win1.winfo_screenwidth() sh = win1.winfo_screenheight() win1.geometry('+%d+%d' % ((sw - 500) / 2, (sh - 300) / 2)) tkinter.messagebox.showinfo("结果如下", result) win1.destroy()
任务2:团队组建
- 在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
- 申请开通团队博客,点击链接(https://www.chaojibiaoge.com/U/url/7lxwx4sx)提交团队信息,将团队博客加入到班级博客;
- 阅读《现代软件工程—构建之法》第5章内容
- 任务已完成,团队博文
任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业
1、完成《实验四 团队作业1:软件研发团队组建》时间分配表
任务内容 | 计划共完成的时间(min) | 实际完成时间(min) |
---|---|---|
团队初步组建 | 20 | 15 |
成员了解及确认组长 | 20 | 15 |
团队建成 | 80 | 85 |
实验流程规划 | 40 | 50 |
创建企业微信群 | 6 | 3 |
开通团队博客 | 60 | 80 |
报告撰写 | 300 | 290 |
博客互评 | 50 | 55 |
运行结对方实验三项目 | 90 | 120 |
阅读《构建之法》 | 70 | 60 |
博客园内容分工 | 30 | 40 |
博客园编写 | 60 | 100 |
反思及总结 | 30 | 15 |
个人总结:在本次实验中我们主要面临的问题是如何有效的,和谐的进行团队配合,但由于大家的配合度很高,所以我们的实验完成度很好。在这次实验中我也更加认识到了团队的重要性,我相信以后遇到这种团队项目,我会更加得心应手。