201771010132-徐思 实验四 软件项目案例分析
项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE/ |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12616341.html |
我的课程学习目标 | (1)学习团队软件项目流程(TSP)、团队成员协作要求;(2)掌握敏捷流程原则及相关概念。 |
这个作业在哪些方面帮助我实现学习目标 | 阅读《现代软件工程—构建之法》第5-6章内容,与结对伙伴讨论;跟踪学习其他团队的案例项目。 |
结对方姓名-学号 | 杨其菊-201771010134 |
结对方本次博客作业链接 | https://www.cnblogs.com/yqj-yf-111/p/12675056.html |
任务1:在实验三得分100分以上作业中,任选一份作为案例,对案例项目成果进行评价。
(1)案例作业博客链接:https://www.cnblogs.com/hanlamei/p/12574378.html
(2)案例作业项目仓库链接:https://github.com/YHwzt/Query-system-web
(3)对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。
(4)克隆案例项目源码到本地机器,阅读项目代码规范文档并运行代码,系统运行截图、软件功能总结。
注册界面:
添加信息:
查询统计信息:
- 基本功能:
- 采集师生疫情信息;
- 各学院指定负责人登录系统,可查看学生填报的所有汇总数据
- 负责人可根据学生的姓名,学院,地址查找相关信息
- 负责人可直接添加学生的信息
- 负责人可对填写有误的学生信息进行修改及删除
- 负责人可通过图形化方式查看各学院已填报和未填报学生统计情况和关键疫情数据统计情况
- 负责人通过【导出】可获取疫情数据的EXCEL文件
- 扩展功能
- 每日十点之后停止填报
- 填报提醒功能通过邮件的方式每天在九点半定时向学生及教职工发送疫情填报提醒
(5)总结本组实验三博客作业及代码设计存在问题与不足,列举代码中存在的bug,未实现的功能等等。
代码中基本不存在什么bug,功能基本实现。但在刚开始导入时,由于缺少相应的包导致系统出错,浪费较多时间。
任务2:阅读《现代软件工程—构建之法》第5-6章内容,理解并掌握软件项目团队的特点、了解软件团队的模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则。提供两人讨论学习内容的微信或QQ截图,要求截图美观。
1、软件团队的特点:(1)具有明确且有挑战的共同目标;(2)团队有明确的角色划分,分工合作,共同完成任务。
2、软件团队的模式:主治医师模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐模式,爵士乐模式,功能团队模式,官僚模式。
3、瀑布模型:将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。特点:阶段间具有顺序性和依赖性,推迟实现,质量保证。适用范围:软件开发的过程中,需求不发生或很少发生变化,可以一次性获取到全部需求;软件开发人员经验丰富,熟悉软件应用领域;软件项目的风险较低,瀑布模型不具有完善的风险控制机制。
4、瀑布模型变形:生鱼片模型:各相邻模块像生鱼片那样部分重叠;解决了各个步骤之间分离的特点。
大瀑布带着小瀑布:解决不同子系统之间的进度不一,技术要求迥异,需要区别对待的问题,引入了子瀑布模型,这种模型,要求把各个子系统统一到最后做系统测试的阶段,难度大。
5、渐进交付流程:系统的主要需求和架构明确之后,软件团队进入了一个不断演进的循环中:{开发-->发布-->听取反馈-->根据反馈做改进},重复这个循环,直到时间用完,钱花光,完成了计划的迭代次数,或者客户认为满意。
6、敏捷流程:找出完成产品需要做的事情→决定当前的冲刺(Sprint)需要解决的事情→冲刺(冲刺期间每天开每日例会)→得到软件的一个增量版本并发布。优点:周期短,可以增量开发,可以灵活安排功能的实现,可以及时发现项目的缺陷,重在交流和协作。缺点:对人员素质、稳定性、技术性的要求更高,不适合人员流动,整体性强(强则强,弱则弱)。
7、TSP原则:(1)使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解。
(3)尽量使用成熟的技术和做法。
(4)尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来)。
(6)增加团队的自我管理能力。
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
任务3:在班级博客园,有很多高校的软件工程课程要求同学们完成团队项目,请与实验三结对伙伴协商,在以下三个班级中选择一个高质量的团队项目案例进行协作学习,要求追踪该团队项目发布所有博客作业,下载项目软件代码。
1.2016级计算机科学与工程学院软件工程 (西北师范大学)
我们选择的班级是2016级计算机科学与工程学院软件工程 (西北师范大学)。
(1)团队项目作业发布账号链接:https://www.cnblogs.com/snxfd/default.html?page=2
(2)团队项目仓库github链接:https://github.com/snxfd123/designfile
(3)陈述你选择该团队项目进行分析的理由;
该团队开发的项目是酒店会员管理系统,团队中分工明确,项目内容详细,系统功能较为完善,github仓库中对项目的描述一目了然,简单明了,容易理解。有很多值得我们学习的地方。
(4)结合项目系列博客文档,总结项目团队成员的分工合作情况;
团队成员 | 分工 |
---|---|
姚玉婷 | 组长,负责后台设计,用户管理员的登录功能实现,各个功能的编码实现及完善 |
马丽莎 | 组员,负责后台设计,前端与后台的连接,及各个功能的编码实现和完善 |
孙苗坤 | 组员,前端界面设计,功能测试及完善 |
张琼 | 组员,数据库设计,管理员界面实现,功能测试及完善,代码规范 |
(5)结合项目系列博客文档,评价项目的软件项目过程特点(TSP); | |
①成员对项目的功能,目标有一致的理解; | |
②团队成员对各自的能力进行了简单的描述,项目是根据团队成员擅长的技术开发的; | |
③在需求调研与分析中,通过问卷调查以及咨询访问他人收集大量数据,有助于项目功能的开发; | |
④各成员分工明确,在博客中都有制定分工计划,且计划与实际基本相符; | |
⑤博客中有团队合作讨论的照片,还有工作量比例,可以看出每个成员为这个项目的努力奋斗; | |
⑥在项目功能实现与完善过程中,及时发现并解决问题,不断完善系统,提升系统级别。 |
(6)观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?
在github仓库的源代码中,包含代码规范文档。
(7)下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图;
下载的代码中不含有图片,所以在运行的界面中显示不出图片,界面不是很美观。
注册界面:
管理员登录成功界面:
管理员管理界面:
商品管理界面:
查询界面:
充值界面:
消费界面:
退房界面:
酒店会员登录界面:
积分查询:
(8)评价该团队项目是否值得继续开发,并陈述理由?
我认为值得继续开发,随着经济水平的发展,外出旅行出差办事的人越来越多,大部分人都会选择服务质量好,效率高,相对安全的酒店暂住。而酒店管理系统有助于酒店提高服务质量及管理水平,便于管理用户信息,防止用户信息的泄露,为人们带来高质量高水平的酒店服务。
各部分时间展示:
任务 | 计划(min) | 实际(min) |
---|---|---|
任务一 | 90 | 120 |
任务二 | 30 | 50 |
任务三 | 200 | 330 |
任务四 | 45 | 60 |
小结:
这次实验与结对伙伴一起分析学习别人的团队项目案例,对我们有很大的启发,有很多值得我们学习的地方,从中也看到了差距。她们的项目条理清晰,分工明确,认真负责,在团队中每个人都充分发挥了自己的能力,努力完善功能界面,为自己的项目努力学习奋斗,这些都是我们应该学习之处。我们还需要多加努力奋斗。