201971010146-杨凯 实验四 团队作业1 软件研发团队组建
项目 | 内容 |
---|---|
课程班级博客链接 | 2019级计算机科学与技术 |
这个作业要求链接 | 实验四 团队作业1:软件研发团队组建 |
团队名称 | 夏日限定 |
我的课程学习目标 | (1)组件软件项目研发团队 (2)互评实验三项目,吸取其他项目的优点 |
这个作业在哪些方面帮助我实现学习目标 | (1)和其他项目取长补短,互相学习 (2)团队内部互相学习,更好的组件团队 |
团队博客链接 | 夏日限定 |
任务一:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务
1. 评论对象信息:
项目 | 内容 |
---|---|
信息 | 201971010115-蒋敏敏 |
博客 | 201971010115-蒋敏敏 实验三 结对项目—《{0-1}KP 实例数据集算法实验平台》项目报告 - 欽衣 |
Github | Mao-cpu/Algrithm_platform: 2022软件工程实验三 (github.com) |
2. 博文评论:
- 博文结构: 博文结构清晰,排版整洁
- 博文内容: 内容完整充实,完成了各个任务,条理清晰
- 博文结构与PSP中“任务内容”列的关系:博文结构与“任务内容”基本一致,基本遵循了PSP过程。
- PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究:该项目的PSP计划与实际时间基本一直,可以看出该组同学对计划的制定以及实施做到了精准的把握,
3. 代码克隆及复审:
- 克隆项目到本地:
-
代码复审表:
项目 内容 1. 概要部分 代码符合需求和规格说明吗 符合 代码设计是否考虑周全 是 代码可读性如何 较好 代码容易维护吗 容易 代码的每一行都运行并检查过了吗 已检查 2. 设计规范部分 设计是否遵从从一直的设计模式中常用的模式 是 有没有硬编码或字符串/数字等的存在 有 开发者新写的代码能都用已有的Library/SDK/Framework中的功能实现?在本项目中是都存在类似的功能可以调用而不全部重新实现? 是 有没有无用代码可以清除? 无 3. 代码规范部分 修改的部分符合代码标准和风格嘛 符合 4. 具体代码部分 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常 否 参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是以0开始计数还是以1开始计数 无错误,字符长度,从0开始 边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 未使用switch语句,不会出现死循环 有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? 无 对资源的利用,是在哪里申请,在哪里释放的,有无可能存在资源泄露(内存、文件、各种GUI资源、数据库访问链接等)?有无优化的空间。 有相应的申请释放,没有资源泄露 数据结构中有没有用不到的元素 无 5. 效能 代码的效能如何?最坏情况是怎样的? 代码效能优秀,最坏情况就是无解的情况下,回溯法依旧会考虑所有解 代码中,特别是循环中是否有明显的可优化的部分(C++中反复创建类,C#中string的操作是否能用StringBuilder来优化) 无 对于系统和网络的调用是否会超时?如何处理? 不会超时 6. 可读性 代码可读性如何?有没有足够的注释? 没有细致的注释,但对各个类进行了注释,所以代码可读性较好 7. 可测试性 代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表 不需要
4. 阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片:
1. 首先是初始界面:
- 算法求解界面:导入数据到数据库后,选择算法,并选择导入的数据进行求解:
- 图形绘制界面:包括散点图和柱状图,直接选择数据库的数据进行绘制:
- 排序界面:可以选择不同的数据进行升序或者降序排列:
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
该软件功能全面,基本完成了任务三的全部要求,并且完美的将数据库嵌入;
优点:
1. 可以直接将表数据上传到数据库,将数据库中的数据进行最优解求解,以及排序,极大的减轻了数据文件选择的复杂性。 2. 增加了功能绘制数据柱状图,丰富了功能。
缺点:
1. 界面较小,不容易操作 1. 数据库中的数据无法删除,容易造成重复提交数据的问题而报错
C. 从学历、年龄、专业、爱好、收入等方面概括软件产品的典型用户群特征,他们表面需求,潜在需求都是什么?
学历 年龄 专业 爱好 收入 表面需求 潜在需求 本科 18+ 计算机专业 编程 低收入 实现最好选择 算法掌握
5. 经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论:a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐:
e) 非常推荐
6. 迭代改进本小组任务三:
-
增加扩展内容(画柱状图):
-
添加如下函数:
def painterzhuzhuangtu():
resx = fileoperate()
print(resx[0])
x, y = np.loadtxt(resx[0], delimiter=' ', unpack=True)
plt.figure()
plt.bar(x,y,0.2,color="green")
plt.xlabel("X-weight")
plt.ylabel("Y-value")
plt.title("bar chart")
write_log_to_Text("绘制柱状图成功")
plt.show()
-
效果:
-
git push
任务二:团队组建
1. 团队名称:
- 夏日限定
2. 团队成员组成:
成员学号 | 成员姓名 | 个人博客地址 | 备注 |
---|---|---|---|
201971010235 | 阮凯 | 阮凯-博客地址 | PM |
201971010146 | 杨凯 | 杨凯-博客地址 | |
201971010230 | 孟姣姣 | 孟姣姣-博客地址 | |
201971010233 | 潘晴 | 潘晴-博客地址 |
3. 团队成员风采:
成员姓名 | 擅长技术 | 编程兴趣 | 希望承担的角色 | 宣言 |
---|---|---|---|---|
阮凯 | web前端 | web前端和python | PM | 做好每一件事 |
杨凯 | java | 前端 | 测试 | 从现在开始 |
孟姣姣 | java | 后端开发 | 开发 | 星光不问赶路人,时光不负有心人 |
潘晴 | c语言 | 前端开发 | 文档 | 虽然很菜,但是努力不在菜 |
4. 阅读《现代软件工程—构建之法》第5章内容:
- 团队的共同特点:
- 团队有一致的集体目标,团队要一起完成这个目标
- 团队成员有各自的分工,互相依赖合作,共同完成任务
- 软件团队的模式:
- 主治医师模式
- 明星模式
- 社区模式
- 业余剧团模式
- 私密团队
- 特工模式
- 交响乐团模式
- 爵士乐模式
- 功能团队模式
- 官僚模式
5. MSF的9点基本原则:
-
推动信息共享与沟通(Foster open communications)
所有信息都保留公开,同时对于涉及到技术机密以及安全性等信息采取保护措施。
-
为共同的远景而工作(Work toward a shared vision)
共同的远景”指产品的远景。 -
充分授权和信任(Empower team members)
在一个高效的团队中,所有成员都应得到充分授权。
-
各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
团队中每个角色都有自己的职责,若出现了问题,这个角色就要负责。
-
重视商业价值
如果你还没有能说清楚你的产品解决了什么问题,为谁解决问题,为什么你的产品会解决这些问题,以及客户怎样付钱让你解决
-
保持敏捷,预期和适应变化(Stay agile, expect and adapt change)
软件工程,唯一不变的是变化;我们是预期变化,不是期望变化。
-
投资质量(Invest in quality)
对质量的重视,引发对质量的投资,引发对人、过程和工具的投资。
-
学习所有的经验(Learn from all experiences)
在学习过去的经验的同时,也要避免让过去的经验妨碍解决现在的问题。
-
与顾客合作(Partner with internal and external customers)
MSF强调产品团队与顾客的交流和合作,因为“我觉得”和“顾客觉得”是两码事。
6. 团队企业微信群:
7. 团队特色描述:
- 团队特点:思维活跃,特点分明,分工明确。
- 核心竞争力:团队组建的时间久,合作的范围广,相互了解。
任务三:记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间并谈谈完成本次作业的感受和体会
- 团队建立花费时间:
任务 | 实际花费时间(min) |
---|---|
团队名称 | 5 |
团队成员组成 | 10 |
团队成员风采 | 10 |
第5章内容的阅读 | 15 |
MSF的学习 | 30 |
团队企业微信群 | 2 |
特色描述 | 5 |
- 本次作业感受:
本次作业首先对其他组的项目进行了评审及借鉴,吸取了对方项目的优点,改进了自身项目,并对对方的缺点做出了评论,达到了互相取长补短的目的。此外,组建了团队,对团队有了新的认识,希望在接下来的日子里,我们团队能够互相配合,完成之后的任务与学习。