技术开发 频道

需求捕获指南之需求捕获的问题及过程

【IT168 技术文章】

    4 Issues in Requirements Elicitation

    4、需求捕获的问题

    Eliciting requirements need not be like pulling teeth … but sometimes it is. The problem is lack of preparation by the software engineer and lack of interest by the organization or person requesting the work. One would think that the customer would be very interested, since the software to be built solves a problem that the customer has. But often, the customer expects the developer to "know" and has little interest in spending time doing "computer stuff." A mistake, no doubt, but reality none the less. One can use the Requirements Elicitation Success Measurement checklist to identify where your project stands as far as the success of the requirements elicitation is concerned. For this checklist, the more questions that elicit a negative response, the higher the risk that the requirements elicitation will fail.

    需求捕获不象是拔牙…但也比较类似。常见的问题是,软件工程师缺乏准备,同时需要该产品的组织或个人缺乏兴趣。一般大家都会认为客户会对产品很感兴趣,因为该产品会解决客户面临的问题。但通常客户希望开发人员已经知道相关知识或不愿意耗费时间为软件产品提供基础材料。无疑,这些观点是错误的 ,但是客观存在的。可以使用需求捕获列表来验证你的项目在需求捕获方面进展如何。在这个列表中,越多问题的答案是否定的,那么需求捕获失败的可能性就越高。

    Requirements engineering consists of activities like requirements elicitation, specification and validation.

    需求工程包括的活动有需求捕获,需求定义和需求验证。

    The hardest single part of building a software system is deciding what to build… … No other part of the work so cripples the resulting system, if done wrong. No other part is more difficult to rectify later.

    开发软件系统最艰难的部分在于确定要开发什么。而这一部分又最可能导致系统的失败,最难以在后继的工作中加以矫正。

    Issues involved in this problem area include:1. Achieving requirements completeness without unnecessarily constraining the system design 2. Analysis and validation difficulty 3 Changing requirements over time

    在需求的问题上有这样一些观点:

    1、到达需求的完整性会束缚系统设计。

    2、需求分析和验证比较困难。

    3、改变需求会消耗额外的时间。

    Many requirements errors are passed undetected to the later stages of the life cycle and correcting those errors during or after implementation phase is found to be extremely costly.

    许多未被发现的需求错误被传递到生命周期的后继阶段,在后继阶段更正这些错误将花费更多。

    Problems of RE can be grouped into three categories:。 Problems of scope, in which requirements may address too little or too much information。 Problems of understanding o Users have incomplete understanding of their needs o Analysts have poor knowledge of problem domain o Ease of omitting “obvious” information o Conflicting views of different users o Vague and un-testable requirements e.g. “user friendly” & “robust”

    Problems of volatility i.e. changing/evolving nature of requirements

    需求捕获的问题可以分为三类:

    范围的问题,需求陈述的信息过多或是过少。

    理解的问题:用户不完全理解自己的需要需求分析人员对于问题域缺乏足够的知识忽略一些“明显”的信息。

    不同用户的看法有冲突语句含糊和无法测试的需求。例如“用户界面友好”或“高性能”

    需求不稳定的问题。例如需求本身的改变/拓展。

    Elicitation techniques need to be broad enough to establish the boundary conditions for the target system, and yet focus on creation of requirements as opposed to design activities. RE must begin with an organizational and contextual analysis to determine the objectives and boundary of the target system. Avoiding contextual issues may result in incomplete, unusable and un-verifiable requirements.

    捕获需求的范围应比较宽广,这样可以为目标系统制定一个适当的边界。捕获需求注重于产生需求而不是设计活动。捕获需求一般从组织结构和上下文范围开始分析,来界定目标系统的边界。要避免上下文范围问题可能导致的不完全,不可用和无法验证的需求。

    Elicitation must focus on creation of requirements, not design activities in order to adequately address the users‘ concerns. Focus on broader design activities improperly emphasizes developers’ issues over users‘ needs and may result in poor requirements. Requirements in the form of high-level design run the risk of being un-verifiable by the user, as user might not understand the design language. There are at least three broad contexts concerned to RE:

    捕获专注于需求而不是设计,这是为了充分了解用户的关注点。专注于设计会不适当的强调开发问题而忽略用户的需要,导致失败的需求。需求中掺杂了设计,会使用户无法验证需求,同时用户可能无法理解设计方面的语言。在需求获取中有三个较大的领域需要特别注意:

    Organization o Submitters of the input to the target system o Users of the output of target system o Ways in which target system will change the organization’s means of doing business

    组织机构目标系统输入信息的提供人员使用目标系统输出信息的用户目标系统可能改变组织机构的业务流程。

    Environment o Hardware and software constraints imposed on the target system o Maturity of target system‘s domain o Certainty of the target system’s interfaces to the larger system o The target system‘s role within a larger system

    环境目标系统的软,硬件限制。

    目标系统问题域的成熟程度。

    目标系统的界面与组织现有大部分系统界面风格一致。

    目标系统与组织现有其他系统的关系。

    Project o Attributes of different stakeholders e.g. management style, domain/computer experience o Constraints imposed e.g. cost, quality, timelines, etc.

    项目不同风险承担人的特点,如管理风格,问题域/计算机经验。

    其他约束条件,如资金,质量,时间期限。

0
相关文章