201871030104-常祺 《实验四 团队作业1:软件研发团队组建》
实验四 团队作业1:软件研发团队组建 >
1、通过团队项目学习软件工程 2、通过团队项目对软件开发有更深的认识 3、通过团队项目学习GitHub的一些团队操作 4、通过团队项目体会团队合作的优势 |
|
1、下载并运行其他小组的源码找出他们的代码的优点和bug可以由其对自己的项目进行改进,实现自我提高。 2、进行团队合作,进行多方面的提高。 |
|
任务1:浏览实验三作业,任选一个小组的项目成果,完成以下任务
1.对博文作业进行阅读,并结合评分要求进行评论:
https://www.cnblogs.com/chenpiawu/p/14645555.html | |
---|---|
https://github.com/chenpiawu/boki |
我的评论如下:
2.克隆源码到本地机器,阅读并运行代码,找出代码的5个以上bug,并核查表复审项目代码并记录。
(1)代码核查表如下:
符合(2)要求的代码核查表
概要部分
代码符合需求和规格说明么?
代码符合部分需求,部分功能未能实现;缺少代码规格说明。
代码设计是否考虑周全?
设计过程中实现了部分功能,考虑周全但是未能全部实现其需求。
代码可读性如何?
代码可读性良好,注释有点不足。
代码容易维护么?
代码容易维护,实现代码比较简单,维护较为便利。
代码的每一行都执行并检查过了吗?
代码的每一行进行了检查并且顺利执行。
设计规范部分
设计是否遵从已知的设计模式或项目中常用的模式?
设计遵从软件项目中常用的PSP,设计过程严格按其执行。
有没有硬编码或字符串/数字等存在?
没有。
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)?
不依赖于某一平台,不影响将来的移植。
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
部分代码可以用已有的Library/SDK/Framework中的功能实现,在本项目中存在类似的功能可以调用而不用全部重新实现。
代码规范部分
修改的部分符合代码标准和风格么?
大致上符合,在修改代码的过程中大致按照代码标准和风格修改。
具体代码部分
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
在审查过程中,对错误代码进行了处理,对于调用的异常函数,也对其进行了调试。
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
参数传递没有错误,但是缺少了字符错误的检查。
数据结构中有没有用不到的元素?
数据结构中没有用不到的元素。
效能
代码的效能(Performance)如何?最坏的情况是怎样的?
代码实现了少部分的功能,但是实现部分效能良好。
代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中string的操作是否能用String Builder来优化)?
在审查中,发现了循环里可优化的部分并将其进行了优化。
对于系统和网络的调用是否会超时?如何处理?
在实验过程中未出现超时情况。
可读性
代码可读性如何?有没有足够的注释?
代码可读性良好,注释有点不足。
可测试性
代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。
在今后的学习过程中,需要继续实现未实现的功能,补充代码。
(2)我运行的是陈啟程同学和王诗怡同学的小组项目的代码,找到的bug如下:
a.界面有问题,数据到要求的最大的数量极时有错误。
b.参数缺少异常处理,文件输入字符错误无法处理。
c.参数传递有点问题:具体表现在数据库中。
d.散点图数据处理到要求的最大的数量极时出现异常。
e.遗传算法数量级到要求的最大的数量极时出现异常
3.阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
(1) 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片:
软件功能实现良好,使用简单方便,GUI界面有点简陋。
(2)总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?
对该软件产品功能有什么改进意见?
-
任务3要求的功能软件已经解决;
-
软件在数据量/界面/功能上各有什么优缺点?
界面友好,但是比较简陋,希望可以改善一下;数据的处理较为准确;软件产品功能基本实现,希望添加一些附加功能。
-
对该软件产品功能有什么改进意见?
该软件产品功能实现较为全面,GUI界面较为简洁,我觉得可以对界面进行提升!
(3)从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
任务3所研发软件产品的典型用户群大多数为学生,因为任务3是对D{0-1}KP问题的解决,对于学生而言,需要对这些经典问题进行研究,对其算法进行了解,任务3的完成可以为这些用户提供极大的便利。
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: (a) 非常不推荐 (b) 不推荐 (c) 一般 (d) 好,不错 (e) 非常推荐
d:好,不错
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
本小组任务3的GitHub项目仓库链接、项目迭代改进要点说明、项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况
-
Fork
- 点击原作者仓库GitHub右上角的fork按钮,就会在你自己的GitHub中新建一个同名仓库
-
Clone
-
进入自己的页面,打开原作者的同名仓库
-
clone fork仓库到本地
-
打开git bush here
-
-
本地库与原始库关联
-
进入我们的项目文件夹: https://github.com/chenpiawu/boki
-
添加与原始库的关联,命名为upstream,此地址是原项目开发者的项目主页上的clone的地址:这是专门用来与主开发者保持相同进度的方法。
-
从原始库中抓取最新的更新。
-
-
Push
-
添加文件
-
git commit -a -m"提交信息"
-
git push https://github.com/chang1010/Test
-
任务2:团队组建
- 在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
- 申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;
- 阅读《现代软件工程—构建之法》第5章内容
(1)队名:泰山
(2)成员组成:
个人博客 | PM | ||
个人博客 | 文档 | ||
个人博客 | 开发 | ||
个人博客 | 测试 |
(3)成员风采:
-
成员介绍
姓名 风格 擅长技术及编程兴趣 承担的软工角色 谢金鑫 善于言谈、管理、汇报 擅长C,python PM 郑文潇 技术担当,能力突出 擅长C,python 开发 余宝鹏 善于编写文档,PPT制作 擅长C,python 文档 常祺 能力突出,性格低调 擅长C,Java,Java ee 测试 -
MSF的9点基本原则和团队成员绩效
MSF(Microsoft Solution Framework):微软解决方案框架,也就是微软推荐的软件开发方法。
-
9点基本原则
- 推动信息共享与沟通(Foster open communications)
- 为共同的远景而工作(Work toward a shared vision)
- 充分授权和信任(Empower team members)
- 各司其职,为项目共同负责(Establish clear accountability and shared responsibility)
- 交付增量的价值(Deliver incremental value)
- 保持敏捷,预期和适应变化(Stay agile,expect and adapt change)
- 投资质量(Invest in quality)
- 学习所有的经验(Learn from all experiences)
- 与顾客合作(Partner with internal and external customers)
-
团队成员绩效
在MSF团队模型中,任何技术项目都必须达到特定的关键质量目标,才能够被认为是成功的项目。任何一个角色无法实现其目标,都将危机整个项目。因此,每个角色都被认为是同等重要的,重要的决定都要共同做出。
-
(4)组建团队企业微信群,给出群成员截图
(5)团队特色描述,言简意赅的描述团队特点或核心竞争力
- 我们团队最大的特色就是:只有男生!!!所以在整个团队项目过程中,都需要更加细心;
- 团队内部成员互相都熟悉,气氛相处融洽,每个人都尽力而为;
- 在每个人的特长基础上进行明确的分工,在分工明确的基础上互相帮助。
补充
记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间;
PSP | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 15 | 13 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 15 | 13 |
Development | 开发 | 110 | 130 |
Analysis | 需求分析(包括学习新技术) | 10 | 10 |
Design Spec | 生成设计文档 | 10 | 10 |
Design Review | 设计复审(和同事审核设计文档) | 10 | 15 |
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 10 | 10 |
Design | 具体设计 | 10 | 15 |
Coding | 具体编码 | 20 | 30 |
Code Review | 代码复审 | 20 | 15 |
Test | 测试(自我测试,修改代码,提交修改) | 20 | 20 |
Reporting | 报告 | 35 | 45 |
Test Report | 测试报告 | 15 | 15 |
Size Measurement | 计算工作量 | 8 | 10 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 12 | 20 |