201771030112-刘永胜 实验四 软件项目案例分析

项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12616341.html
我的课程学习目标 (1)学习团队软件项目流程(TSP)、团队成员协作要求。(2)掌握敏捷流程原则及相关概念。
这个作业在哪些方面帮助我实现学习目标 发现问题,然后在实践中认识到问题,再去解决问题的过程
结对方学号-姓名 201771030116-乔昊
结对方本次博客作业链接 https://www.cnblogs.com/Qiaohao501/p/12674543.html

任务1:实验三优秀案例推荐:

在实验三得分100分以上作业中,任选一份作为案例,对案例项目成果进行评价,具体要求如下:

案例博客链接:https://www.cnblogs.com/hackerZT-7/p/12544280.html
案例仓库链接:https://github.com/YHwzt/Query-system-web
(1)对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。

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

功能:角色注册

登陆


学生/教职工填报



疫情汇总,高级查询功能进行多属性组合查询和可视化统计


浏览所有人员填报汇总数据清单

删除

添加

展示各学院已填报和未填报学生统计情况和关键疫情数据统计情况

导出文件

附加闹钟提醒功能

代码运行过程中,可能运行环境的不一样,导致出错无法运行,最后在同学的帮助下成功运行。因为有很多代码,所以按照博客上的讲解反而容易上手运行,感觉还不错。
(3)总结本组实验三博客作业及代码设计存在问题与不足,列举代码中存在的bug,未实现的功能等等。
一方面博客的排版不够美观,希望能够改善一下。
另一方面因为是网页式填入数据,因此对网络流通有一定的要求,不然会出现无法加载出界面的情况。
最后功能方面完成的很好,老师安排的功能都实现了。

任务2:与实验三结对伙伴协作学习:

阅读《现代软件工程—构建之法》第5-6章内容

1.理解并掌握软件项目团队的特点

具有明确且有挑战性的共同目标,团队具有很强的凝聚力,具有融洽的交流环境,具有共同的工作规范和框架,采用合理的开发过程。

2.了解软件团队的模式

a.一窝蜂模式:像小朋友踢球一样,球在哪里,人就一窝蜂跟在哪里
b.主治医师模式:像在手术台一样,有一个主刀医师,其他人负责协助主刀医师
c.明星模式:主治医师模式运用到极点
d.社区模式:由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬
e.业余剧团模式:团队中各人扮演各人的角色
f.秘密团队:有一些软件项目在秘密状态下进行,别人不知道他们具体在做什么
g.特工团队:软件团队由一些有特殊技能的专业人士组成,负责解决一些棘手而有紧迫性的问题
h.交响乐团模式:各司其职,想交响乐队一样
i9.爵士乐模式:与交响乐模式存在相当多的对立
j.功能团队模式:具备不同能力的同事们平等协作公共完成一个功能
k.官僚模式:脱胎于大机构的组织架构,几个人报告给一个小头目,几个小头目报告给中头目,依次向上

3.结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点:

瀑布模型:为项目提供了按阶段划分的检查点,当前一阶段完成后,您只需要去关注后续阶段,可在迭代模型中应用瀑布模型,它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
渐进交付流程:当系统的主要需求和框架明确后,团队进入一个不断演进的循环中。MVP:尽快得到用户反馈,把最核心的功能点用最小的成本实现出来,快速征求用户意见。MBP:如果团队对用户的需求了然于心,或者团队比用户更了解需求,为何不把产品以最全最美的形态展现出来。
敏捷流程:敏捷开发的过程有着更强的适应性而不是预设性,敏捷开发的过程中,更加的注重人的因素,在敏捷开发的过程中,整个项目是测试驱动的而不是文档驱动的。

4.理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则

循序前进的原则;迭代开发的原则;质量优先的原则;目标明确的原则;定期评审的原则;过程规范的原则;指令明确的原则。

讨论截图:

任务3:在班级博客园,有很多高校的软件工程课程要求同学们完成团队项目:

