201971010233-潘晴 实验四 团队作业1:软件研发团队组建

项目 内容
课程班级博客链接 2022年春软件工程2019级计算机科学与技术)
这个作业要求链接 实验四 团队作业1:软件研发团队组建
团队名称 夏日限定
本次课程学习目标 1. 实验三作业互评
2. 组建软件项目研发团队
这个作业在哪些方面帮助我实现学习目标 1. 通过阅读《构建之法》,了解什么是团队,学会团队交流和合作。
2. 通过阅读完成质量较高的项目小组的代码,了解其思想,学习其优秀之处。
团队博客链接 Summer-limit

任务一

1. 博文评论


2. 项目克隆

  • 克隆情况如下


  • 代码核查表
项目 内容
概要部分
代码符合需求和规格说明么? 符合需求和规格说明
代码设计是否考虑周全? 考虑周全
代码可读性如何? 可读性较好 ,并对关键代码进行了注释
代码容易维护么? 容易维护,对其中一个功能进行修改时,不会影响到其他功能
代码的每一行都执行并检查过了吗? 对项目代码都已执行并检查过
设计规范部分
设计是否遵从已知的设计模式或项目中常用的模式? 遵守
有没有硬编码或字符串/数字等存在?
代码有没有依赖于某一平台,是否会影响将来的移植? 移植影响较小
开发者新写的代码是否用已有的Library/SDK/Framework中的功能实现??
有没有无用的代码可以清除?
代码规范部分
修改的部分符合代码标准和风格么? 基本符合
具体代码部分
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 已处理所出现错误
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是从0开始计数还是从1开始计数 无错误出现;字符的长度;从0开始
边界条件是如何处理的?switch语句和default分支是如何处理的?循环有没有可能出现死循环? 通过前提假设分析推导边界条件;可能出现死循环
有没有使用断言来保证我们认为不变的条件真的得到满足?
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄露?有没有优化的空间? 使用程序语句进行申请、释放;不存在资源泄露;有优化空间
数据结构中有没有用不到的元素?
效能
代码的效能如何?最坏的情况是怎么样的? 效能较好;最坏情况下界面显示不完整
代码中,特别是循环中是否有明显可优化的部分? 无,目前未找到
对于系统和网络的调用是否会超时?如何处理? 不会超时,系统运行较快
可读性
代码可读性如何?有没有足够的注释? 对关键代码均有注释,可读性较好
可测试性
代码是否需要更新或创建新的单元测试? 需要

3. 阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务

A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片

  • 用户登录界面


  • APP界面数据库信息读入


  • 对物品按照价值重量比进行非降序排列


  • 算法求解

B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?


  • 任务三要求的功能软件全部解决。

  • 软件评价

    • 数据量:使用测试数据文件,数据量大。

    • 界面美观简洁

    • 功能完善充实

C. 从学历、年龄、专业、爱好、收入等方面概括实验三任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求都是什么?


调查方面 用户特征
学历 高中及以上
年龄 16岁及以上
专业 理工学科
爱好 编程、算法、数学方面
收入 不限
表面需求 可以用贪心算法,遗传算法,动态规划,回溯算法来快速解决0-1背包问题
潜在需求 学习各个算法的基本思想,了解到使用不同算法解决问题的效率差异

4. 为评价作业选择一个结论:a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐

e) 非常推荐

任务二

1. 队名:夏日限定

2. 团队组成

成员学号 成员姓名 个人博客地址 备注
201971010235 阮凯 阮凯-博客地址 PM
201971010146 杨凯 杨凯-博客地址
201971010230 孟姣姣 孟姣姣-博客地址
201971010233 潘晴 潘晴-博客地址

3. 团队成员风采

成员姓名 擅长技术 编程兴趣 希望承担的角色 宣言
阮凯 web前端 web前端和python PM 做好每一件事
杨凯 java 前端 测试 从现在开始
孟姣姣 java 后端开发 开发 星光不问赶路人,时光不负有心人
潘晴 c语言 前端开发 文档 虽然很菜,但是努力不在菜

