201871010123-吴丽丽 实验四 团队作业1:软件研发团队组建--个人博客
201871010123-吴丽丽 实验四 团队作业1:软件研发团队组建--个人博客
项目 | 内容 |
---|---|
课程班级博客链接 | 班级链接 |
这个作业要求链接 | 作业要求链接 |
团队名称 | upower团队 |
团队的课程学习目标 | 1.组建软件团队,了解团队是如何进行运行、工作的 2. 提升自身能力,为团队贡献自身力量 |
这个作业在哪些方面帮助团队实现学习目标 | 1.通过阅读《构建之法》这本书来让我了解了什么是团队,团队应该如何进行开展工作 2.通过阅读完成质量较高的项目小组的代码,了解其思想,进行代码复审,进而提高自身能力 |
团队博客链接 | 团队博客 |
一、实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
二、实验内容与步骤
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
项目 | 内容 |
---|---|
被评论作业的博客链接 | https://www.cnblogs.com/1763088787h/p/14656485.html |
被评论作业的Github项目仓库链接 | https://github.com/budinge/Exercise-homework1.git |
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。 |
- 完成情况:已完成评论,评论内容截图如下:
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
-
情况说明:不知道是网络的原因还是什么,经常进不去那个github仓库,如图所示:,后点击代码下载,进行下载,发现其文件里没有相应的代码,可能是其未上传成功,后通过寻找那位同学,让其发送其对应的文件过来,才可进行阅读并运行代码
-
找出来的bug
- 绘制散点图更新不及时,有浏览器缓存
- 回溯算法求解过程太长,用户体验不是很友好
- 没有算法测评报错信息,用户提交成功后需要长时间等待
- 在无工作人员的介绍下,用户不能轻松的运行其该项目
- 算法求解时间过长,时间复杂度高
代码复审的核查表如下:
复审部分 | 复审情况说明 |
---|---|
1.概要部分 | (1)代码基本符合要求 (2)代码设计虽然已经实现了一些功能,但是考虑不够周全,其未将用户的一些需求考虑进去,如能够嵌入其他算法,其相对应的遗传算法未能实现 (3)其交互性不是很好,算法运行时间长 (4)代码可读性较好 |
2.设计规范部分 | (1) 设计遵从项目中常用的模式MVVC (2)无硬编码存在 (3)代码依赖于浏览器页面用的PHP,服务器端是PYthon |
3.代码规范部分 | 修改的部分符合代码风格和规范 |
4.具体代码部分 | (1)对错误没有进行一些处理 (2)参数传递无错误,字符串的长度是以0开始计数 (3) 未看到其对边界条件进行处理 (4)没有使用断言 |
5.效能 | (1)代码的一些效能还行,就是算法运行时间长 (2) 没有对算法进行优化 |
6.可读性 | (1)代码的可读性还行,易读,能够让让知道函数的功能(2)注释有点少,不易于非专业人士进行解读 |
7.可测试性 | 针对数据库的开发没有整理专门的核查表 |
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
- 在软件体检过程中,后端需要安装的Python库有flash,以及flask需要的MYSQLdb,还有画图的Matplotlib等,需要部署相应的环境才可以将软件运行起来,在使用过程中发现其用回溯算法求解时间太长,没有算法测评报错信息,绘制散点图更新不及时等等,其运行结果未能以.txt或者.excel文件来呈现。
- 使用软件的照片如下:
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
答:任务3要求的功能软件基本实现了,其遗传算法没能够进行实现,软件在界面上设置得通俗易懂,易于用户使用,就是利用算法来进行求解背包问题时时间过长,用户需等待,我觉得可以对回溯算法进行适当的优化,减少时间复杂度,减少用户的等待时间。
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
答:经过我自身使用,发现其有点麻烦,不利于用户体验,所以我给的结论是c).
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
任务2:团队组建
1.在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
- 已根据小组情况,决定与石欣钰、马北这一小组来一起组建软件项目研发团队
2.申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;(3分)
- 已申请开通团队博客,提交团队信息,其相关信息见团队博客作业
3.阅读《现代软件工程—构建之法》第5章内容
第5章内容主要介绍:团队和流程
a.软件项目团队的特点
(1)团队有一致的集体目标
(2)团队成员各自又自己的分工,互相依赖合作,共同完成任务
b.软件团队的模式
(1)一窝蜂模式:最初的一窝蜂形式的软件团队模式,经过一段时间的演变将转变为其他模式;
(2)主治医师模式:首席程序员负责主要模块的设计与编码,其他成员从不同角度提供支持;
(3)明星模式:主治医师模式运用的极点,团队“明星”的能力掩盖了团队所有人的缺陷与优点;
(4)社区模式:成员分布不受时间空间的限制,所有人根据喜好选择项目进行开发,一般不要求报酬;
(5)业余剧团模式:没有固定的团队,且成员在不同的项目中没有固定的工作分配,所有成员由“中央指挥”指示;
(6)秘密团队:秘密状态下进行,无外界干扰,团队肩负独特使命,内部成员自由度与热情较高;
(7)特工团队:团队由专业人士组成,负责一些紧急问题的解决;
(8)交响乐团模式:较多大型软件公司采用,成员与领导者能力较强且有相似的项目开发经验,所有成员各司其职但统一受领导者指挥;
(9)爵士乐模式:与交响乐团模式对立,较为松散,领导者完成框架,其他成员在此基础上创作,最后再由领导者收尾;
(10)功能团队模式:没有固定的团队,由不同能力的成员进行组合,协作完成某一项目,项目完成后成员重新组织进行其它不同项目;
(11)官僚模式:脱胎于大机构的组织架构,几人向小头目报告,小头目向大头目报告。容易形成恶性竞争。
c.瀑布模型及其变形
瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。
瀑布模型的变形有生鱼片模型和大瀑布带着小瀑布。
d.渐进交付流程
迭代式开发流程,当系统的主要需求和架构明确之后,软件团队进入了一个不断演进的循环中:
开发——>发布——>听取反馈——>根据反馈做改进
e.TSP原则:
(1)使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解;
(3)尽量使用成熟的技术和做法;
(4)尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来);
(6)增加团队的自我管理能力;
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
团队相关介绍见团队博客作业
阅读《现代软件工程—构建之法》第7章、第17章,理解MSF的9点基本原则和团队成员绩效
第7章的主要内容有:
1.MSF的九点基本原则:
2.介绍了MSF团队模型、MSF的过程模型还有实战中的软件工程
第17章的主要内容有:
1.领导力的要素:
a.设定目标
b.知人善任
c.带领团队成长
d.绩效管理
2.绩效管理的几种方法
3.介绍了RASCI模型
4.团队成长的几个阶段:萌芽阶段、磨合阶段、规范阶段和创造阶段,还介绍了团队解决分歧的方法
5.IEEE软件工程师的道德规范
记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间;(5分)
| 任务 | 完成时间(h) |
| ---- | ---- | ---- |
| 任务1 | 3 |
| 任务2 | 5 |
|任务3 | 0.5 |
谈谈完成本次作业的感受和体会。
- 在本次作业中,我选择了一组完成质量较高的小组项目成果进行测试、复审,虽然他们没能将全部功能实现,还存在一些bug,但是相对于我们小组来说,他们已经完成得挺好的了,我们应该要向他们看齐,向他们学习。在阅读《构建之法》这本书时,我从中学会了挺多,了解到了什么是团队和非团队、TSP原则,以及绩效管理等各种关于团队的内容。在本次组建团队的时候,我们根据各自的特点来进行了组建,组建团队的时候我发现要想组建一个好的团队是不容易的,这需要下一定的功夫,我们要对每个团队成员都有一定的了解,每位成员都有各自的特色,通过组建团队,也让我从中更进一步的了解了自己的能力,也从中了解了自己还存在着许多不足之处,以后自己一定会多加注意的。