博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《软件工程(第4版?修订版)》—第1章1.4节软件工程涉及的人员
阅读量:6985 次
发布时间:2019-06-27

本文共 1491 字,大约阅读时间需要 4 分钟。

本节书摘来自异步社区《软件工程(第4版?修订版)》一书中的第1章1.4节软件工程涉及的人员,作者【美】Shari Lawrence Pfleeger , 【加】Joanne M.Atlee,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 软件工程涉及的人员

软件工程(第4版•修订版)
软件开发的一个关键部分是客户与开发人员之间的交流,如果交流失败,那么系统也将失败。必须在构建有助于解决问题的系统之前,理解客户想要什么以及他们需要什么。要做到这一点,我们把讨论的重点转向软件开发所涉及的人员。

从事软件开发工作的人员数目取决于项目的规模和难易程度,然而,不论涉及多少人,都可以区分他们在整个项目生命周期中的角色。因此,对于一个大型项目,一个人或一个小组可能被确定地指派为某一个角色;而在小型项目中,一个人或一个小组可以一次承担几个角色。

通常情况下,参与项目的人员分为三类:客户、用户或开发人员。客户(customer)是为将要开发的软件系统支付费用的公司、组织或个人。开发人员(developer)是为客户构建软件系统的公司、组织或个人,其中包括协调并指导程序员和测试人员的管理人员。用户(user)是将实际使用系统的人,包括坐在终端前的人、提交数据的人或阅读输出的人。尽管就某些项目而言,客户、用户、开发人员是同一个人或同一组人,但多数情况下,他们还是各不相同的。图1-7显示了这三类参与人员之间的基本关系。

05faa25c4cd973b985184d069ad73f8ab13c8d31
客户控制着资金,常常进行合同谈判并在验收文件上签字。但是,有时候客户并不是用户。例如,假定Wittenberg Water Works与Gentle Systems,Inc.签订了一份合同,要为公司建立计算机化的会计系统。Wittenberg的总裁可以向Gentle Systems,Inc.的代表明确地描述他需要什么,并且他将要签订这份合同。但是,总裁并不直接使用这个会计系统,用户将是簿记员或会计职员。因此,开发人员确切地理解客户和用户想要什么以及需要什么是非常重要的。

另一方面,假定Wittenberg Water Works是一家大型公司,它有自己的计算机系统开发部门。该部门可能决定它需要一个自动化的工具来记录其项目的成本和进度,并且决定自己构建这个工具。此时,该部门既是用户、客户,同时也是开发人员。

近几年,客户、用户和开发人员之间的这种简单的区别变得越来越复杂。客户和用户以各种方式介入到开发过程中。客户可能决定购买商业现货(Commercial Off-The-Shelf,COTS)软件,并合成到开发人员将要提供和支持的最终产品中。当发生这种情况的时候,客户会介入到系统体系结构的决策中,并且对开发过程有很多约束。类似地,开发人员可能决定使用额外的开发人员,后者称为分包商(subcontractor),分包商构建子系统并把它交付给开发人员,这些子系统包含在最终产品中。分包商可以与主开发人员在同一地点工作,他们也可能在不同的地点与主开发人员协调地工作,并在开发过程后期交付子系统。子系统可能是个交钥匙系统(turnkey system),其代码是一个合并的整体(不需要集成额外的代码),或者它可能需要一个单独的集成过程将主系统和子系统链接起来。

因此,在软件工程中,“系统”的概念不仅对理解问题分析或解决方案的合成是重要的,对组织开发过程以及为参与者分配合适的角色同样重要。在下一节,我们会讨论好的软件工程实践中系统方法的作用。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

你可能感兴趣的文章
到底怎么样才叫看书?
查看>>
python 将ipv4的格式转换
查看>>
C语言宏的副作用的简单实例
查看>>
关于C语言结构体对齐的学习
查看>>
富文本框
查看>>
windows下安装rabbitMQ
查看>>
20个优秀的移动(iPhone)网站设计案例
查看>>
week04_python函数返回值、作用域
查看>>
CentOS 6.3安装Nginx开启目录浏览、下载功能
查看>>
oracle登陆认证方式
查看>>
FMDB/SQLCipher数据库管理
查看>>
cocos_python
查看>>
关于安装oracle 11G R2 for Windows X64问题
查看>>
springmvc 重定向传递参数
查看>>
tomcat实现session集群及tomcat+memcached共享session存储(四)
查看>>
线性时间排序--桶排
查看>>
Three.js学习笔记
查看>>
ceph-deploy部署bluestore
查看>>
AIX修改系统时间 命令
查看>>
CI Weekly #22 | flow.ci 新版 iOS 构建流程的 4 大变化
查看>>