201771010134--杨其菊 实验四 软件项目案例分析

实验四 软件项目案例分析

项目 内容
课程班级博客链接 https://www.cnblogs.com/nwnu-daizh/
作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12521474.html
我的课程学习目标 (1)学习软件工程基础概念和理论;(2)学习个人在团队中如何发挥作用;(3)团队如何更好协作;(4)熟悉项目开发的流程
这个作业在哪些方面帮助我实现课程目标 (1)学习团队软件项目流程(TSP)、团队成员协作要求。(2)掌握敏捷流程原则及相关概念。
结对方学号-姓名 201771010132-徐思
结对方本次博客作业链接 https://www.cnblogs.com/sisi-713/p/12656353.html

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

王艳:https://www.cnblogs.com/JAVA-729/p/12554359.html
王玉兰:https://www.cnblogs.com/wang963/p/12573855.html
在实验三得分100分以上作业中,任选一份作为案例,对案例项目成果进行评价,具体要求如下:
1.对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。

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


代码运行:
登录界面

系统主界面:

学生填报

到数据库查看

浏览所有人的填报的情况

查看学生填报信息

修改操作

删除操作

疫情指南

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

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

5.1非团队与团队
团队特点:(1)有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时完成工作。
(2)团队有各自的分工,互相依赖,共同完成任务。
5.2软件团队的模式:主治医师(有一个主要负责人,其他人负责协助)、明星、社区(众人拾柴火焰高)、业余剧团(不同角色)、秘密团队(无干扰)、特工团队(高手)、交响乐团(各司其职)、爵士乐(个性化表达)、功能团队(小组交流)、官僚(不提倡)。
5.3开发流程
(1)瀑布模型
瀑布模型:(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。
瀑布模型的适用范围:产品的定义非常稳定但正确性非常重要、产品模块之间的接口能很好地定性定义和验证、使用的技术很成熟、子团队不能做到频繁的交流。
(2)瀑布模型变形:瀑布模型的变形:生鱼片模型(各个相邻模块像生鱼片那样部分重叠)以及大瀑布带着小瀑布(各个子系统统一到最后进行系统测试)
(3)渐进交付:渐进交付流程:系统的主要需求和架构明确之后,软件团队进入了一个不断演进的循环中:{开发⇒发布⇒听取反馈⇒根据反馈做改进},重复这个循环,直到时间用完,钱花光,完成了计划的迭代次数,或者客户认为满意。
(4)TSP原则:
1.使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
2.团队的各个成员对团队的目标、角色、产品都有统一的理解。
3.尽量使用成熟的技术和做法。
4.尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
5. 制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来)。
6.增加团队的自我管理能力。
7.专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
6.敏捷流程
6.1 敏捷的流程:(找出待解决的问题 --> 决定当前目标 -->冲刺(每日例会)--> 改进)
敏捷开发原则:
(1)尽早并持续地交付有价值的软件以满足顾客需求
(2)敏捷流程欢迎需求的变化,并利用这些变化来提高用户的竞争优势
(3)经常发布可用的软件,发布间隔可以从几周到几个月,能短则短
(4)业务人员和开发人员在项目开发过程中应该每天共同工作
(5)以有进取心的人为项目核心,充分支持信任他们
(6)无论团队内外,面对面的交流始终是最有效的沟通方式
(7)可用的软件是衡量项目进展的主要指标
(8)敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去
(9)只有不断关注技术和设计,才能越来越敏捷
(10)保持简明——尽可能简化工作量的技艺
(11)只有能自我管理的团队才能创造优秀的架构、需求和设计
6.2 敏捷流程的问题和解法(计划:体现依赖关系-->描述细化到技术层面 --> 跟踪三个时间 --> 总结教训)
6.3 敏捷的团队
自主管理(自己挑选任务)、自我组织(联合负责)、多功能(全面负责)。
6.4 敏捷总结
质量控制、短时间迭代、极致编程、经验教训。
6.5 敏捷的问答
敏捷是一种价值观、总结思想、最佳实践TDD、适用范围、宣言(左项)
与同伴的讨论截图:

填报人数统计

感染人数统计

数据导出到Excel

通过QQ邮箱发送信息提醒进行填报

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

  1. 2016级计算机科学与工程学院软件工程 (西北师范大学)
  2. 2019秋福大软件工程实践Z班 (福州大学)
  3. 2019春季计算机学院软件工程 (北京航空航天大学)的少年先疯队的酒店管理系统案例来做分析。

