本文共 1804 字,大约阅读时间需要 6 分钟。
本节书摘来自异步社区《软件工程(第4版?修订版)》一书中的第1章1.7节开发团队的成员,作者【美】Shari Lawrence Pfleeger , 【加】Joanne M.Atlee,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.7 开发团队的成员
软件工程(第4版•修订版)在本章的前面,我们看到客户、用户和开发人员在新产品的定义和创建中发挥着重要的作用。开发人员是软件工程师,但是,每一位工程师可能都只擅长于软件开发的某一特定方面。因此,我们在此更深入、详细地讨论开发团队成员的角色。任何开发过程的第一步都是找出客户想要什么,并且将需求文档化。正如我们已经看到的,分析就是把事物分解成其组成部分的过程,以便我们能够更好地理解它们。因此,开发团队包含一个或多个需求分析员跟客户一起工作,并且把客户想要的分解为离散的需求。
一旦了解了需求并且把需求文档化,分析员就与设计人员一起工作,生成系统层描述(系统要做什么);然后,设计人员与程序员一起工作,以程序员能够编写实现指定需求的代码行的方式来描述系统。
生成代码之后,必须对它进行测试。通常,第一次测试由程序员自己完成;有时,也使用另外的测试人员帮助程序员发现他们忽略的错误。当代码单元被集成为一个个运行的功能组时,测试人员小组与实现小组会在各部分组合构建系统的过程中,验证系统是否能够正确运行,是否符合规格说明。
当开发团队对系统的功能和质量感到满意时,注意力就转向了客户。测试小组和客户一起验证整个系统是否是客户想要的系统。他们通过把系统如何工作与最初需求规格说明进行比较,来完成这项工作;然后,培训人员向用户说明如何使用这个系统。
就很多软件系统而言,客户的验收并不意味着开发工作的结束。如果在系统验收之后发现了故障,维护小组就要修复它们。另外,随着时间的推移,客户的需求可能会发生变化,系统也必须进行相应的改变。因此,维护可能涉及分析人员,由分析人员决定增加或变更哪些需求;还可能涉及设计人员,由设计人员确定改变系统哪个部分的设计;还可能涉及实现这些变化的程序员,确保改动后的系统仍然正确运行的测试人员,以及向用户解释这些变化如何影响系统使用的培训人员。图1-11说明了开发团队的角色与开发步骤的对应关系。
就课程项目而言,学生通常会自己工作或者在一个开发团队的小组中工作。教师所要求的文档是最少的,学生常常不需要编写用户手册或培训文档。再者,布置的作业是相对稳定的,需求在项目的生命周期中不会发生变化。最后,学生构建的系统很可能在课程结束后就丢弃掉,他们的目的是证明他们的能力,而不必为实际的客户解决问题。因此,对于课程项目而言,程序规模、系统复杂性、文档化的需要以及可维护性的需要都是相对很少的。
资料管理员负责准备和存储在系统生命周期中用到的文档,包括需求规格说明、设计描述、程序文档、培训手册、测试数据、进度等。与资料管理员一起工作的是配置管理小组的成员。配置管理涉及维护需求、设计、实现和测试之间的对应关系。根据这种交叉引用,开发人员可以得知,如果需要改变需求,相应地要改变什么程序;或者如果提议进行某种改变,会影响到程序的哪一部分。配置管理成员还要协调可能建立或支持的系统的不同版本。例如,一个软件系统可能要运行在不同的平台上,或者按一系列不同的发布进行交付。配置管理要确保各个平台上系统的功能都是一致的,而且新发布的功能不会降级。
开发角色可由一个人或几个人承担。就小型项目而言,两三个人就可以承担所有角色。然而,对大型项目,通常要根据开发中的职责,把开发团队分成不同的小组。有时,维护系统的人员与最初设计和编写系统的人员是不同的。对某些规模巨大的开发项目来讲,客户甚至会雇佣一家公司做最初的开发,而用另外一家公司进行维护工作。我们在后面的章节中讨论开发和维护活动时,会讨论每种类型的开发角色需要哪些技能。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。