201771010104-狄慧 实验四 软件项目案例分析

项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12616341.html
我的课程学习目标 学习团队软件项目流程TSP、团队成员协作要求,理解掌握敏捷流程原则及相关概念
这个作业在哪些方面帮助我实现学习目标 通过与结对同伴更进一步的共同学习,提升了我的团队合作能力与意识
结对方学号-姓名 201771010105-达拉草
结对方本次博客作业链接 https://www.cnblogs.com/dalacao/p/12619207.html

一、实验目的与要求

(1)学习团队软件项目流程TSP、团队成员协作要求。
(2)掌握敏捷流程原则及相关概念。

二、实验内容和步骤

任务一、实验三优秀案例推荐:王之泰&韩腊梅组

1、案例作业博客链接:
https://www.cnblogs.com/hackerZT-7/p/12544280.html
https://www.cnblogs.com/hanlamei/p/12574378.html
2、案例作业项目仓库链接:
https://github.com/YHwzt/Query-system-web
3、符合要求的博客评论:
截图如下:

4、系统运行截图、软件功能总结;附加分要求:若测试发现案例代码存在bug,截图为证。
(1)clone案例项目源码至本地

(2)系统运行截图

(3)软件功能总结
软件功能是比较完善的,有登录注册界面,疫情上报界面,各个阶级负责人管理界面,高级查询功能,可视化统计功能,信息的增删改查,导出ecxcel文件功能和邮件提醒功能等,提醒人们按时打卡。
5、符合(3)要求的总结
(1)在导入代码时,由于环境的问题,花费了很长时间。
(2)在代码使用规范方面有一点小问题。

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

1、理解并掌握软件项目团队的特点
软件团队的特点可以总结为两点:团队有一致的集体目标;团队成员各自分工,互相依赖,相互合作,共同完成任务。
2、了解软件团队的模式
软件团队主要有以下几种模式:
1>一窝蜂模式:最初的一窝蜂形式的软件团队模式,后逐步演变转化成其他模式;
2>主治医师模式:首席程序员负责主要模块的设计与编码,其他成员从不同角度提供支持;
3>明星模式:主治医师模式运用的极点,团队“明星”的能力掩盖了团队所有人的缺陷和优点;
4>社区模式:成员分布成员分布不受时间空间的限制,所有人根据喜好选择项目进行开发,一般不要求报酬;
5>业余剧团模式:没有固定的团队,且成员在不同的项目中没有固定的工作分配,所有成员由“中央指挥”指示;
6>秘密团队:秘密状态下进行,无外界干扰,团队肩负独特使命,内部成员自由度与热情较高;
7>特工团队:团队由专业人士组成,负责一些紧急问题的解决(如此次新冠疫情);
8>交响乐团模式:较多大型软件公司采用,成员与领导者能力较强且有相似的项目开发经验,所有成员各司其职但统一受领导者指挥;
9>爵士乐模式:与交响乐团模式对立,较为松散,领导者完成框架,其他成员在此基础上创作,最后再由领导者收尾;
10>功能团队模式:没有固定的团队,由不同能力的成员进行组合,协作完成某一项目,项目完成后成员重新组织进行其它不同项目;
11>官僚模式:脱胎于大机构的组织架构,几人向小头目报告,小头目向大头目报告。容易形成恶性竞争。
3、理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点。
(1)瀑布模型
瀑布模型是一个经典的软件生命周期模型,也叫预测型生命周期、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围及交付此范围所需的时间和成本。
  在这个模型里,项目启动时,项目团队专注于定义产品和项目的总体范围,然后制定产品(及相关可交付成果)交付计划,接着通过各阶段来执行计划。应该仔细管理项目范围变更。如果有新增范围,则需要重新计划和正式确认。对于经常变化的项目而言,瀑布模型毫无价值。
  以下情况优先选择这种生命周期:项目需求明确、充分了解拟交付的产品、有厚实的行业实践基础、或者整批一次性交付产品有利于干系人。例如开发一个软件项目时,如果采用这个模型的话,一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段。
(2)瀑布模型的局限性:
a.各步骤之间是分离的,但是软件生产过程中各个步骤不能这样严格分离出来;
b.回溯修改很困难甚至不可能,但是软件生产的过程需要时间回溯;
c.最终产品直到最后才出现,但是软件的客户,甚至软件工程师本人都需要尽早知道产品的原型并试用。
(3)瀑布模型的适用范围:
a.如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步的验证;
b.产品模块之间的接口,输入和输出能很好地用形式化的方法定义和验证;
c.使用的技术非常成熟,团队成员都很熟悉这些技术。
d.负责各个部分的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流。
  瀑布模型的变形主要有生鱼片模型、大瀑布带着小瀑布、子瀑布模型等,但每个模型均有其缺陷。
