项目 | 内容 |
---|---|
课程班级博客链接 | 课程班级博客链接 |
这个作业要求链接 | 作业要求链接 |
团队名称 | 佩琪小分队 |
团队的课程学习目标 | 1、通过团队项目学习软件工程 2、通过团队项目对软件开发有更深的认识 3、通过团队项目学习GitHub的一些团队操作 4、通过团队项目体会团队合作的优势 |
这个作业在哪些方面帮助团队实现学习目标 | 1、通过对完成质量较高的小组项目进行克隆并查找bug,对背包问题有了更深的理解; 2、通过团队合作学习对软件工程课程有更深的认识 3、明白了团队合作开发对软件项目的帮助; 4.、理解了一个团队中目标统一的重要性; |
团队博客链接 | 团队博客链接 |
任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业
-
对博文作业进行阅读,并结合评分要求进行评论
-
评论内容:
- 克隆源码
#导入时间包,便于记录动态规划法和回溯法所用时间
import time
#导入pandas,需使用dataframe类型
import pandas as pd
#导入可视化包,用于绘制散点图
get_ipython().run_line_magic('matplotlib', 'inline')
import matplotlib.pyplot as plt
- 运行代码
-
项目bug
- 遗传算法没有保存数据日志;
- 回溯算法求解过程太长,时间复杂度较大;
- js、css、html接口存在问题,运行时出现错误;
- 绘制散点图时点较多时难以区分,点的面积较大;
- 没有实现前端功能。
-
项目复审核查表
复审核查项 评价 代码能符合需求和规格说明么? 是 代码设计是否有周全的考虑? 否 代码可读性如何? 较好 代码容易维护么? 容易维护 代码的每一行都执行并检查过了吗? 是 设计是否遵从已知的设计模式或项目中常用的模式? 是 有没有硬编码或字符串/数字等存在? 否 代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)? 否 在本项目中是否存在类似的功能可以调用而不用全部重新实现? 是 有没有无用的代码可以清除? 没有 修改的部分符合代码标准和风格么(详细条文略)? 符合 有没有对错误进行处理? 没有 参数传递有无错误? 没有错误 循环有没有可能出现死循环? 没有 有没有使用断言(Assert)来保证我们认为不变的条件真的满足? 没有 有没有可能导致资源泄露? 有可能 数据结构中是否有无用的元素? 是 代码中,特别是循环中是否有明显可优化的部分? 否 对于系统和网络调用是否会超时? 否 代码是否需要更新或创建新的单元测试? 否 -
阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
-
体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
-
总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
- 任务三所要求的功能已经基本实现,但也有个别功能不够完善,比如各项功能无法在前端实现;
- 数据处理简单有效,值得学习,但是界面友好程度不足,遗传算法不够成熟;
- 改进界面的友好程度,进一步改进遗传算法,对于每个算法的时间复杂度较大,很是占用资源,希望可以改进;
-
从职业、学历、年龄、专业、爱好、收入等方面概括任务3所研发软件产品的典型用户群特征,他们表面需求,潜在需求是什么?
- 职业:算法初学者
- 学历:大学二年级
- 专业:计算机相关专业
- 爱好:喜欢研究算法
- 收入:无要求
- 表面需求:D{0-1}KP算法求解以及前端设计;
- 潜在需求:回溯算法、动态规划算法以及遗传算法的时间、空间复杂度对比分析
-
-
经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论:
-
结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
- 算法复杂度较高,对于时间复杂度可以通过减少无用变量等方法降低时间、空间复杂度
- 界面的友好程度可以继续改进
- 学习克隆小组的数据处理方法,降低复杂度
- 完善自己团队的要求功能
任务二:团队组建
-
团队共有的特点
(1)团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作;
(2)团队成员有一定的分工,互相依赖合作,共同完成任务。 -
软件团队的模式
(1)主治医师模式:首席程序员负责主要模块的设计与编码,其他成员从不同角度提供支持;
(2)明星模式:主治医师模式运用的极点,团队“明星”的能力掩盖了团队所有人的缺陷与优点;
(3)社区模式:成员分布不受时间空间的限制,所有人根据喜好选择项目进行开发,一般不要求报酬;
(4)业余剧团模式:没有固定的团队,且成员在不同的项目中没有固定的工作分配,所有成员由“中央指挥”指示;
(5)秘密团队:秘密状态下进行,无外界干扰,团队肩负独特使命,内部成员自由度与热情较高;
(6)特工团队:团队由专业人士组成,负责一些紧急问题的解决;
(7)交响乐团模式:较多大型软件公司采用,成员与领导者能力较强且有相似的项目开发经验,所有成员各司其职但统一受领导者指挥;
(8)爵士乐模式:与交响乐团模式对立,较为松散,领导者完成框架,其他成员在此基础上创作,最后再由领导者收尾;
(9)功能团队模式:没有固定的团队,由不同能力的成员进行组合,协作完成某一项目,项目完成后成员重新组织进行其它不同项目;
(10)官僚模式:脱胎于大机构的组织架构,几人向小头目报告,小头目向大头目报告。容易形成恶性竞争。 -
瀑布模型以及各种变形
- 特点:重计划、重事先设计、重文档表达。
- 统一流程工作流:
业务建模——需求——分析和设计——实现——测试——部署——配置和变更管理——项目管理——环境——初始阶段——细化阶段——构造阶段——交付阶段 - TSP原则
- 使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的;
- 团队的各个成员对团队的目标、角色、产品都有统一的理解;
- 尽量使用成熟的技术和做法;
- 尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
- 制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定;
- 增加团队的自我管理能力;
- 专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作。
-
队名;
- 佩琪小分队
- 佩琪小分队
-
团队成员组成,按以下列表形式给出,个人博客地址需加超链接,在备注中标记团队组长(PM);
成员学号 成员姓名 个人博客地址 备注 30109 *诚 https://www.cnblogs.com/hc82/ 组长 30133 *作朝 https://www.cnblogs.com/zuochao/ 开发 30140 *婷婷 https://www.cnblogs.com/ztt0808/ 文档 30118 *云云 https://www.cnblogs.com/lyy-942 测试 -
成员风采:介绍每位队员的风格、擅长技术、编程兴趣、希望的承担的软工角色(文档、开发、测试、PM等)、一句话宣言等;
成员 风格 擅长技术 编程兴趣 希望承担的软工角色 宣言 *诚 动手能力较强,善于沟通,乐于交际 python 爬虫 PM 我曾踏足山巅,也曾进入低谷,二者都让我受益良多 *作朝 认真严谨,韧性十足,有较强的团队精神 python python 开发 只要路是对的,就不怕路远 *婷婷 积极向上,善于思考,有较强的上进心,具有吃苦耐劳的精神,做事细心谨慎,责任心强。 Python web前端 文档 人生在勤,不索何获 *云云 仔细认真,积极主动,性格开朗,待人友好,良好的沟通能力 python python 测试 两粒种子,一片深林 -
MSF(Microsoft Solution Framework):微软解决方案框架,也就是微软推荐的软件开发方法。
- 9点基本原则
- 推动信息共享与沟通(Foster open communications)
- 为共同的远景而工作(Work toward a shared vision)
- 充分授权和信任(Empower team members)
- 各司其职,为项目共同负责(Establish clear accountability and shared responsibility)
- 交付增量的价值(Deliver incremental value)
- 保持敏捷,预期和适应变化(Stay agile,expect and adapt change)
- 投资质量(Invest in quality)
- 学习所有的经验(Learn from all experiences)
- 与顾客合作(Partner with internal and external customers)
- 9点基本原则
-
团队成员绩效
- 在MSF团队模型中,任何技术项目都必须达到特定的关键质量目标,才能够被认为是成功的项目。任何一个角色无法实现其目标,都将危机整个项目。因此,每个角色都被认为是同等重要的,重要的决定都要共同做出。
-
团队特色描述,言简意赅的描述团队特点或核心竞争力;
- 清晰的目标
- 相互的信任
- 成熟的技能
- 良好的沟通
任务3:完成《实验四 团队作业1:软件研发团队组建》博文作业
-
记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间;:
任务 完成时间(h) 任务一 3 任务二 2 任务三 1
任务4:总结
通过本次实验,我了解了团队模式以及MSF,同时组建了一支团队,对于初创团队,我认为信任与分工甚是重要,需要根据每个成员的擅长领域,性格特征来分配团队任务,完成团队项目,这对每个成员都要求具有较强的团队精神与合作意识。同时通过查找别人作业bug,能够很清楚的认识自己的不足,能够很好地量化作业完成度,希望再以后的学习中再接再厉,继续加油!