项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客 |
这个作业要求链接 | 作业要求 |
团队名称 | 咸鱼翻身 |
团队的课程学习目标 | 学习软件工程的理论和知识,掌握软件开发流程,增强实践能力 |
这个作业在哪些方面帮助团队实现学习目标 | 组建软件项目研发团队,熟悉项目开发工具 |
团队博客链接 | 团队博客 |
一、实验目的与要求
(1)实验三作业互评。
(2)组建软件项目研发团队。
二、实验内容与步骤
-
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
-
(1)对博文作业进行阅读,并结合评分要求进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,给出这个结对小组在进度计划方面可以提高的具体建议。将以上评论内容发布到博客评论区。
评论博客链接:https://www.cnblogs.com/z-thorn/p/14636029.html -
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
- 概要部分
1)代码符合需求和规格说明么?符合
2)代码设计是否考虑周全?完善
3)代码可读性如何?可读性好
4)代码容易维护么?容易
5)代码的每一行都执行并检查过了吗?是 - 设计规范部分
1)设计是否遵从已知的设计模式或项目中常用的模式?是
2)有没有硬编码或字符串/数字等存在?没有
3)代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到 Win64 ) ?不会
4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?没有
5)有没有无用的代码可以清除?没有 - 代码规范部分
修改的部分符合代码标准和风格吗? 修改的部分符合代码标准和风格 - 具体代码部分
1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?是
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?没有错误
3)边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环?没有出现死循环
4)有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足?没有使用
5)对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有优化的空间?对空间的优化较好,数据库无风险
6)数据结构中有没有用不到的元素? 没有
- 概要部分
-
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
该软件解决了任务三所要求的功能
C. 从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
典型用户主要是高校计算机专业相关学生 -
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
非常推荐 -
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
已做了部分改进 -
任务2:团队组建
-
1.在实验三结对基础上,结对小组两两自由组合,组建软件项目研发团队;
队名:咸鱼翻身成员学号末五位 成员*名 个人博客地址 备注 30135 *辉 https://www.cnblogs.com/nwnuyh/ PM 30111 *佳媚 https://www.cnblogs.com/nwnujsj/ 10202 *盼盼 https://www.cnblogs.com/realCaoPanpan/ 10203 *鹏昱 https://www.cnblogs.com/nwnu-cpy/ - MSF微软解决方法框架,它的九条基本原则是:
1. 推动信息共享和沟通:
2. 为共同的远景而工作
(1)这个目标必须是明确的,没有二义性;
(2)这个目标不是当前就能达到,必须是通过努力才能达到的;
(3)这个目标不是空泛的,它应该对项目成员每天的工作都有指导作用。每天你来上班,如果发现你做的事情对项目的远景没有帮助,你应该跟老板提出来。
3. 充分授权和信任
在一个高效的团队中,所有的成员都应该能得到充分的授权,他们有权力在自己的职权范围内按照他们自己的承诺完成任务,同时,他们也充分信任其他同事也能实现各自的承诺。类似地,团队的顾客(包括内部和外部的顾客)也认为团队能兑现承诺,并进行相应的规划。
4. 各司其职,对项目共同负责
团队中的每个角色都有自己的职责,如果出了问题,这个角色就要负责任。
5. 交付增量的价值
一个项目的商业价值只有在它被成功地发布并运行时才能体现出来,所以,MSF过程模式包括了开发和发布阶段。
6. 保持敏捷,预期和适应变化
软件工程,唯一不变的是变化。所以干脆别幻想客户的需求会在第一时刻很明确,然后保持不会变。要注意,我们是预期变化,不是期望变化。除开外部原因,团队内部也在变化,我们对技术的掌握每天都在提高,原来认为不可能的事可能变得容易。我们对客观世界和软件系统的了解每天都在深化,原来觉得没问题的小细节忽然成了大问题。
7. 投资质量
对质量的重视,引起对质量的投资,引起对人、过程和工具的投资。
8. 学习所有的经验
MSF在每一个里程碑结束时都要做一个“里程碑回顾”,这个回顾不必等到整个项目结束才做。这样做的好处是,大家对最近的成败都记忆犹新,能提供比较准确和全面的反馈;如果发现了错误,可以马上研究解决办法,在下一个里程碑中通过实践来验证。另外,一些好的做法可以及时得到总结和推广。
在项目结束时,MSF推荐请团队以外的专家来主持召开“事后诸葛亮”会,这样的专家会比较系统地总结团队的成功经验和失败教训,同时也客观评价团队的一些特性和团队的开发过程管理,这样能促使团队成员以客观、向前看、解决问题的心态来参加“事后诸葛亮”会,避免主观臆断或相互指责。
9. 与顾客合作
- MSF微软解决方法框架,它的九条基本原则是:
-
2.申请开通团队博客,点击以下链接提交团队信息,将团队博客加入到班级博客;
团队博客链接:https://www.cnblogs.com/xyfstd/ -
3.阅读《现代软件工程—构建之法》第5章内容
- 第五章的理论和知识点主要有:典型的软件团队模式和开发流程以及它们的优缺点
- 书中讲到的典型的软件团队模式有:一窝蜂模式 (chaos team),主治医师模式(Chief-Programmer Team, surgical team),明星模式 (Super-star model),社区模式 (Community Model),业余剧团模式 (Amateur Theater Team),秘密团队 (skunk work team),特工 (SWAT) 团队,交响乐团模式 (Orchestra),爵士乐模式 (Jazz Band),功能团队模式 (feature team),官僚模式 (bureaucratic model);
开发流程有:瀑布模型 (waterfall model),统一流程(RUP),老板驱动的流程 (boss-driven process),渐进交付的流程 (Evolutionary Delivery) MVP和MBP; - Team Software Process(TSP)的原则:
1.使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
2.团队的各个成员对团队的目标、角色、产品都有统一的理解;
3.尽量使用成熟的技术和做法;
4.尽量多的收集数据,并用数据来帮助团队做出理性的决定;
5.制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定;
6.增强团队的自我管理能力;
7.专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作。
-
任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业
- 统计完成任务花费时间
任务 | 任务内容 | 花费时间 |
---|---|---|
任务1 | 学习完成质量较高的小组项目成果 | 120min |
任务2 | 团队组建 | 50min |
任务3 | 完成《实验四 团队作业1:软件研发团队组建》博文作业 | 50min |
四、实验总结
在整个项目过程以及通过学习其他小组的项目,我深刻感觉到自身能力的不足以及和优秀团队的差距,未来任重而道远,此次组建团队,我相信通过集体的力量,大家能够有提升和进步!