萌新入坑 实验五 团队作业1:软件研发团队组建与软件案例分析
萌新入坑 实验五 团队作业1:软件研发团队组建与软件案例分析
项目 | 内容 |
---|---|
课程班级博客链接 | [https://edu.cnblogs.com/campus/xbsf/nwnu2020SE] |
这个作业要求链接 | [https://www.cnblogs.com/nwnu-daizh/p/12709461.html] |
团队名称 | 萌新入坑 |
团队的课程学习目标 | (1)组建软件项目研发团队;(2)团队协作学习:软件案例分析; |
本作业在哪些方面帮助我实现学习目标 | 以练习使用其它工具的方法来增强自己学习的乐趣,并通过在小组之间的讨论与实践更好地提升团队协作的能力 |
团队博客链接 | [https://www.cnblogs.com/mxrk/] |
任务1:团队组建
1.在实验四结对基础上,结对小组两两自由组合,尽量按照男女搭配组队要求,组建软件项目研发团队;
项目团队人员:张季跃,周强,张云飞,邹丰蔚
2.申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客
团队博客链接:https://www.cnblogs.com/mxrk/
3.团队基本信息:
(1)团队名称:
萌新入坑
(2)团队成员组成:
成员学号 | 成员名称 | 个人博客地址 | 备注 |
---|---|---|---|
201771010138 | 邹丰蔚 | [https://www.cnblogs.com/wxzfw/] | 队员 |
201771010139 | 张季跃 | [https://www.cnblogs.com/Alex-Morcer/] | 队员 |
201771010141 | 周强 | ----- | 队员 |
201771010143 | 张云飞 | https://www.cnblogs.com/Fairber | 队长 |
(3)成员风采介绍:
姓名 | 个人风格 | 擅长技术 | 兴趣 | 担任角色 | 宣言 |
---|---|---|---|---|---|
邹丰蔚 | 扎实基础,不善变通 | 基础编程 | read | 文档撰写 | 稳得像秤砣 |
张季跃 | 好奇心重,不懂就问 | 页面设计 | 找茬 | 系统测试人员 | 不管哪个鸡蛋,总会有骨头 |
周强 | 思维活跃,善出奇兵 | ----- | ----- | ----- | |
张云飞 | 逻辑严谨,步步为营 | java | 摄影 | 队长 | 有志者事竟成 |
(4)请阅读《现代软件工程—构建之法》第7章,理解MSF的9点基本原则:
1.推动信息共享与沟通( Foster open communications )
所谓推动信息共享与沟通,即所有信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人。当然,要对牵涉到的技术机密、安全性等信息采取必要的保护措施。
2.为共同的远景而工作( Work toward a shared vision)
共同的远景是指产品的远景,即团队的领导人要让全体成员都同意并为之奋斗的项目的远景,要明确项目目标,没有二义性,必须通过努力才能达到,而且这个目标能对项目成员每天的工作都有指导作用。
3.充分授权和信任( Empower team members )
所谓授权,一是给某人权力和权威;们有权在职权范围内按照自己的承诺完成任务,同时,他们也充分信任其他同事能实现各自的们有权在职权范围内按照自己的承诺完成任务,同时,他们也充分信任其他同事能实现各自的规划。
4.各司其职,对项目共同负责( Establish clear accountability and shared responsibility )
团队中的每个角色都有自己的职责,如果出了问题,这个角色就要负责任。与此同时,团队的各个角色合起来,对整个项目最终的成功负责,因为每个角色在其职责范围内的失败都会导致整个项目的失败,而且各个角色的工作都是互相渗透、互相依赖的。这种互相依赖的方式也鼓励团队成员在自己本职之外为其他领域做贡献。
5.交付增量的价值( Deliver incremental value )
增量交付是指为及时反馈和接纳,频繁向客户交付连续改善的工作产品。为演示和反馈,往往在每一个冲刺或迭代的末期交付产品。这项反馈技能,可使客户评价产品并提出新的需求。在敏捷流程中,接受变动/更新/改善的需求,以确保客户得到有价值和质量的产品。
6.保持敏捷,预期和适应变化( Stay agile, expect and adapt change )
软件工程,唯一不变的是变化。所以别幻想客户的需求会在第一时间很明确,然后保持不会变。除开客户的外部原因,团队内部也在不断的变化,这就要求团队保持敏捷的身段。
7.投资质量( Invest in quality )
对质量的重视,引发对质量的投资,引发人、过程和工具的投资。但投资要讲效率和时机。
8.学习所有的经验( Learn from all experiences )
把经验总结出来;分享经验。是为了:让团队成员从别人的成果和失败的例子中学到东西;帮助新项目重复以往成功的做法;培育团队总结的习惯和“批评与自我批评”的文化。
9.与顾客合作( Partner with internal and external customers)
作为产品团队要与顾客及时进行交流,确保产品团队对于用户需求的感官不会产生误差。
(4)组建团队企业微信群,给出群成员截图:
(5)团队特色描述:
任务2:软件项目案例分析
现代社会,人们很多时候要和软件打交道,手机游戏、微信、QQ、中国铁路12306等等。软件工程学习中,通过这些软件案例的分析、 评测、辨析和总结,我们就能看到 软件工程的原理和原则在工程实践中的种种体现和应用,从而加深对软件工程知识内容的理解,帮助我们在软件项目实践中做得更好。
以下是本次作业候选分析案例(本团队选择案例1):
案例1:博客园班级博客
请对博客园的班级博客中针对院校+班级为对象的班级管理、作业管理、互相交流的功能进行分析,这一方面的参照对象是:CSDN。另外,班级博客的作业管理、班级管理等功能在手机上做得如何呢?有什么可以改进的?
案例2: VS和VS Code
微软公司有两个代码编辑器:Visual Studio、VS Code,它们的目标用户,主要功能有何不同?为何要有两个编辑器和开发环境?请用这两个编辑器/IDE写出一个简单的C/C++/Python程序,记录程序耗时多久运行成功?描述你的发现。给出程序和运行结果截屏。
Visual Studio (Community)社区版指的是可免费提供给单个开发人员,给予初学者及大部分程序员支持,可以无任何经济负担、合法地使用的版本,官网下载链接:
[https://visualstudio.microsoft.com/zh-hans/?rr=https%3A%2F%2Fwww.microsoft.com%2Fzh-CN%2Fdownload%2Fdetails.aspx%3Fid%3D48130]
VSCode发布站点:[https://code.visualstudio.com/]
VSCode源代码git地址:[https://github.com/Microsoft/vscode]
VSCode作为一个开源的项目,github平台有许多IT人士在为此项目做出贡献,参照本篇博文后ffl((范飞龙老师)的建议可以学习github协作开发的技巧和方法。
从候选案例中选择一个软件进行分析,以团队协作学习方式完成本次学习任务。
从候选案例中选择一个软件进行分析,以团队协作学习方式完成以下任务:
博客园
个人建立新的班级博客:
为班级添加新的同学:
布置新的班级作业:
为学生打分:
CSDN(CSDN无班级博客)
关联登录:
博客首页:
查看评论:
编辑博文:
(1)阅读《现代软件工程—构建之法》第8章、第12章内容,完成以下案例分析任务:
#####A.下载、部署并体验案例软件的功能,使用10–30分钟这个软件的基本功能(上传使用软件的照片);
如上图所示。
#####B.描述使用案例产品的过程,产品解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
博客园主要用于钻研计算机知识的学习者,当然主要人群还是学生。博客园提供给学习者各类学习资源,以及互相交流,共同进步的平台,也方便了教师对学生知识的传授。所以,我认为解决了用户的问题。
类别 | 优点 | 缺点 |
---|---|---|
数据量 | 信息量较大,但是可以很有效得处理信息 | 可以仿CSDN再将信息分化 |
界面 | 排版清晰,布局合理 | 进入班级管理后再返回博客园主界面步骤较多,建议简化 |
功能 | 功能全面,易于操作 | 在编辑中可以加一些常用知识,如博客界面如何排版等 |
准确度 | 信息准确度高,方便快捷 | 合理分类 |
用户体验:整体来说用户体验很好,但也有几点建议 |
(1)不确定是否是自家网络的原因,页面加载缓慢,建议加以改进。
(2)在班级博客界面建议添加一个按时间分类和按博客种类分类,因为有的时候我突然想要查看前一年的班级博客,都要搜寻半天。
C.对产品有什么改进意见?
(1)加强信息的分类。
(2)在班级博客界面建议添加一个按时间分类和按博客种类分类,因为有的时候我突然想要查看前一年的班级博客,都要搜寻半天。
D. 除了定性的结论,还可以定量地评价一个软件?请看这个链接http://www.cnblogs.com/xinz/p/3308608.html,并尝试进行定量的测评。
类别 | 描述 | 评分(满分 10 分, 良好 6 分, 及格 4 分,聊胜于无 1 分, 很差 -3 分) |
---|---|---|
核心功能 | 分析三个核心功能,功能设计和质量。 | 10 |
细节 | 有什么为用户考虑的细节? | 10 |
用户体验 | 当用户完成功能时,不干扰用户 | 10 |
辅助功能 | 一些辅助功能如皮肤 | 8 |
差异化功能 | 这个软件独特的功能. 它对用户的吸引力有多大? | 7 |
软件效能 | 占用内存, 启动速度, 内存泄漏情况 | 10 |
软件适应性 | 在联网/断网, 大小屏幕, 没有鼠标的情况下都可以顺畅操作. 和不同平台的软件能流畅协作 | 8 |
成长性 | 记住用户的选择, 适应用户的特点,用户越用越方便 | 9 |
用户控制权 | 系统状态有反馈,等待时间要合适。关键操作有确认提示,有明确的错误信息。 让用户方便地从错误中恢复工作, 快捷操作键可调整。 | 10 |
E. 经过以上工作,你们一定有充分的理由给这个软件选择一个评价结论:
a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
我选择E。
(2)阅读《现代软件工程—构建之法》第8.6、14.1节内容,完成以下案例分析任务
A. 使用此软件的所有功能,估计这个软件/网站做到这个程度大约需要多少时间,并说明估算理由(假设团队人数6人左右,计算机大学毕业生,并有专业UI支持)。
首先,由于博客园本身使用asp.net 开发(可以看到后台后缀是aspx,前台页面是用的url重写),而由于我本身对于asp.net 开发工具不是太了解,所以我只能依靠自己在其他开发工具上的经验来模糊判断开发所需时间。本小组所预计时间为:
所需过程 | 所需时间/天 |
---|---|
提出猜想并得出具体的需求分析 | 10 |
交流沟通确定所需功能模块 | 10 |
设计详细的逻辑结构并作出系统的流程图 | 15 |
进行初步的任务规划并确定分工 | 20 |
得出原始的系统并交由评审人员审核并提出意见 | 90 |
对原始形态进行修改直到评审人员满意 | 60 |
对系统的安全进行检测评估 | 30 |
进行系统内部测试并修复出现的BUG | 30 |
进行最后的检测并发布 | 10 |
由此可得,在我们看来,开发一个类似于博客园的系统对于刚毕业的学生来说至少要275天。
B. 和同类软件相比分析,这个软件目前的优劣,这个产品的质量在同类产品中估计名列第几?
首先,博客园本身的优点在于它是专门针对学校所设计的系统,本身有许多其他博客平台所没有的功能。这些功能在面对教育方面来说,相较于其他博客平台有极大的优势。但是,在其博客本身的基本功能上,博客园做的并不是很完美,不论是手机版APP上存在的些许BUG还是网页版的实时刷新慢等缺陷,都大大拉低了它的平均分。而且,由于博客园本身的教育方面特化加强,致使博客园在拥有大量教育方面人才的同时也变得更加小众。总体而言,在我看来,博客园可以排名第二,仅次于大众的CSDN。以下是从ChinaZ上获得的博客网站的排名:
C. 综合判断,给出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。
首先,博客园本身还是比较小众,虽然有大量教育从业者,但对于其它IT工作者来说还是CSDN更有吸引力,所以博客园应该招募一下IT从业人员先增加自己的底蕴,慢慢吸引其他人,做到良性循环。
(3)阅读《现代软件工程—构建之法》第8.5节、第9章内容,完成以下案例分析任务:
这个软件/网站有很多可以提高的部分,如果你是该软件新上任的项目经理,你一定非常希望所负责的项目在竞争中胜出,请思考以下问题:
a.首先,市场有多大?潜在的用户有多少?
在我看来,博客园本身的市场还是蛮大的,首先教育是国之根本,中国一直以来都十分重视教育,有关教育方面的改革创新只有有帮助国家都大力支持,所以在国家层面博客园是有很大的市场的。
其次,在现在的信息化时代里,网络教育也发展的越来越好,越来越受到学校的重视。特别是在此次疫情期间以来,绝大多数学校都采取了网络教学的方式,这也让学校更多的了解到了网络教学的优点与参与网络教学的重要性和必要性。
最后,在网上教学,的确能使同学们的学习变得更加轻松,而且,博客园本身就有许多有识之士发布的文章,这些对于同学们的学习都有很大帮助。
b.目前市场上有什么样的产品了,它们的优势劣势在哪里?和它直接竞争的产品在那里?
目前市场上的产品主要有CSDN、SegmentFault、不过等网站。
其中,简书文字内容错误了可以随时修改更新,这点在大部分平台无法办到,简书平台可以发布任何形式的内容,包括短篇、中篇、长篇都可以,这给各种类型的写作提供了多元化的创作平台,简书平台开通了打赏功能、杂志约稿和合作出版,写手的写作愿意,不就是希望自己的创作能够有人认可,能够在报刊媒体发布,能够走向市场出版发行。
而CSDN曾经是国内最大的程序员聚集地、问答式BBS首创者,不过近年来日渐衰微,沦落成新手学习园地了,而且现在网站的盈利性越来越强,广告只是其中一点,其实大家能看到优质资源的情况下是可以忍受广告的。更多的是网站的审核和原创缺乏导致网站质量下滑。不过,CSDN是国内IT行业覆盖最全的一个社区,有很多的高手和大神隐藏于此,到现在还有很多学者、研究生等高层次人才在 CSDN 发表博客。
对于Github Page来说,github较复杂,需要安装不少软件,而且还可能有莫名的错误,需随时google解决,而且,github的访问速度感觉与其他国外网站比还是较慢的。不过github page支持本地编写、本地预览,满意后再发布,并且支持markdown语法所以对于不少程序员可能会比较方便,并且github在google上权重肯定相当高,所以优势明显
c.作为新上任的项目经理,这个产品的核心用户群是什么样的人,典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?
d.功能:你要设计什么样的功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析.
N(need需求)
人们需要一个精致得空间来记录他们希望记录的东西。
A(Approach做法)
对于这种情况,我们决定开发一个平台,类似于博客园一样的博客管理系统。
B(Benefit好处)
方便号主与租号方可以没有担忧的进行账号租赁和交易,可以快速搜索到自己需要的账号,进行租赁和交易。争取资源的最大化利用,让卖家和买家各取所需。
C(Competitors竞争)
市面上也存在同类型的博客软件,我们只希望能够推出更加又吸引力得功能,以用来吸引用户群体。
D(Delivery推广)
做出平台后,在校园里进行推广,让同学们亲身体验一下我们的特色功能,还有各种文献平台会员进行租赁,可以不用为了一个文献而去开一个月的会员,方便学生可以找到自己需要的资料。另一方面,在游戏账号方面进行突破,用高级号给用户以更加极致的体验。
在做出NABCD计划之后,我们努力把博客平台推向现实,为了我们的目标而奋斗。
e.如果你有钱可以招聘6个人,有4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
我们总结了以下几种职务,但是并不意味着一个人只能担任一种职务。
构架设计师(2人)
构架设计师负责在整个项目中对技术活动和工件进行领导和协调。构架设计师要为各构架视图确立整体结构:视图的详细组织结构、元素的分组以及这些主要元素组之间的接口。因此,与其它角色相比,构架设计师的见解重在广度,而不是深度。
需求分析员(一人)
业务分析员通过概括和界定作为建模对象的组织来领导和协调业务用例建模。例如,确定存在哪些业务主角和业务用例,他们之间如何交互。通过描述一个或几个用例的需求状况以及其他支持软件的需求来获取系统功能某一部分的规约。还要负责用例包并维护该用例包的完整性。
软件设计师(三人)
设计员定义一个或几个类的职责、操作、属性及关系,并确定应如何根据实施环境对它们加以调整。此外,设计师可能要负责一个或多个设计包或设计子系统,其中包括设计包或子系统所拥有的所有类。编写部分模块设计文档和代码,检查软件工程师编写的模块代码。
UI设计师(一人)
界面设计人员通过以下方法来领导和协调 Web 界面的原型设计和正式设计:获取对 Web 界面的需求(包括可用性需求),构建 Web 页面原型,使 Web 界面的其他涉众(如最终用户)参与可用性复审和使用测试会议,复审并提供对 Web 界面最终实施方案(由其他开发人员员创建,如设计师和实施工程师)的适当反馈。
软件工程师(四人)
软件工程师负责完成设计师的设计意图,根据设计文档编写代码;根据设计文档编写单元测试代码,根据测试报告BUG记录修订BUG,完成包或子系统的开发。
测试工程师(一人)
测试工程师负责执行测试,其中包括设置和执行测试,评估测试执行过程并修改错误,以及评估测试结果并记录所发现的缺陷。
f.描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
需求分析:第一周
软件设计:第二周-第四周
编码实现:第五周-第十周
软件测试:第十一周
宣传推广:第十二周-第十三周
反馈改进:第十四周-第十六周