(3)敏捷流程的原则有以下12点:
a.尽早并持续地交付有价值的软件以满足顾客需求;
b.敏捷流程欢迎需求的变化, 并利用这种变化来提高用户的竞争优势;
c.经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;
d.业务人员和开发人员在项目开发过程中应该每天共同工作;
e.以有进取心的人为项目核心,充分支持信任他们;
f.无论团队内外,面对面的交流始终是最有效的沟通方式;
g.可用的软件是衡量项目进展的主要指标;
h.敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去;
i.只有不断关注技术和设计,才能越来越敏捷;
j.保持简明---尽可能简化工作量的技艺---极为重要;
k.只有能自我管理的团队才能创造优秀的架构、需求和设计;
l.时时总结如何提高团队效率,并付诸行动。
4、理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则。
TSP原则主要有以下七点:
1>使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
2>团队的各个成员对团队的目标、角色、产品都有统一的理解;
3>尽量使用成熟的技术和做法;
4>尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
5>制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来);
6>增加团队的自我管理能力;
7>专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
5、讨论截图展示
我和同伴是在粗读之后,进行讨论一起学习的。

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

我们选用的是https://edu.cnblogs.com/campus/buaa/BUAA_SE_2019_LJ/homework/2685 2019春季计算机学院软件工程(北京航空航天大学)的项目
1、团队项目作业发布账号链接
https://www.cnblogs.com/PureMan6
2、团队项目仓库github链接
https://github.com/swearitagain/EduCnblogs2.0
3、陈述你选择该团队项目进行分析的理由
首先我看到这是一个开发博客园APP的项目,我们也在使用博客园的网页版,并且是安卓开发的,虽然我不懂,但是在学习中遇到这样的项目还是比较感兴趣的,最后这个软件的功能等都相对比较完善,可以实际在生活学习中运用。
4、结合项目系列博客文档,总结项目团队成员的分工合作情况

团队成员 分工
吴昊 开发人员,Scrum Master,负责主持每日例会
邵旭哲 PM,负责博客撰写
胡俊崧 开发人员
蒋锋 开发人员
陈治齐 开发人员
吴枫 测试人员

5、结合项目系列博客文档,评价项目的软件项目过程特点(TSP)
软件项目过程特点:
1>使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
2>团队的各个成员对团队的目标、角色、产品都有统一的理解 。
3>尽量使用成熟的技术和做法。
4>尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
5>制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来)。
6>增加团队的自我管理能力。
7>专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
6、观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?
在看了该团队的仓库源码之后,发现项目中并不包含代码规范文档。

7、下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图
1>使用体验
这是一个基于安卓的手机APP,整体来说还是不错的,但是下载的时候并不是很方便,在应用商店没有搜到这一款软件,我是在浏览器下载的,感觉比较麻烦。在打开APP后,首界面让人眼前一亮,我自己挺喜欢这样的风格,在使用了基本的功能之后,我觉得这个软件虽然简单,但是基本的功能都可以实现,是很不错的。
首界面:

登录:

个人信息:

班级博客:

我的博客:

博文详情:

2>功能性bug
a.在打开一个博文时,排版很奇怪,表格等不能显示,应该是与markdown没有适配;
b.在登陆的时候会出现错误提示

8、评价该团队项目是否值得继续开发,并陈述理由。
我觉得该团队的项目值得继续开发。因为我在应用商店搜索博客园的app时,找到了三款软件,但是都会有一些不尽人意的地方,这款软件虽然也有不足,但是我觉得比那几款有明显的优点。而且在之后的开发中,也可以借鉴这几款软件的突出之处来完善优化此软件。而且如果加入查看班级作业得分情况,并且可以在APP内撰写博客就更好了,这样也会有更多的用户来使用。

三、记录完成实验四《软件项目案例分析》各项任务实际花费的时间

任务 实际花费时间(min)
任务一 150
任务二 100
任务三 200
任务四 200

四、请谈谈完成本次作业的感受和体会

通过本次作业,我知道了自己存在的不足和需要向其他人学习的地方,比如在任务一中,对王之泰&韩腊梅小组实验三项目的分析,发现了自己的实验三结对项目存在的缺点和不完善的地方,在任务二中,对于软件项目团队的特点、模式,以及典型软件过程模型有了更好的理解,在任务三中,通过分析优秀团队软件项目,我对团队成员的分工等有了更加明确的认识。总的来说,需要学习的地方还很多,我会继续努力。

posted on 2020-04-11 00:06  dihui  阅读(221)  评论(1编辑  收藏  举报

导航