项目 | 内容 |
---|---|
课程班级博客 | 班级博客 |
这个作业要求链接 | 作业要求 |
团队名称 | 鲤鱼跃龙门 |
团队的课程学习目标 | 1、通过团队协作,熟悉团队,在团队中发挥自己的力量 2、提高团队协作能力 和团队凝聚力,为以后的项目编写打下基础 3、在团队中学习其他团队成员的优点,提高自己的学习能力 |
这个作业在哪些方面帮助团队实现学习目标 | 1、通过对其他伙伴实验三的阅读,发现别人的优点,找到自己的不足 ,提高自我能力 2、通过对《现代软件工程—构建之法》章节内容的阅读了解了软件的使用过程等相关内容 3、通过团队对团队成员的熟悉与了解,为以后团队协作做好准备 4、学习其他同学的代码编程和博客编写的优点 |
团队博客链接 | 团队博客 |
博客正文
- 任务1:浏览班级博客园中提交《实验三 软件工程结对项目》作业,任选一个你认为完成质量较高的小组项目成果,继续以实验三结对学习方式完成以下任务,具体要求如下:
1.1 博客评论截图:
1.2 博客评论链接
作业评论
1.3 被评论作业的Github项目仓库链接
项目仓库
(2)克隆任务3项目源码到本地机器,阅读并运行代码,找出项目代码的5个以上bug,参照《现代软件工程—构建之法》4.4.3节核查表复审项目代码并记录。
- 找出项目代码的bug
- 代码设计中大部分内容遵从已知的设计模式,但有一小部分未遵从设计模式。
- 代码依赖于Windows系统,可能会影响代码的移植。
- 新写的代码有部分不可用用已有的Library/SDK/Framework中的功能实现。
- 未使用断言(Assert)来保证我们认为不变的条件。
- 边界条件未做具体的处理的,未使用Switch语句。
- 代码复审的核查表如下:
复审部分 | 复审情况说明 |
---|---|
概要部分 | 1. 代码编写符合读出文件中的具体数据和画出散列图。 2. 代码可读性较好,注释也简单易懂。 3. 代码容易维护。 4.代码未出现错误。 |
设计规范部分 | 1.设计大部分内容遵从已知的设计模式,但有一小部分未遵从 2.没有无用的代码可以清除。 3.开发者新写的代码有些不可用已有的Library/SDK/Framework中的功能实现 |
代码规范部分 | 符合代码标准和规范 |
具体代码部分 | 1.参数传递中存在小的错误,字符串的长度是以0开始计数的。 2.没有边界条件的处理,没有使用Switch语句 3.没有使用断言(Assert)。 4.数据结构中没有无用的元素。 |
效能 | 1.代码的效能较好。 2.代码中没有有明显可优化的部分。 3.系统和网络调用不会超时。 |
可读性 | 代码注释较多,可读性较好 |
可测试性 | 代码不需要更新或创建新的单元测试。 |
(3)阅读《现代软件工程—构建之法》第12章内容,完成以下分析任务:
A. 体验任务3实现软件功能,简要描述软件的使用过程,上传使用软件的照片;
- 使用python后台软件与SQL server进行代码编写,使用Matplotlib进行画图,调节相应编程环境,进行数据库的建立链接,插入数据,成功链接数据库后进行相关操作。
- 软件使用图片
python与sql server连接需要导入模板pymssql截图:
数据库链接成功截图:
登录界面截图:
B. 总结任务3要求的功能软件解决了吗?软件在数据量/界面/功能上各有什么优缺点?对该软件产品功能有什么改进意见?
- 任务三要求的功能软件有些还是没有解决,但是基本都实现了。
- 软件的登录界面较为简单可爱,可以提高用户的使用率;功能上实现了一部分,有些没有实现,在使用过程中系统和网络调用不会超时,可以在功能方面再有所改善就更好了,在代码编写过程中使用Python语言编写较为简单易懂值得我借鉴和学习。
(4)经过(1)—(3)的工作,你们一定有充分的理由给评价作业选择一个结论: a) 非常不推荐 b) 不推荐 c) 一般 d) 好,不错 e) 非常推荐
经过自己的体验,我觉得这个项目在使用过程中虽然有些功能未实现,但使用较为简单,所以我的评价是d) 好,不错。
(5)结合(1)—(3)的评论体会,迭代改进本小组实验三任务3。
- 任务2:团队组建
1、团队成员:我和王方与张潇潇、刘兴瑞一组组建软件项目研发团队。
2、团队组建的相关内容在团队博客中呈现:团队组建
3、阅读《现代软件工程—构建之法》第5章内容
本章主要讲了一些典型的软件团队模式和开发流程以及它们的优缺点,主要内容如下:
1.团队的共同特点:
-
应该有一致的集体目标,团队要一起完成这目标
-
团队成员有各自的分工,互相依赖合作,共同完成任务
2.软件团队的模式
-
主治医师模式(有首席工程师,其他成员支持其工作);明星模式;社区模式;
-
业余剧团模式;秘密团队(软件项目在秘密状态下进行);
-
特工团队(由特殊技能的专业人士组成);交响乐团模式(各司其职,重在执行);
-
爵士乐模式;功能团队模式(平等协作,共同完成);官僚模式
3.开发流程
- 写了再改模式
适用于:只用一次的程序;看过了就扔的原型;一些不实用的演示程序
- 瀑布模型
适用于:
-
如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步的验证
-
产品模块之间的接口、输入和输出能很好地用形式化的方法定义和验证
-
使用的技术非常成熟,团队成员都很熟悉这些技术
-
负责各个步骤的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流
4.统一流程
从瀑布模型开始的各种模型都有一个共同点:重计划,重事先设计,重文档表达。
RUP把软件开发的各个阶段整合在一个统一的框架里
四个阶段:
-
初始阶段:此阶段的目标是分析软件系统大概的构成,系统与外部系统的边界在哪里,大致的成本和预算是多少,系统的风险主要来自哪里。
-
细化阶段:它的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,按优先级处理项目中的风险。
-
构造阶段:开发出所有的功能集,并有秩序地把功能集成为经过各种测试验证过的产品。
-
交付阶段:重点是确保软件能满足最终用户的实际需求。基于用户的反馈,团队利用迭代对系统进行修改、调整。除了对功能的调整,还要注意处理用户设置、安装和可用性等问题。
理解:
软件的团队模式和软件的开发流程,一个良好的团队模式和开发流程能够使软件开发事半功倍。
团队成员有各自的分工,互相依赖合作,共同完成任务,软件团队有各种形式,适用于不同的人员和需求,基于直觉形成的团队模式未必是最合适的。本章5.2节中提到的团队模式有主治医师模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐团模式等等,有这么多的团队模式,那哪一种模式才适合某个团队呢,是自然形成的与以上或未提及的团队模式相似的模式好,还是在进行组织团队时就定好一个团队模式方向去发展好,但是每个团队都有各自的特殊性,不一定会按照原方向发展。书中还提到很多软件公司的团队最后都演变成功能团队,简而言之,就是具备不同能力的同事们平等协作, 共同完成一个功能。那就是说大部分的团队都会往功能团队模式发展。
一支程序开发团队之所以成立,是为了承担并完成某项由任何个人都无法独立完成的任务。因为只有团队合作,才能将复杂的事情变得简单,将简单的事情变得容易,使做事的效率倍增,可以说,团队合作正推动企业向简单化、专业化、标准化的方向发展。在软件这个特殊的行业,更需要如此,国内的软件企业长不大,出不了好的产品,第一大原因就是管理,第二大原因可能就是没有一个出色的团队。组建团队的目的是希望通过最小的代价获得最佳的开发效果。不管怎样只要是团队中的每个人能做好自己的事情,并能不断的和别人交流,那么这个团队就是成功的。
常见问题:
1、团队模式和团队的开发模式之间的关系
团队模式主要取决于组成团队的成员,包括team leader以及team mates。其中,由于身处各个角色人员的性格,能力以及IQ,EQ等的不同,特别是team leader的上述这些“属性”,会往往决定了一个团队的“士气”“面对困难坚持不懈的程度”等特点,即我们常说的“软实力”。而这样的软实力也往往会激发一个团队的巨大潜能,为企业创造出超乎想象的价值。
团队的开发模式与我们目前所熟知的软件开发模式,例如,瀑布、迭代、螺旋以及敏捷等等都密不可分,但它不同于单纯意义上的软件开发模式,因为这其中还加入了开发人员的因素,即“人”的因素。是更加贴近现实的,“接地气”的开发模式。
团队模式和团队开发模式这二者的关系可做一个比喻,即为:二者共同构成了一个人,而前者是大脑,后者是身体。身体是行动的发出者和执行者而后者是身体的控制者和调度者。同样是身体,有的团队可以开发出很有价值的软件,完成很困难的任务,并创造价值。而有的团队则做不到这一点。因为,所有的软件开发模式,只是单纯的考虑到开发效率等问题,而最终能否成功完成任务,从某种意义上说,完全取决于项目执行者,也就是团队模式。因此,我刚刚提到的软实力,就是一种无形的,蕴含于团队成员内心的力量,这股无形的力量却能决定一个团队能否做出有型的有价值的工作,将开发模式发挥的淋漓尽致。
2、如果你领头开展一个全新的项目,怎么选择“合适”的团队模式
根据团队的能力和项目的结构,选择合适的团队模式。如果大家都比较自觉,且其中有一人能力较强,就会选择主治医师模式。如果项目比较复杂且每个人都有自己熟悉的开发领域,会选择功能团队模式。如果项目在不同方向和领域都有任务,就会选交响乐团模式。如果是开放式项目,可能会选择爵士乐模式。如果开发的人非常多,会选择官僚模式。
3、不同的团队模式影响团队绩效的评估
主治医师主要看主刀医师的发挥以及其他人的配合;明星模式主要看明星的发挥;社区模式看大家的热情;业余剧团模式是锻炼人的学习能力,如果队员学习能力出色的话团队绩效会不错;秘密团队和特工团队主要看队员的能力;交响乐团模式看指挥员的指挥,一般绩效比较稳定;爵士乐模式看队员大家当时的状态;功能模式看功能的搭配;官僚模式看沟通。
- 任务3
- 满足任务2 评分要点的材料;
- 满足任务3 评分要点的材料;
- 记录完成《实验四 团队作业1:软件研发团队组建》各项任务实际花费的时间;
完成任务 | 完成时间(h) |
---|---|
任务1 | 6 |
任务2 | 5 |
任务1 | 3 |
- 谈谈完成本次作业的感受和体会。
在这次作业中,通过实验任务的驱动让我学习了其他优秀的同学的项目,通过对他们写博客的方式和项目代码的编写的学习,让我了解了自己在博客编写过程中和项目完成过程中的不足,学习了其他同学项目设计的优点,对我以后的项目实施起到了很大的作用;通过上次以结对编程的方式进行项目设计,让我体会到结对编程的特点及优势,希望在以后的学习过程中,能和项目团队合作共同进步,有更好的发展与进步。