4. 阅读《现代软件工程—构建之法》第5章内容:

  • 什么是团队?

    • 团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作,例如接力跑。团队成员有各自的分工,互相依赖合作,共同完成任务。
  • 软件团队的模式

    • 主治医师模式:这样的软件团队中有首席程序员,他负责处理主要模块的设计和编码,其他成员从各种角度支持他的工作(后备程序员、系统管理员、工具开发、编程语言专家、业务专家)。

    • 明星模式:主治医师模式运用到极点,可以退化为明星模式。

    • 社区模式:社区由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。

    • 业余剧团模式:在每一个项目中,不同的人会挑选不同的角色,在下一个项目中,这些人也许会换一个完全不同的角色类型。个人在团队中听从一个中央指挥的指导和安排。

    • 秘密团队:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。这种模式的好处是:团队内部以后极大的自由,较高的热情,没有外界的干扰。

    • 特工模式:软件行业的一些团队由一些有特殊技能的专业人员组成,负责解决一些棘手而有紧迫性的问题。

    • 交响乐团模式:门类齐全、各司其职。当某个软件领域处于稳定成长阶段的时候,众多大型软件公司的开发团队就会采取这种模式。

    • 爵士乐模式:强调个性化的表达,强有力的互动,对变化的内容有创意的回应。

    • 功能团队模式:很多软件公司的团队最后都演变成功能团队,具备不同能力的同事们平等合作,共同完成一个功能。

    • 官僚模式:这种模式在软件开发中会出问题,因为成员之间不光有技术方面的合作和领导,同时还混进了组织上的领导和被领导关系。

  • 开发流程

    • 软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。

    • 写了再改模式:这种模式不需要太多其他准备或相关知识,上来就写代码,写不出来就改,但要写一个有实际用户、解决实际需求的软件,这个方法缺点就很大。

    • 瀑布模型:他的适用范围如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步验证,产品模块之间的借口、输入和输出能很好的用形式化的方法定义和验证,使用的技术非常成熟,团队成员都很熟悉这些技术,负责各个步骤的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流。

    • 瀑布模式的各种变形:生鱼片模型、大瀑布带小瀑布

    • 统一流程:业务建模、需求、分析和设计、实现、测试、部署、配置和变更管理、项目管理、环境、初始阶段、细化阶段、构造阶段、交付阶段

    • 老版驱动的流程:该模式的问题领导对许多技术细节是外行,未必懂得软件项目的管理,领导的权威影响了自由的交流和创造,领导最擅长的管理方式是行政命令,这未必能管好软件团队或任何需要创造力的团队,领导的精力有限,领导很忙时,团队怎么办?

    • 渐进交付的流程:很接近迭代式开发流程,当系统的主要需求和架构明确之后,软件团队进入了一个不断演进的evolution循环中:开发→发布→听取反馈→根据反馈做改进

    • TSP的原则:使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的,团队的各个成员对团队的目标,角色,产品都有统一的理解,尽量使用成熟的技术和做法,尽量多地收集数据,并用数据来帮助团队做出理性的决定,制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定,增加团队的自我管理能力,专注于提高质量,争取在软件生命周期的早期发现问题,最有效提高质量的办法是做全面而细致的设计工作。

5. MSF的9点基本原则:

  • 推动信息共享与沟通(Foster open communications)

    所有信息都保留公开,同时对于涉及到技术机密以及安全性等信息采取保护措施。

  • 为共同的远景而工作(Work toward a shared vision)
    共同的远景”指产品的远景。

  • 充分授权和信任(Empower team members)

    在一个高效的团队中,所有成员都应得到充分授权。

  • 各司其职,对项目共同负责(Establish clear accountability and shared responsibility)

    团队中每个角色都有自己的职责,若出现了问题,这个角色就要负责。

  • 重视商业价值

    如果你还没有能说清楚你的产品解决了什么问题,为谁解决问题,为什么你的产品会解决这些问题,以及客户怎样付钱让你解决

  • 保持敏捷,预期和适应变化(Stay agile, expect and adapt change)

    软件工程,唯一不变的是变化;我们是预期变化,不是期望变化。

  • 投资质量(Invest in quality)

    对质量的重视,引发对质量的投资,引发对人、过程和工具的投资。

  • 学习所有的经验(Learn from all experiences)

    在学习过去的经验的同时,也要避免让过去的经验妨碍解决现在的问题。

  • 与顾客合作(Partner with internal and external customers)

    MSF强调产品团队与顾客的交流和合作,因为“我觉得”和“顾客觉得”是两码事。

6. 团队企业微信群

7. 团队特色描述:

  • 团队特点:思维活跃,特点分明,分工明确。
  • 核心竞争力:团队组建的时间久,合作的范围广,相互了解。

任务三

1. 记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间


任务 实际花费时间(min)
团队名称 5
团队成员组成 10
团队成员风采 10
第5章内容的阅读 15
MSF的学习 30
团队企业微信群 2
特色描述 5

2. 总结

   在本次作业中,我选择了一组完成质量较高的小组项目成果进行测试、复审,代码运行非常成功,项目功能也十分完善,学习到了新的知识,反思了自身的不足,之后应努力向做的好的同学看齐。本次组建团队十分顺利,因为团队成员有过合作完成项目的经历,彼此熟悉,团队相处十分融洽,希望在今后的合作会更加愉快默契。

posted @ 2022-04-12 01:12  初晴弥可喜  阅读(16)  评论(0编辑  收藏  举报