201971010229-刘转弟 实验四 团队作业1-软件研发团队组建
项目 | 内容 |
---|---|
课程班级博客链接 | 2019级卓越工程师班 |
这个作业要求链接 | 作业要求 |
团队名称 | 软件工程四人小团队! |
我的课程学习目标 | 1.建设团队,开通团队博客
2.通过团队学习,一起研发项目,完成项目 3.在项目研发过程中,团队成员一起协作,互相学习,一起提高,共同发展,共同进步 4.团队成员中互相了解,能够进行扬长避短,能够了解项目开发的各个过程 |
这个作业在哪些方面帮助我实现学习目标 | 1.用企业微信来创建一个群,方便组员互相学习,有利于沟通
2.通过对每位成员的风格、擅长的技术、兴趣这几个方面的介绍,能够了解成员各自的特点,能够进行合理的分配任务,进而完成项目 3.在进行组建团队时,我们会充分考虑每位成员的优缺点来进行组建,组建一个好的团队有助于项目的完成 |
团队博客链接 | 软件工程四人小团队 |
1.实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
2.实验内容与步骤
任务1: 浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成相关任务。
-
1.1 点评的 github仓库链接
-
1.2 点评的博客链接
-
1.3 具体评论
-
1.4 clone
-
1.5 代码核查表
概要部分 | 代码符合需求和规格说明么? | 代码符合要求 |
代码设计是否考虑周全? | 考虑周全 | |
代码可读性如何? | 代码可读性较强,有着比较好的可读性。 | |
代码容易维护么? | 容易维护 | |
代码的每一行都执行并检查过了吗? | 都可以执行 | |
设计规范部分 | 设计是否遵从已知的设计模式或项目中常用的模式? | 遵从 |
有没有硬编码或字符串/数字等存在? | 没有 | |
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)? | 没有,不会影响移植 | |
在本项目中是否存在类似的功能可以调用而不用全部重新实现? | 可以调用 | |
有没有无用的代码可以清除? | 可以再简洁一些 | |
代码规范部分 | 修改的部分符合代码标准和风格么? | 按照代码标准修改的 |
具体代码部分 | 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 对错误都进行了处理 |
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是以0开始计数还是以1开始计数? | 不涉及字符串 | |
边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? | 没有出现死循环 | |
有没有使用断言来保证我们认为不变的条件真的得到满足? | 没有 | |
对资源的利用是在哪里申请,在哪里释放的?有没有可能导致资源泄露?有没有优化空间? | 在对数据库进行操作之前申请数据库连接资源,操作完毕之后释放申请的资源,有优化空间 | |
数据结构中有没有用不到的元素? | 有 | |
效能 | 代码的效能如何?最坏的情况如何? | 达到了具体任务的要求 |
代码中,特别是循环中是否有明显可优化的部分 | 可优化 | |
对于系统和网络调用是否会超时?如何处理? | 目前没有出现超时现象 | |
可读性 | 代码可读性如何?有没有足够的注释? | 可以顺利读取、代码有足够的注释让我们读懂 |
可测试性 | 代码是否需要更新或创建新的单元测试? | 是 |
- 1.6 阅读《现代软件工程—构建之法》第12章内容,完成分析任务
A.体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
项目 | 内容 |
---|---|
项目要求是否解决 | 已解决 |
优点 | 1.数据量:数据充足
2.界面:界面大方 3.功能:功能较全 |
缺点 | 1.数据量:数据还有增加的空间
2.界面:界面可优化 3.功能:功能可扩展 |
改进意见 | 可以在之后的时间里复盘一下 |
C. 从学历、年龄、专业、爱好、收入等方面概括实验三任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求都是什么?
学历 | 年龄 | 专业 | 爱好 | 收入 | 表面需求 | 潜在需求 |
---|---|---|---|---|---|---|
在校大学生 | 18+ | 计算机类专业 | 软件开发 | 一般 | 通过实验设计的实验平台,解决D{0-1}背包问题求解这一类问题 | 编程训练 |
-
1.7 经过(1)-(3)的工作,你们一定有充分的理由给评价作业选择一个结论:a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
d) 好,不错
-
1.8 结合(1)—(3)的评论体会,迭代改进本小组实验三的任务3
任务2: 团队组建
- 2.1 团队成员介绍
成员学号 | 成员姓名 | 个人博客 | 备注 |
---|---|---|---|
201971010223 | 刘温元 | 博客链接 | PM |
201971010222 | 李瑞婷 | 博客链接 | UI设计 |
201971010229 | 刘转弟 | 博客链接 | 测试 |
201971010150 | 闫雨馨 | 博客链接 | 文档 |
- 2.2 成员风采:介绍每位队员的风格、擅长技术、编程兴趣、希望的承担的软工角色(文档、开发、测试、PM等)、一句话宣言等
成员姓名 | 擅长语言 | 擅长技术 | 编程兴趣 | 希望的承担的软工角色 | 宣言 |
---|---|---|---|---|---|
刘温元 | C/JAVA | SSM、thymeleaf等 | C、JAVA、前端开发 | PM | 细节决定成败 |
李瑞婷 | C/C++ | UI | C、C++、前端开发 | UI设计 | 成功者千方百计,失败者千难万险 |
刘转弟 | C/JAVA | <算法 | 算法,JAVA、C | 测试 | 偶尔治愈,常常帮助,总是期待 |
闫雨馨 | C/Python | 数据分析处理 | 前端开发、Python | 文档 | 踏踏实实,认真做事 |
- 2.3 理解MSF的9点基本原则
(1)推动信息共享与沟通(Foster open communications)
所有信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人。当然,对牵涉到的技术机密、安全性等信息要采取必要的保护措施.
(2)为共同的远景而工作(Work toward a shared vision)
这个目标必须是明确的,没有二义性;这个目标不是当前就能达到,必须是通过努力才能达到的;这个目标不是空泛的,它应该对项目成员每天的工作都有指导作用。每天你来上班,如果发现你做的事情对项目的远景没有帮助,你应该和老板提出来。
(3)充分授权和信任(Empower team members)
平等协作---成员之间、团队之间是平等协作的关系;充分授权给团队和成员。
(4)各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
无责任的旁观者和有重大责任的当局者的看法自然是不一样的。对此事负责的角色要自己拿主意。
(5)重视商业价值(Focus on delivering business value)
如果你还没有能说清楚你的产品解决了什么问题,为谁解决问题,为什么你的产品会解决这些问题,以及客户怎样付钱让你解决问题,那你就不应该贸然创业。
(6)保持敏捷,预期变化(Stay agile,expect change)
软件工程,唯一不变的是变化。所以干脆别幻想客户的需求会在第一-时刻很明确,然后保持不会变。但要注意,我们是预期变化,不是期望变化。
(7)投资质量(Invest in quality)
不是质量第一,而是解决用户的问题第一。
(8)学习所有的经验(Learn from all experiences)
把经验总结出来;分享经验。是为了:让团队成员从别人的成果和失败的例子中学到东西;帮助新项目重复以往成功的做法;培育团队总结的习惯和“批评与自我批评”的文化。
(9)与顾客合作(Partner with internal and external customers )
MSF强调产品团队与顾客的交流与合作,并不是产品团队拿到合同之后,就闭门造车,直到产品完成才告诉用户,给他们一个惊喜。 - 2.4 组建团队企业微信群
任务3: 完成《实验四 团队作业1:软件研发团队组建》博文作业
4.PSP展示
任务内容 | 预计花费时间(min) | 实际花费时间(min) |
---|---|---|
确定团队 | 30 | 10 |
创建企业微信群 | 5 | 5 |
创建博客园团队博客 | 30 | 40 |
成员互评 | 30 | 30 |
完成任务二 | 150 | 180 |
博客撰写 | 90 | 90 |
5.项目总结
在本次作业中,观了其他小组的代码值得我们学习和反思。在阅读《构建之法》这本书时,我从中学会了挺多,了解到了什么是团队和非团队、TSP原则,以及绩效管理等各种关于团队的内容。在本次组建团队的时候,我们根据各自的特点来进行了组建,组建团队的时候我发现要想组建一个好的团队是不容易的,这需要下一定的功夫,我们要对每个团队成员都有一定的了解,每位成员都有各自的特色,为了完成任务,需要我们团队在今后的工作中相互配合相互学习。