项目 内容
课程班级博客链接 班级博客
这个作业要求链接 作业要求
团队名称 咸鱼翻身
团队的课程学习目标 学习软件工程的理论和知识,掌握软件开发流程,增强实践能力
这个作业在哪些方面帮助团队实现学习目标 组建软件项目研发团队,熟悉项目开发工具
团队博客链接 团队博客

一、实验目的与要求

(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. 与顾客合作
  • 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

四、实验总结

在整个项目过程以及通过学习其他小组的项目,我深刻感觉到自身能力的不足以及和优秀团队的差距,未来任重而道远,此次组建团队,我相信通过集体的力量,大家能够有提升和进步!