请与实验三结对伙伴协商,在以下三个班级中选择一个高质量的团队项目案例进行协作学习,要求追踪该团队项目发布所有博客作业,下载项目软件代码。

1.团队项目作业发布账号链接

https://www.cnblogs.com/nwnu-daizh/p/10687492.html

2.团队项目仓库github链接

https://github.com/snxfd123/designfile

3.陈述你选择该团队项目进行分析的理由

我们选择的是西北师范大学的2016级计算机科学与工程学院软件工程项目。选择这个项目的原因是看到博客上,这个项目的相关内容非常的完整,从需求分析到项目验收的过程中整个流程十分的完善。这个完整的案例可以让我们了解整个软件开发流程中遇到的种种问题以及解决方案。

4.结合项目系列博客文档,总结项目团队成员的分工合作情况

前期评估时分工情况:

团队成员 分工
姚玉婷 后台设计,后台管理的实现
马丽莎 后台设计,用户阶段的实现
孙苗坤 前端界面的设计
张 琼 数据库设计,测试阶段

前期开发:

团队成员 分工
姚玉婷 绘制UML图、ER图、数据库实体关系图、类图
马丽莎 需求说明书完善、功能分析、编制WBS
孙苗坤 系统概要书撰写
张 琼 博客撰写,系统设计建模

中期开发:

团队成员 分工
姚玉婷 撰写博客以及详细设计过程
马丽莎 整理三个问题
孙苗坤 概要设计说明书的改进
张 琼 撰写详细设计说明书

后期开发:

团队成员 分工
姚玉婷 撰写博客以及编码测试
马丽莎 撰写软件编码规范说明书
孙苗坤 总结项目技术设计的原则
张 琼 《软件设计方案说明书》

系统开发:

团队成员 分工
姚玉婷 管理员功能模块中,收费管理功能的实现,会员查询消费记录功能的实现
马丽莎 管理员功能模块中,会员办理退房业务代码的实现,完善以及积分兑换功能的实现
张琼 会员办理入住业务的测试,前端代码调整及代码规范
孙苗坤 前端代码调整及代码规范,部分功能的完善

5.结合项目系列博客文档,评价项目的软件项目过程特点(TSP)

TSP一般将一个软件项目的开发工作分为4个阶段。任何一个应用TSP的项目可以只包括其中的一个阶段,也可以包括几个连续的阶段。在项目开始之前,项目组应该执行启动过程,对整个任务进行全面地规划和组织。在每个阶段之前,项目组应该执行重启过程,对下一个阶段的任务进行规划。项目启动之后应该有几种情况产生:项目组的目标;项目组各成员的明确角色;过程开发计划;项目组的质量计划;全面的开发计划和进度计划;下一阶段每个成员的详细工作计划;项目的风险分析结果以及项目的状态报告。

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

通过查看github仓库,包含代码规范文档

7.下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图

将代码下载到本地,修改环境从而编译运行

克隆

登陆

主界面

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

不值得开发,但可以学习如何编写代码。因为项目的功能基本已经完善,不存在功能上的缺陷。在这个项目里面有许多编撰规范的文档值得我们学习。

任务4.PSP

任务内容 计划共完成需要的时间(h) 实际完成需要的时间(h)
任务1 2 2
任务2 8 10
任务3 5 6

任务5.感受和体会

这次实验的目的是学习团队软件项目流程以及团队成员协作要求和敏捷流程原则的相关概念。通过阅读邹欣老师的《现代软件工程-构建之法》和对网上一些资料的搜集,我对这些基本概念有了全面的了解。这次主要的目的是学习同学的优秀案例,也因为我们做过同样的作业,导致我们学习理解起来较为容易。同时通过对比,了解我们和他们对同一份作业的不同的理解,学习他们案例的优点,并改进我们的缺点。

原文地址:https://www.cnblogs.com/liuyongsheng-0112/p/12671571.html