201871030134-余宝鹏 实验四 团队作业1:软件研发团队组建
课程班级博客链接 | 班级博客 |
这个作业要求链接 | 作业要求 |
团队名称 | 泰山 |
团队的课程学习目标 | 1、通过团队项目学习软件工程 2、通过团队项目对软件开发有更深的认识 3、通过团队项目学习GitHub的一些团队操作 4、通过团队项目体会团队合作的优势 |
这个作业在哪些方面帮助团队实现学习目标 | 1、通过建立团队使团队成员都有参与感 2、通过软件开发提高编程能力 3、通过提交团队项目到GitHub学习其一些操作 4、通过团队合作学习对软件工程课程有更深的认识 |
团队博客链接 | 团队博客 |
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
-
被评论作业的博客链接
-
被评论作业的GitHub项目仓库链接
-
符合(1)要求的博客评论
-
克隆任务3项目源码到本地机器以及符合(2)要求的代码核查表
克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
-
克隆过程(参考这篇博客)
-
进入原作者的仓库
-
点击clone,复制链接
-
在Git Bush Here下输入git clone 原作者的链接
-
-
符合(2)要求的代码核查表
-
概要部分
-
代码符合需求和规格说明么?
代码符合部分需求,部分功能未能实现;缺少代码规格说明。
-
代码设计是否考虑周全?
设计过程中实现了部分功能,考虑周全但是未能全部实现其需求。
-
代码可读性如何?
代码可读性良好,注释较为充分。
-
代码容易维护么?
代码容易维护,实现代码比较简单,维护较为便利。
-
代码的每一行都执行并检查过了吗?
代码的每一行进行了检查并且顺利执行。
-
-
设计规范部分
-
设计是否遵从已知的设计模式或项目中常用的模式?
设计遵从软件项目中常用的PSP,设计过程严格按其执行。
-
有没有硬编码或字符串/数字等存在?
没有。
-
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)?
不依赖于某一平台,不影响将来的移植。
-
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
部分代码可以用已有的Library/SDK/Framework中的功能实现,在本项目中存在类似的功能可以调用而不用全部重新实现。
-
-
代码规范部分
-
修改的部分符合代码标准和风格么?
符合,在修改代码的过程中严格按照代码标准和风格修改。
-
-
具体代码部分
-
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?
在审查过程中,对错误代码进行了处理,对于调用的异常函数,也对其进行了调试。
-
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?
参数传递没有错误。
-
数据结构中有没有用不到的元素?
数据结构中没有用不到的元素。
-
-
效能
-
代码的效能(Performance)如何?最坏的情况是怎样的?
代码实现了少部分的功能,但是实现部分效能良好。
-
代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中string的操作是否能用String Builder来优化)?
在审查中,发现了循环里可优化的部分并将其进行了优化。
-
对于系统和网络的调用是否会超时?如何处理?
在实验过程中未出现超时情况。
-
-
可读性
-
代码可读性如何?有没有足够的注释?
代码可读性良好,注释较为充分。
-
-
可测试性
-
代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。
在今后的学习过程中,需要继续实现未实现的功能,补充代码。
-
-
-
-
符合(3)要求总结:A、B、C
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
-
A:软件功能实现良好,使用简单方便,GUI界面友好。
-
B:
-
任务3要求的功能软件已经解决;
-
软件在数据量/界面/功能上各有什么优缺点?
界面友好,但是比较简陋,希望在今后的过程中可以提升一下;数据的处理较为准确;软件产品功能基本实现,希望添加一些附加功能。
-
对该软件产品功能有什么改进意见?
该软件产品功能实现较为全面,Web界面较为简洁,我觉得可以对界面进行提升!
-
-
C:任务3所研发软件产品的典型用户群是计算机行业的用户,大多数为学生,因为任务3是对D{0-1}KP问题的解决,对于学生而言,需要对这些经典问题进行研究,对其算法进行了解,任务3的完成可以为这些用户提供极大的便利。
-
-
符合(4)要求结论
e:非常推荐
-
本小组任务3的GitHub项目仓库链接、项目迭代改进要点说明、项目仓库的Fork、Clone、Push、Pull request、Merge pull request数据变化情况(参考这篇博客)
-
Fork
- 点击原作者仓库GitHub右上角的fork按钮,就会在你自己的GitHub中新建一个同名仓库
- 点击原作者仓库GitHub右上角的fork按钮,就会在你自己的GitHub中新建一个同名仓库
-
Clone
-
进入自己的页面,打开原作者的同名仓库
-
clone fork仓库到本地
-
打开git bush here
-
-
本地库与原始库关联
-
进入我们的项目文件夹: cd Experiment3_TwoPersonProgect
-
添加与原始库的关联,命名为upstream,此地址是原项目开发者的项目主页上的clone的地址:这是专门用来与主开发者保持相同进度的方法
-
从原始库中抓取最新的更新
-
-
Push
-
添加文件
-
git commit -a -m"提交信息"
-
git push https://github.com/Y7-ybp/Experiment3_TwoPersonProgect.git
-
-
任务2:团队组建
- 在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
- 申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;
- 阅读《现代软件工程—构建之法》第5章内容
-
团队建设
-
队名:泰山
-
宣言:黄河源头水,泰山顶上松,心中有信念,一定能成功
-
团队成员组成
成员学号末五位 成员*名 个人博客地址 备注 10127 *金鑫 https://www.cnblogs.com/xiejinxin/ PM 30134 *宝鹏 https://www.cnblogs.com/ybp7/ 文档 10129 *文潇 https://www.cnblogs.com/zwx7968/ 开发 30104 *祺 https://www.cnblogs.com/changqi1010/ 测试 -
团队成员风采
-
成员介绍
姓名 风格 擅长技术及编程兴趣 承担的软工角色 谢金鑫 善于言谈、管理、汇报 擅长C,python PM 郑文潇 技术担当,能力突出 擅长C,python 开发 余宝鹏 善于编写文档,PPT制作 擅长C,python 文档 常祺 能力突出,性格低调 擅长C,Java,Javaee 测试 -
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团队模型中,任何技术项目都必须达到特定的关键质量目标,才能够被认为是成功的项目。任何一个角色无法实现其目标,都将危机整个项目。因此,每个角色都被认为是同等重要的,重要的决定都要共同做出。
-
-
-
团队企业微信群
-
-
团队特色描述
- 我们团队最大的特色就是:只有男生!!!所以在整个团队项目过程中,都需要更加细心;
- 团队内部成员互相都熟悉,气氛相处融洽,每个人都尽力而为;
- 在每个人的特长基础上进行明确的分工,在分工明确的基础上互相帮助。
任务3:完成《实验四 团队作业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 |