本文共 1491 字,大约阅读时间需要 4 分钟。
本节书摘来自异步社区《软件工程(第4版?修订版)》一书中的第1章1.4节软件工程涉及的人员,作者【美】Shari Lawrence Pfleeger , 【加】Joanne M.Atlee,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.4 软件工程涉及的人员
软件工程(第4版•修订版)软件开发的一个关键部分是客户与开发人员之间的交流,如果交流失败,那么系统也将失败。必须在构建有助于解决问题的系统之前,理解客户想要什么以及他们需要什么。要做到这一点,我们把讨论的重点转向软件开发所涉及的人员。从事软件开发工作的人员数目取决于项目的规模和难易程度,然而,不论涉及多少人,都可以区分他们在整个项目生命周期中的角色。因此,对于一个大型项目,一个人或一个小组可能被确定地指派为某一个角色;而在小型项目中,一个人或一个小组可以一次承担几个角色。
通常情况下,参与项目的人员分为三类:客户、用户或开发人员。客户(customer)是为将要开发的软件系统支付费用的公司、组织或个人。开发人员(developer)是为客户构建软件系统的公司、组织或个人,其中包括协调并指导程序员和测试人员的管理人员。用户(user)是将实际使用系统的人,包括坐在终端前的人、提交数据的人或阅读输出的人。尽管就某些项目而言,客户、用户、开发人员是同一个人或同一组人,但多数情况下,他们还是各不相同的。图1-7显示了这三类参与人员之间的基本关系。
另一方面,假定Wittenberg Water Works是一家大型公司,它有自己的计算机系统开发部门。该部门可能决定它需要一个自动化的工具来记录其项目的成本和进度,并且决定自己构建这个工具。此时,该部门既是用户、客户,同时也是开发人员。
近几年,客户、用户和开发人员之间的这种简单的区别变得越来越复杂。客户和用户以各种方式介入到开发过程中。客户可能决定购买商业现货(Commercial Off-The-Shelf,COTS)软件,并合成到开发人员将要提供和支持的最终产品中。当发生这种情况的时候,客户会介入到系统体系结构的决策中,并且对开发过程有很多约束。类似地,开发人员可能决定使用额外的开发人员,后者称为分包商(subcontractor),分包商构建子系统并把它交付给开发人员,这些子系统包含在最终产品中。分包商可以与主开发人员在同一地点工作,他们也可能在不同的地点与主开发人员协调地工作,并在开发过程后期交付子系统。子系统可能是个交钥匙系统(turnkey system),其代码是一个合并的整体(不需要集成额外的代码),或者它可能需要一个单独的集成过程将主系统和子系统链接起来。
因此,在软件工程中,“系统”的概念不仅对理解问题分析或解决方案的合成是重要的,对组织开发过程以及为参与者分配合适的角色同样重要。在下一节,我们会讨论好的软件工程实践中系统方法的作用。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。