201771010143-张云飞 实验四 软件项目案例分析

任务1:实验三优秀案例推荐:王艳&王玉兰

案例作业博客链接:https://www.cnblogs.com/JAVA-729/p/12554359.html
案例作业项目仓库链接:https://github.com/JAVAWY/MyDemo
在实验三得分100分以上作业中,任选一份作为案例,对案例项目成果进行评价,具体要求如下:

(1)对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。

(2)克隆案例项目源码到本地机器,阅读项目代码规范文档并运行代码,总结代码运行中存在的问题,体会案例博文是否有助于项目代码理解。

克隆代码:

运行界面:

填报信息:

信息进入数据库:

数据可视化:

导出数据:

定时提醒:

(3)总结本组实验三博客作业及代码设计存在问题与不足,列举代码中存在的bug,未实现的功能等等。

实验三博客作业:作业内容完善,未发现不足。

代码设计存在问题与不足:GUI界面不够漂亮。

代码中存在的bug:未发现。

未实现的功能:提醒功能不能设定好指定时间提醒,需要运行程序才能进行提醒;只能按学院和学号查询,查询功能不够完善。

任务2:与实验三结对伙伴协作学习:阅读《现代软件工程—构建之法》第5-6章内容,理解并掌握软件项目团队的特点、了解软件团队的模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则。、

软件团队的模式包括以下几种:

`
(1)主治医师模式:一人为主,其他人为此人服务。

(2)明星模式:主治医师模式到达极致,一人的光芒掩盖所有人。

(3)社区模式:每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。

(4)业余剧团模式:在不同项目中每个人扮演着不同的角色,可能随着项目的改变,自己的角色也会发生变化。

(5)秘密团队模式:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。

(6)特工团队模式:有一些有特殊技能的专业人士组成的团队。

(7)交响乐团模式:人员工具齐全,准备充足的团队。

(8)爵士乐模式:相对自由,有风险,人少且不靠谱。

(9)功能团队模式:具备不同能力的同事们平等协作,共同完成一个功能。

(10)官僚模式:层层领导的团队模式。

`

团队的开发模式包括以下几种:

`
(1)写了再改模式:和一窝蜂团队模式比较像。

(2)瀑布模型及其各种变形。

(3)RUP统一流程。

(4)老板驱动的流程。

(5)渐进交付的流程。

(6)TSP的原则。
`

TSP原则

(1)使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的;
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解;
(3)尽量使用成熟的技术和做法;
(4)尽量多的收集数据(包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来);
(6)增加团队的自我管理能力;
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面细而细致的设计工作(而不是在后期匆忙修复问题)。

  敏捷过程的适用范围 软件需求经常变化或者需求变化比较大; 项目团队与用户之间进行沟通比较容易; 项目的开发风险比较高; 规模比较小; 项目团队的成员能力比较强,而且具有责任感; 项目的可测试性比较好。

讨论截图:

任务三:在班级博客园,有很多高校的软件工程课程要求同学们完成团队项目,请与实验三结对伙伴协商,在以下三个班级中选择一个高质量的团队项目案例进行协作学习,要求追踪该团队项目发布所有博客作业,下载项目软件代码。

  1. 2016级计算机科学与工程学院软件工程 (西北师范大学)

  2. 2019秋福大软件工程实践Z班 (福州大学)

  3. 2019春季计算机学院软件工程 (北京航空航天大学)

(1)团队项目作业发布账号链接:https://www.cnblogs.com/PureMan6
(2)团队项目仓库github链接:https://github.com/swearitagain/EduCnblogs2.0
(3)陈述你选择该团队项目进行分析的理由:
  这个团队的创意是让用户可以在手机app上直接使用博客园的一些功能,在原有的APP上面进行一部分功能的拓展。这与我们的软件工程学习方式不谋而合,在查询作业等方面很方便,很适合追踪。而且我对Android开发的东西都很感兴趣。

(4)结合项目系列博客文档,总结项目团队成员的分工合作情况:
团队成员贡献分分配规则

人员分工细则

邵旭哲:PM,主要负责所有博客撰写;

蒋锋,陈治齐,胡俊崧:开发人员;

吴枫:测试人员;

吴昊:开发(任务没有其他开发人员那么多),负责开会。

团队总则

开会时,每位成员需要如实汇报自己的工作进度,虚报会造成团队进度不协调;

每位成员需要将自己每天的工作以及遇到的问题等记录并提交issue,并上传给pm;

出现exception时需要在群内通知所有成员;

贡献分的记录需要公开,所有人有权利提出异议。

开发人员准则

开发人员需要保证将自己实现功能进行覆盖测试,在进行一定量的test之后再交付测试人员;

开发人员需要将自己遇到的开发困难详细描述给PM,方便文档撰写;

开发人员需要保证彼此的沟通,防止其中一人进度滞后。

测试人员准则

测试人员需要保证测试的全面性,产品发布后出现过多错误会有一定的惩罚;

测试人员需要对开发人员实现的功能有一定的了解;

测试人员需要将自己检测到的问题发布issue并上传给pm。

PM准则

   1.需要保证文档的即时性,如果一段时间工作量太大,可以找协助人员分担。

  所有成员基础分数为50分,根据分配到的工作量进行调整基础分,最终统计分数时以300分为满分进行分数调整。

  分工明确合理,自我管理能力强,值得学习。

(5)结合项目系列博客文档,评价项目的软件项目过程特点(TSP)
(1)使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的;(基本做到)
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解;(做到)
(3)尽量使用成熟的技术和做法;(没做到,还有很多不合理不完善的地方)
(4)尽量多的收集数据(包括对团队不利的数据),并用数据来帮助团队做出理性的决定;(基本做到)
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来);(做到)
(6)增加团队的自我管理能力;(做到)
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面细而细致的设计工作(而不是在后期匆忙修复问题)。(没有做到,质量不够高,计划后期修复)

(6)观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?
没有包含代码规范文档

(7)下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图
使用体验:
    我认为该团队项目的选题还是比较新颖,并且各个界面和功能都实现的不错,这个软件应有的功能都有,并且最后的意见反馈功能是我认为最好的,整的来说挺不错的。

功能性bug:

(1)投票功能尚不完善:投票功能目前只能获取投票信息和展示投票详情,不能参与投票;

(2)记住密码功能没有实现,每次退出都得重新输入密码。

8.评价该团队项目是否值得继续开发,并陈述理由:

我认为该团队项目的选题还是可以的,附和一些在博客园学习的同学的需求,如果能够继续完善,是值得继续开发的。

任务四、记录完成《实验四 软件项目案例分析》各项任务实际花费的时间:
|任务| 花费时间(min)|
|任务一| 120|
|任务二| 400|
|任务三 |420|
|任务四 |100|
五、请谈谈完成本次作业的感受和体会。

猜你喜欢

转载自www.cnblogs.com/fairber/p/12677683.html