我们选择了2016级计算机科学与工程学院软件工程 (西北师范大学)的少年先“疯”队酒店会员管理系统
团队项目作业发布账号链接:https://www.cnblogs.com/snxfd/
团队项目仓库github链接:https://github.com/snxfd123/designfile

  • 选择该团队项目进行分析的理由:该团队在项目的设计分析阶段的博文完整详细。
  • 结合项目系列博客文档,总结项目团队成员的分工合作情况:
    少年先“疯”队有4名成员:姚玉婷,马丽莎,孙苗坤,张 琼。
    该项目团队前期的分工粗略而且不太合理,每个页面可能团队的成员都有修改,在后期工作中意识到了这个问题,改为根据进度在每个阶段对大家有更细致的任务划分。

需求调研和分析阶段:

需求分析改进和系统设计阶段的分工:

系统详细设计阶段:

编码阶段:


验收阶段:

  • 结合项目系列博客文档,评价项目的软件项目过程特点(TSP)
    1.使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
    2.团队的各个成员对团队的目标、角色、产品都有统一的理解。
    3.尽量使用成熟的技术和做法。
    操作系统 Widnows 7;
    开发工具 Eclipse 4.5;
    数据库 Mysql 5.5;
    JDK 1.8;
    Web服务器 Tomcat 8.0;
    单元测试框架 Junit4;
    Web网页设计 HBulider Dreamwerve;
    4.尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
    (1)通过调查问卷和面对面访谈的方法来获取用户的需求,为了确保信息的真实可靠性,首先是将调查表发布在qq群以及微信群里面,然后扩大范围进行调研。
    (2)在每个阶段,成员预估自己完成分配任务的时间、并收集完成该部分内容的真实时间,以便组长能够更合理的分配下阶段工作。
  1. 制定了切合实际的计划和承诺,团队任务分配具体详细,分工明确,每个成员也很好的完成了各自的部分。
  2. 团队的自我管理能力能力强,团队不断反思、总结改进。
  • 观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?
    该团队项目的github仓库源代码文档完备,包含代码文档规范:
  • 下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图(20分);
    系统主要实现对酒店会员的管理。
    (1)登录模块:涉及权限登录,有系统管理员和会员用户(输入用户名和密码进去系统,主界面不同功能的展示)

    积分兑换:积分兑换包括商品的编号、商品名称、商品的价格和商品的剩余数量,并且实现会员兑换的功能。如下图所示:

    管理员模块:选择管理员进入管理员主界面,有管理模块、会员信息管理模块和收费模块,如下图所示:
    管理模块包括房间管理和商品管理模块

    3.1.1房间管理模块:房间管理模块包括房间的编号、房间的大小、房间的类型、房间的价格和房间的状态。如下图所示:

    3.1.2商品管理模块:商品管理模块包括商品编号、商品名称、商品价格、商品数量、操作。如下图所示

    3.2会员信息管理模块:会员信息管理模块包括添加会员和查询会员两个模块。如下图所示:

    3.2.1添加会员模块:注册会员如下图所示:

    3.2.2查询会员模块包会员编号、会员名、会员性别、身份证号、手机号码、开户日期、会员积分和会员余额信息,并且实现了会员的删除功能。如下图所示:

    3.3收费管理:收费管理模块包括充值模块、消费模块和退房模块。如下图所示:

    3.3.1充值模块:点击充值操作后会转到充值界面,然后通过自己的会员编号和会员名进行充值。如下图所示:

    3.3.2消费模块:消费模块即住房消费,如下图所示

    3.3.3退房模块:退房模块只需要将房间的状态改为null,如下图所示:

    使用体验:系统界面简洁易懂,方便使用;风格相对一致,符合办公习惯;具有严重后果的功能执行可逆,或者给出明显警告,执行前要求确认;系统操作简单易用。
  • 评价该团队项目是否值得继续开发,并陈述理由?(5分)
    值得继续开发。该软件用于酒店会员的管理,该系统的实现会帮助酒店管理员采集信息、会员卡发放信息、会员活动、会员消费记录、会员折扣信息等,实时掌控所有会员活动情况。系统能极大地提高酒店的效率和效益,从而能提高客户和员工的满意度。
    记录完成《实验四 软件项目案例分析》各项任务实际花费的时间;
    |项目|时间(h)
    |--|--|--|
    | 任务1|3
    | 任务2|2
    | 任务3|4
    | 任务4|1.2

总结 本次实验,通过阅读构建之法第五、六章节,学习了团队模式、TSP以及瀑布模型、敏捷流程等开发流程。阅读理解了两组团队项目案例的博文和代码文档,加深了对软件团队项目工作的认识,比如成员之间的分工配合和相互协作,也学习到很多方法。

猜你喜欢

转载自www.cnblogs.com/yqj-yf-111/p/12675056.html
今日推荐