201971010115-蒋敏敏 实验四 团队作业1:软件研发团队组建

项目 内容
课程班级博客链接 2019级卓越工程师班
这个作业要求链接 实验三 软件工程结对项目
团队学习目标

(1)实验三作业互评。

(2) 通过运行别人的软件功能,改进自己团队的项目。

(3) 阅读《构建之法》,提高理论知识

这个作业在哪些方面帮助团队实现学习目标

(1) 通过作业互评,改进了实验三软件的功能

(2) 学会评价一个软件的实用性

(3) 加强团队合作

任务1:小组作业互评,完成以下任务,具体要求如下:

1. 博客评论

项目 内容
被评论作业的博客链接 201971010157-张颖 实验三 结对项目-《{0-1}KP实例数据集算法实验平台》
被评论作业的Github项目仓库链接 text2
评价内容 (1)博文结构:博文整体排版较好,清晰易读,字体大小适中博文可读性强。

(2)博文内容:实验内容完成度不错,对需求分析、功能设计及设计实现设计实现都进行了详细的陈述,但是没有完成扩展部分,还有就是模块化编程这方面实现不是很好,建议将代码写成多个文件放在一个项目下会增加可读性,也便于修改。

(3)博文结构与PSP中“任务内容”列的关系:可以看出博文整体结构基本对应了PSP中的“任务内容”,在进行计划分析后,也得出了需求分析,生产设计文档,有自己的编码规范风格,有具体的设计,以及编码、测试、修改代码(完善功能)、提交代码、提交博文、事后总结等过程。

(4)PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究上:在代码复审阶段,博主实际完成的时间与计划完成的时间差距较大,时间少了一半,可见在第一次编写代码时完成度比较高,基本都已实现。

团队博客链接 团队作业

2. 克隆任务3项目源码到本地机器,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。

  • 克隆代码到本地

  • 核查表复审

项目 内容 实际完成情况
概要部分 1)代码符合需求和规格说明么? 较符合
2)代码设计是否考虑周全? 考虑的较为周全
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)代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。 代码需要更新和创建新的单元测试。可以针对部分功能的实现对代码进行进一步改进或创建新的单元测试。

3. 阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:

  • A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;

    • 运行流程

    • 初始界面


    • 算法运行

    • 绘图界面

  • B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?

项目 优点 缺点
数据量 可测试大量数据,性能较好 导入数据是固定的,适用性不强
界面 具有友好的人机交互界面,便于操作 界面美化程度不够
功能 软件功能齐全,完成了实验要求 在这基础上没有扩展
功能改进意见 导入数据可以导入本地任何一组数据可增加适用性。

  • C. 从学历、年龄、专业、爱好、收入等方面概括实验三任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求都是什么?

项目 内容
学历 本科及以上
年龄 18岁以上
专业 计算机类、数据分析
爱好 编程、研制产品
收入 8000以上
表面需求 研究相关算法
潜在需求 将各种算法运用到实际生活中解决各种问题

4. 经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论:a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐

  • 经过前面的测试与分析,可以发现该小组在软件功能上有较好的实现,而且团队合作能力强,而且博文撰写方面结构清晰,明确说明了该软件的使用过程,指导性强。总体而言:给出d) 好,不错的结论。

5. 结合(1)—(3)的评论体会,迭代改进本小组实验三的任务3。

  • 迭代改进本小组任务三:之前所有功能基本都已完善并扩展,本次对界面进行了美化。
    仓库链接

    • 初始界面:

    • 算法运行界面:

    • 绘图界面:

    • 排序界面:

    • GitHub提交:

任务2:团队组建

  • 队名:发际线跟我作对

  • 团队博客:团队作业

  • 团队成员组成:

成员学号 成员姓名 个人博客地址 备注
201971010115 蒋敏敏 https://www.cnblogs.com/20010201jmm/p/16119581.html
201971010157 张颖 https://www.cnblogs.com/mingjiang-/p/16113265.html
201971010231 毛玉贤 https://www.cnblogs.com/Moki231/p/16106385.html PM
  • 团队特色描述:

成员 擅长技术 编程兴趣 风格 承担角色 一句话宣言
201971010115_蒋敏敏 python、C 比较喜欢人工智能、游戏开发方面 实干型,动手能力强,喜欢一个人解决问题 开发测试 实践出真知
201971010157_张颖 C、java 对做微信小程序、网站情有独钟 总结性强,适应性强 ,对文字敏感 文档设计与测试 不塞不流,不止不行
201971010231_毛玉贤 C++、python 喜欢前端、系统开发 偏理论性强,能够提出新需求,想法新颖 开发与测试 夏虫不可语冰,井蛙不可语海
  • 阅读《现代软件工程—构建之法》第7章,理解MSF的9点基本原则:

    • 1.推动信息共享与沟通( Foster open communications )
    • 2.为共同的远景而工作( Work toward a shared vision )
    • 3.充分授权和信任( Empower team members )
    • 4.各司其职,对项目共同负责( Establish clear accountability and shared responsibility)
    • 5.交付增量的价值( Deliver incremental value )
    • 6.保持敏捷,预期和适应变化( Stay agile, expect and adapt change)
    • 7.投资质量( Invest in quality)
    • 8.学习所有的经验( Learn from all experiences )
    • 9.与顾客合作( Partner with internal and external customers )
      其余具体的内容,在团队博客中展示。
  • 企业微信群:

  • 团队特色描述:

    • 特点:风格明确,各司其职,互相交流,共同进步,团队包容性强,氛围融洽,有共同的价值观和行为规范;
    • 核心竞争力:团队成员各有各的闪光点,三人能力互补,学习能力教强,积极向上,对事物充满兴趣。

任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业

1. 团队建立花费时间:
任务 实际花费时间(min)
团队名称 5
团队成员组成 10
团队成员风采 10
第5章内容的阅读 15
MSF的学习 30
团队企业微信群 2
特色描述 5
2. 本次作业感受:

在两人结对基础上再两两结合,更加考验团队交流,协作能力。其次就是运行别人的优秀代码,学习他人博客排版以及代码编写规范等的优点。在编程中,相互讨论,可以更快更有效地解决问题,互相请教对方,可以得到能力上的互补。

posted @ 2022-04-11 01:04  欽衣  阅读(16)  评论(0编辑  收藏  举报