第二次作业 第八组

 

团队:一致的集体目标,各自分工、互相依赖合作,共同完成任务。
一、软件开发流程
  通过阅读博客的方式了解到工业界的软件团队他们的软件开发流程:
(一)需求分析
  1.相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,这一步里可以初步定义好少量的界面。
  2.系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
  3.系统分析员向用户再次确认需求。
(二)概要设计
  首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
(三)详细设计
  在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。
(四)编码
  在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
(五)测试
  测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。软件测试有很多种:按照测试执行方,可以分为内部测试和外部测试;按照测试范围,可以分为模块测试和整体联调;按照测试条件,可以分为正常操作情况测试和异常情况测试;按照测试的输入范围,可以分为全覆盖测试和抽样测试。
(六)软件交付
  在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。
(七)验收
  用户验收。
(八)维护
  根据用户需求的变化或环境的变化,对应用程序进行全部或部分的修改。
                                         
二、常见团队类型:
1.主治医师模式(ChiefProgrammer Team, SurgicalTeam)
  容易退化“一个干活,其他酱油”
2.明星模式(Super- -star Model)
  明星的光芒盖住了整个团队。
3.社区模式(Community Model)
  “ 众人拾柴火焰高”,“社区”并不意味着“随意”。
4.业余剧团模式(AmateurTheater Team)
  不同的人会挑选不同的角色,听从导演的指导和安排。
5.秘密团队(Skunk Work Team)
  团队内部有极大的自由,没有外界的干扰。
6.特工团队(SWAT)
  团队由一些有特殊技能的专业人士组成,负责解决一些棘手而有紧迫性的问题。
7.交响乐团模式(Orchestra)
  当某个软件领域处于稳定成长阶段的时候,众多大型软件公司的开发团队就会采取这种模式,例如微软公司的Office软件。
8.爵土乐模式(Jazz Band)
  强调个性化的表达,强有力的互动,对变化的内容有创意的回应。这看上去跟“敏捷的开发模式”有点类似。
9.功能团队模式(Feature Team)
  具备不同能力的同事们平等协作,共同完成一个功能。
10.官僚模式(BureaucraticModel)
  脱胎于大机构的组织架构。

三、理想团队应该具有以下两个条件。
其一:具有一致的目标且团队分工明确,可以不同时工作但效率高。
其二:团队成员有各自的分工, 互相依赖合作, 共同完成任务。具有一致的目标能让团队团结,减少团队分裂或产生歧义,分工明确能让团队井然有序的运行。

经过小组投票选出最喜欢的两种模式即爵土乐模式和功能团队模式。
  1.爵土乐模式:与交响乐模式存在相当多的对立,就像是领导给出一个主题可以即兴发挥,不受限制,和组员的交流,互动最多,较高的热情,没有外面的干扰。然后成员们百花齐放,各显本领,快收尾时再总结。这种模式更加偏向于鼓励创新互动,人数不能太多符合我们组员少的情况。没有现场指挥,也就是没有首席程序员。需要整个团队水平,能力相当。
  2.功能团队模式:学生现阶段在专业技能方面较于专业人员还是有较大差距的,所以最好以团队讨论合作的方式为主,且提供给每个成员不同的任务,让大家对软件开发有一个系统全面的认识。功能模式比较适合学生创立团队,每个人都有自己的长处,发挥自己的优势,具备不同能力的同学平等协作,共同完成一个功能,这样可以使每个人都发挥自己长处,在这个功能完成之后,这些人又重新组织,和别的角色去完成下一个功能,他们之间没有管理与被管理的关系,人人平等,没有管理与被管理的关系。优点是小组间交流比较频繁,不同能力的人可以平等协作共同完成一个功能并且完成一个工作后可以再和别人完成另外的工作,效率较高。缺点是:要适应别人的编程规范。

posted @ 2019-10-12 18:17  Csey  阅读(186)  评论(1编辑  收藏  举报