课件
四世界模型
在需求的获取过程中,我们要考虑来自方方面面的限制和约束条件,Loucopoulos 和 Karakostas 提出的四世界模型,有助于我们识别来自不同维度的问题:
该模型将问题领域分为四个世界,包括主题世界、应用世界、系统世界和开发世界,通过对四个世界的分别的处理能够有效地考虑到来自四个方面的主要的待解决的问题。
- 在主题世界中我们主要关注的是系统关注的主题内容。比如对一个银行信息系统来说我们关注的是顾客、账号和各类交易;
- 应用世界则是系统未来的操作环境,在应用世界中我们要关注的主要是人和企业的流程,关注经理、职员、顾客、存款、取款等活动;
- 系统世界是指系统在操作环境下所有的内部操作,包括系统要将交易纪录保存在数据库中,要对指定的账号交易进行报告,给出账户的明细等等;
- 开发世界关注的是软件系统的开发过程,项目的团队、人员、进度、安全、性能等质量要求。例如系统要在 12 个月内交付使用,这是开发世界要关注的问题;
有了四世界模型,我们可以很好地对问题的本质以及关注的对象进行分别处理。
出发点
项目开始的时候,如何着手开始获取需求?这里有几个主要的出发点:
- 确定干系人:这里需要强调与客户之间的联络关系,系统的设计到底与谁的利益息息相关
- 定义边界:怎样界定问题的范围?
- 定义系统的目标与情景实例:目标与情景实例是组织原始需求信息的有效手段
- 分析系统的可行性:如何进行可行性研究?如何选择好的项目?
- 分析可能存在的风险:风险管理应长期、持续进行,而非阶段性、一次性的任务。要进行灾难及事故分析,以确定风险
干系人
干系人这说法来自英文单词 Stakeholders,该单词本身的含义是对一件事有决策权的人。干系人也不例外,他是对我们的软件项目有话语权、有决策影响的人,找出所有的干系人对于项目的成功有重要的意义。
我们可以通过四世界模型来分析,它隶属于哪个世界,从而推导出它关注的是哪些问题。
举例:
- 用户:关心新系统特征和功能
- 设计师:想要构造完美的系统,尽量重用已有的代码
- 系统分析师:想要获取正确的需求
- 培训与用户支持人员:确保系统可用和可管理
- 业务分析师:想确保“我们做得比竞争对手好”
- 技术文档作者:为系统准备用户手册及其他相关文档
- 项目经理:希望按时、按预算、按目标完成项目
- 客户:为新系统买单的人
干系人识别最主要的就是要强调和用户之间的联络关系,要保证系统设计息息相关的人他们的意愿能够体现到我们的需求中来。
需求的必要性
需求定义过程中,客户与干系人的参与是至关重要的,不明确的需求定义及随意的需求变更会产生以下问题:
- 客户产生不满或者纠纷
- 不切实际的估算、承诺
- 项目延期、超支
- 项目结束遥遥无期
- 项目团队精疲力竭
- ……
需求过程中常见的问题包括:
- 产品设计目标不明确
- 干系人参与不足
- 干系人之间缺少共识
- 需求定义画蛇添足
- 需求快速变化
- 变更管理不足
- 需求分析不足
需求内容来源
需求获取的内容主要来自:
- 干系人
- 企业的业务过程
- 组织规章制度
- 现有系统
针对这几个需求来源,我们采取的获取手段是不一样的:
- 干系人主要通过沟通和交流的方法;
- 业务过程主要是采用建模和分析的方法;
- 组织规章制度主要是通过文本阅读、文档的处理等,了解其组织规范、协议、技术标准;
- 对现有系统可以参照它的用户手册、数据样本、界面描述、报告样本、屏幕截图,对现有参照物做分析和差异性的比较;
干系人识别
干系人识别是要找出任何和系统有关的人,有可能是资方、客户、系统用户、领域专家、项目研发团队,它可以来自四个世界的任何一个可能的世界。
识别干系人时,我们要提的问题包括:
- 产品谁来用?
- 输入谁提供?
- 输出谁要用?
- 谁监管?
- 影响谁?
- 奖励谁?
- 惩罚谁?
召集单个或一组干系人一起定义系统细节的时候,以下三个目标要达成一致:
- 从容户或用户角度看,什么是一个可接受的高质量的系统
- 通过第一点的目标,来提高用户满意度
- 通过客户、用户的参与,达到系统教育与培训目的
没有用户参与和有用户参与的需求获取结果如上图所示,有用户参与的需求获取它原始需求和真实需求之间的差异明显变小。
总之干系人的参与是项目成功的必要因素,他们的参与丰富了我们对系统信息和内容的获取,提升了所获取到的系统信息的质量,提升了系统的生产率,同时加深他们和我们自身对系统的理解,促进我们和客户达成共识,使得客户更希望系统成功,增强成功信心,共同确定了系统的边界,促进了需求质量的提升,提高了团队的整体性。
业务过程
需求获取的另一个来源是业务过程。它是对现有业务过程的分析,这样有助于识别业务问题并加以改进。主要内容包括:
- 首先找出并列举当前业务过程中的问题
- 接着分析问题的本质,是由于造漏还是不好用还是有新需求?
- 之后分析改进的机会和空间,并给出改进的实质,是在完成自动化过程还是在优化和改进现有的流程
组织规章制度
通常的组织规章制度定义的是当前该领域的最佳实践。
分析规章制度有益于确定业务规则和约束条件,其中:
- 业务规则描述的是对业务过程的要求,如系统支撑的业务过程的结构、控制流程、预期效果等等
- 约束则是对系统开发过程的管理限制,涉及经济、政治、技术、环境四个方面,包括项目资源、时间、目标环境及系统本身
组织规章中往往还涉及过程自动化、工作流、关系、交互等内容。总之,组织规章制度为我们提供了一个客观的可参照的依据。
现有系统
分析现有系统有助于了解未来系统的工作数据,包括:
- 数据对象
- 数据关系
- 数据库结构与系统结构
- 系统报告
现有系统与未来系统共享工作环境,共享数据对象,因此从对现有数据的了解,我们能够构想未来系统的雏形,并且找出差异的需求,从而更好地对未来系统进行规划。