项目 | 内容 |
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求的链接 | https://www.cnblogs.com/nwnu-daizh/p/12616341.html |
我的课程学习目标 | 学习团队软件项目流程,掌握敏捷流程原则及相关概念 |
这个作业在哪些方面帮助我实现学习目标 | 通过任务三学习软件项目流程,以及别的任务学习敏捷流程原则及相关概念 |
结对方学号-姓名 | 201771030121-王国伟 |
结对方本次博客作业链接 | https://www.cnblogs.com/wangguow/p/12677001.html |
任务一:选择的优秀案例: 祁甜&王爽
博客链接:https://www.cnblogs.com/viqt/p/12588543.html
https://www.cnblogs.com/JZYWS/p/12571927.html
仓库链接:https://github.com/Gu19901212/Partner
1.对案例博文作业进行阅读并且进行评论:
2.系统运行截图、软件功能总结以及案例代码存在的bug:
克隆项目:
系统运行截图:
软件功能总结:系统功能基本都实现了,但是附加功能没有实现。
案例代码存在的bug:不清楚编码类型,中文全是乱码
3.总结实验三博客作业以及代码设计存在的问题与不足,列举代码中存在的bug,未实现的功能:
实验三博客的作业在博文方面完成的不好博文写的时间有点赶,系统很好但是在博文描述中没有描述的够好。还有短信提醒的附加功能,只找到了能发7条短信的,其实应该考虑QQ邮箱或者微信提醒等功能。未实现功能:web页面中的数据可视化。
任务二:阅读《现代软件工程-构建之法》第5-6章的内容:
软件项目团队特点:
1.软件项目团队有各种形式,分别适用于不同的人员和需求;
2.基于直觉形成的团队模式未必是最合适的;
3.随着团队的成熟和环境的变化,团队模式会相互演化。
软件项目的模式:
1.主治医师模式:就像在手术台上那样,有一个主刀医师,其他人(麻醉,护士,器械)各司其职,为主刀医师服务。
2.明星模式:主治医师模式运用到极点,可以蜕化为明星模式,在这里,明星的光芒盖过了团队其他人的总和。
3.社区模式 :社区由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。
4.业余剧团模式 :这样的团队在每一-个项目 (剧目)中,不同的人会挑选不同的角色。
5.秘密团队 :一些软件项 目在秘密状态下进行,别人不知道他们具体在做什么。
6. 特工团队:就像电影电视中的特工组“加里森敢死队”等- -样, 软件行业的一些团队由一些有特殊技能的专业人士组成,负责解决一些棘手而有紧迫性的问题。
7.交响乐团模式 :交响乐团的演奏有下面的特点:家伙多,门类齐全。各司其职,各自有专门场地,演奏期间没有聊天、走动等现象。
8.爵土乐模式:强调个性化的表达,强有力的互动,对变化的内容给予有创意的回应。
9.功能团队模式 :很多软件公司的团队最后都演变成功能团队,简而言之,就是具备不同能力的同事们平等协作,共同完成一个功能。
10.官僚模式:这种模式脱胎于大机构的组织架构,几个人报告给一个小头目,几个小头目报告给中头目,依次而上。
瀑布模型及其变形:瀑布模型描述了单向的,不可逆的生产过程。温斯顿指出用户的介入,讨论,复审以及模型下文档的重要性。
渐进交付流程:接近迭代式开发流程,当系统的主要需求和框架明确后,软件团队进入不断演进的循环;
敏捷开发流程:
原则:
1.尽早并持续地 交付有价值的软件以满足顾客需求
2.敏捷流程 欢迎需求的变化,并利用这种变化来提高用户的竞争优势
3.经常发布可用的软件,发布间隔可以从几周到几个月,能短则短
4.业务人员和开发人员在项目开发过程中应该每天共同工作
5.以有进取心的人为项目核心,充分支持信任他们
6.无论团队内外,面对面的交流始终是最有效的沟通方式
7.可用的软件是衡量项目进展的主要指标
8.敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去
9. 只有不断关注技术和设计,才能越来越敏捷
10.保持简明一尽 可能简化工作量的技艺一极 为重要
11.只有能自我管理的团队才能创造优秀的架构、需求和设计
12.时时总结如何提高团队效率,并付诸行动
敏捷流程图:
TSP原则:
1. 使用妥善定义的流程,流程中的每一 步都是可以重复、可以衡量结果的。
2.团队的各个成员对团队的目标、角色、产品都有统一的理解。
3. 尽量使用成熟的技术和做法。
4.尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
5. 制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来)。
6.增加团队的自我管理能力。
7.专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计:工作(而不是在后期匆忙修复问题)。
与小伙伴讨论的截图:
任务三:选择高质量的团队项目案例协作学习,追踪该团队项目发布所有博客作业:
团队项目作业发布账号链接:https://www.cnblogs.com/snxfd/p/11056453.html
团队项目仓库github链接:https://github.com/snxfd123/designfile
选择该团队项目进行分析的理由:该项目的博客内容比较吸引我,内容比较丰富,结构清晰,博文主页也比较漂亮。
总结项目团队成员的分工合作情况:分工比较合理,很平均,完成的也很快。
评价项目的软件项目过程特点(TSP):制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来)。使用了较为成熟的技术和做法。
观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?是!
下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图
下载团队项目代码:
部署项目运行环境并使用软件:
使用体验:没有数据库的sql文件,缺少使用说明,数据显示条数太少。
bug:1、查看房间信息时数据库提示出现异常错误。
该团队项目是否值得继续开发,并陈述理由?
值得开发,该项目功能比较完善,做得也不错,可以继续完善并且考虑投入使用。
记录任务花费时间:
任务 | 任务花费时间(min) |
任务一 | 300 |
任务二 | 200 |
任务三 | 500 |
总结本次实验的感受和体会:
本次实验主要是阅读别人的代码,学习别人项目中好的地方,对比自己的项目找出不足的地方,对于别人项目优秀的地方去积极学习,不够完善的地方争取完善。通过阅读团队项目,我发现了别人的优秀之处,然后努力学习。争取自己也做到。