201771010118-马昕璐 实验四 软件项目案例分析
项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
作业要求 | https://www.cnblogs.com/nwnu-daizh/p/12616341.html |
课程学习目标 | (1)学习团队软件项目流程(TSP)、团队成员协作要求。(2)掌握敏捷流程原则及相关概念。 |
这个作业在哪些方面帮助我实现学习目标 | 学习并理解了团队软件项目流程,敏捷流程原则和概念 |
结对方学号-姓名 | 201771010121-唐月晨 |
结对方本次博客作业链接 | https://www.cnblogs.com/tangyuechen/p/12656236.html |
任务一:在实验三得分100分以上作业中,任选一份作为案例,对案例项目成果进行评价。
王艳&王玉兰组
- 案例作业博客链接:https://www.cnblogs.com/JAVA-729/p/12554359.html
- 案例作业项目仓库链接:https://github.com/JAVAWY/MyDemo
(1)对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。两人的博文结构基本都一致,上次作业的评分也都一样,因此选了其中一篇博文进行评论
(2)克隆案例项目源码到本地机器,阅读项目代码规范文档并运行代码,总结代码运行中存在的问题,体会案例博文是否有助于项目代码理解。 - 下载源码到本地机器
- 运行程序
- 主界面
- 疫情信息填报
- 已录入到数据库:
- 各二级部门浏览本部门人员情况
学生信息查询
计算机学院
- 查询某人信息
- 修改信息
- 查看目前统计情况
填报信息统计
感染信息统计
- 数据导出到excel中
- 通过QQ邮箱发送信息提醒进行填报
- 主界面
功能总结:软件总体上实现了要求的各种功能,其中包括账号登录时分为正常用户和二级管理人员登录。学生登录后只需完成疫情填报,二级管理界面可以完成对信息的增删改查和柱状图显示,同时也完成了附加功能的填报提醒功能。
(3)总结本组实验三博客作业及代码设计存在问题与不足,列举代码中存在的bug,未实现的功能等等。
- 实验三博客作业:作业内容中未发现不足,符合作业要求。
- 代码设计存在问题与不足:GUI界面有点乱,二级管理部门进行高级查询时需要使用sql语言进行查找,略显麻烦。
- 数据库在信息录入中设置是否允许空置值方面存在bug,应该强制性确定填报内容不能为空。
- 填报提醒功能需要运行代码才能运行,没有定时提醒。
任务二:与实验三结对伙伴协作学习:阅读《现代软件工程—构建之法》第5-6章内容,理解并掌握软件项目团队的特点、了解软件团队的模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则。
-
5.1 团队特点:目标一致,各自分工
-
5.2 团队模式:一窝蜂模式,主治医师模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐团模式,爵士乐模式,功能团队模式,官僚模式。
-
5.3 开发流程:写了再改模式,瀑布模型,瀑布模型的变形(生鱼片模型,子瀑布模型),RUP统一流程,老板驱动的流程,渐进交付的流程(包括MVP和MBP)
TSP原则
(1)使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的;
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解;
(3)尽量使用成熟的技术和做法;
(4)尽量多的收集数据(包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来);
(6)增加团队的自我管理能力;
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面细而细致的设计工作(而不是在后期匆忙修复问题)。 -
6.1 敏捷开发的原则和步骤
(1). 尽早并持续地交付有价值的软件以满足顾客需求;
(2). 敏捷流程欢迎需求的变化, 并利用这种变化来提高用户的竞争优势;
(3). 经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;
(4). 业务人员和开发人员在项目开发过程中应该每天共同工作;
(5). 以有进取心的人为项目核心,充分支持信任他们;
(6). 无论团队内外,面对面的交流始终是最有效的沟通方式;
(7). 可用的软件是衡量项目进展的主要指标;
(8). 敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去;
(9). 只有不断关注技术和设计,才能越来越敏捷;
(10). 保持简明——尽可能简化工作量的技艺——极为重要;
(11). 只有能自我管理的团队才能创造优秀的架构、需求和设计;
(12). 时时总结如何提高团队效率,并付诸行动。 -
6.2 敏捷流程的问题和解法
-
6.3 敏捷的团队。要求:自主管理,自我组织,多功能型。
-
6.4 敏捷总结。包括一些实践者的经验教训
-
6.5 关于敏捷的问答
与结对同伴的讨论截图
任务三:在班级博客园,有很多高校的软件工程课程要求同学们完成团队项目,请与实验三结对伙伴协商,在以下三个班级中选择一个高质量的团队项目案例进行协作学习,要求追踪该团队项目发布所有博客作业,下载项目软件代码。
-
团队项目作业发布账号链接
https://www.cnblogs.com/happiers/p/11088282.html -
团队项目仓库github链接
https://github.com/jessiyx/sethotchair -
陈述你选择该团队项目进行分析的理由
首先这个团队的项目最后是以小程序的样式呈现给大家的,这个样式很有意思,所以我就决定了选择这个团队项目进行研究。并且这个组的每周汇报的博文都排版很有顺序而且写的很清楚,基本上大家都是可以看懂的,没有很晦涩难理解的东西。 -
结合项目系列博客文档,总结项目团队成员的分工合作情况
在这个项目团队中有4名成员:朱艺璇,王潇,达星斗,刘振华。队名叫做坐热板凳组- 朱艺璇领导团队并安排分工合作,团队项目中承担PM项目管理以及开发,还有团队合作分工工作。
- 王潇在团队项目中承担项目开发工作。
- 达星斗在团队中主要担任文档以及测试的工作。
- 刘振华在团队中主要担任写文档以及测试的工作。
-
结合项目系列博客文档,评价项目的软件项目过程特点(TSP)
- 起始阶段:在前两次的团队作业中可以看出该组完成了组队的任务,并且通过项目可行性自评,在需求、方法、好处、竞争、推广五方面完成了团队项目选题,并且得出项目在经济,操作,技术三方面都可行。
- 细化阶段:在三到五次团队作业中明确了原型设计工具,其中包括墨刀、Axure RP、Axure 、sketch、mockplus、Justinmind 、balsamiq mockups,学习了mockplus原型设计工具的各种操作,并且做出了团队项目原型设计成果。做出了团队项目需求分析,通过问卷调查的方式对真实的用户做了需求分析调研,并得到了许多意见和建议,做出了详细的需求分析文档。
- 构建阶段从第六次团队作业开始,明确了各自的任务后编写了详细的项目设计书,完成的大致的项目框架。完成了《软件设计方案说明书》和《软件编码规范说明书》。之后在Alpha冲刺阶段和Beta冲刺阶段通过团队协作在代码方面不断的完善,调试其功能,并且准备课程答辩内容。
-
观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?
该团队项目github仓库的源代码文件结构包含代码规范文档 -
下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图
- 小程序运行界面
- 设置预算功能
- 记账功能
- 查看历史记录
- 小程序运行界面
存在bug:
1.安全性上存在隐患。没有设置密码登录使信息存在泄露隐患
2.备份至邮箱功能未实现
3.偶尔进入记账模块后支出类型存在不识别bug
- 评价该团队项目是否值得继续开发,并陈述理由?
总体来说该团队项目还是很值得开发的,因为大家在生活中都有记账这方面的需求,虽然市场上这种小程序、app都很多,但是我觉得如果能独辟蹊径做出来一些特有的功能的话,这个项目还是很有开发价值并且很受欢迎的。
任务四:完成《实验四 软件项目案例分析》博文作业
完成《实验四 软件项目案例分析》各项任务实际花费的时间
项目 | 内容 |
---|---|
任务1 | 120min |
任务2 | 120min |
任务3 | 180min |
任务4 | 210min |
总结反思
通过这一次的实验,我在运行别人代码的同时提高了阅读代码和测试系统的能力,同时也通过案例学习了团队软件项目流程的各个步骤和要进行的工作内容,学习了很多技巧和方式方法,更加熟悉团队项目开发流程,团队成员之间的分工协作方式,这为今后团队项目的开发积累了很多经验,可以在之后自己的团队项目中可以更加得心应手。