系统工程之需求分析
·赵熙朝·
编者按:现在人们越来越认识到软件工程在软件开发中的重要作用。目前国内软件在开发中还没有对软件开发的过程进行明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全过程的改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高,使软件开发更规范合理。
我们马上就要进入WTO,因此软件开发也要与国际接轨,只有这样才能提高我们在项目管理水平,最终开发出高质量的软件。
综述
软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,本文以医院管理系统为例详细介绍了需求工程的构成和进行方法。
一、需求开发
需求开发又分为需求获取、需求分析、编写规格说明书和需求验证。以下列出和讲解分析常规的步骤,当然应按照项目的大小和特点等实际情况我们应该自己确定合适的步骤
1. 需求获取
确定需求开发过程确定如何组织需求的收集、分析、细化并核实的步骤,并将它编写成文档。
2. 需求分析
绘制关联图、创建开发原型、分析可行性、确定需求优先级、为需求建立模型、编写数据字典、应用质量功能调配。
3. 编写规格说明书
项目视图和范围文档包含了业务需求,而使用实例文档则包含了用户需求
4. 需求验证
审查需求文档、依据需求编写测试用例、编写用户手册、确定合格的标准
二、需求管理
需求开发的结果应该有项目视图和范围文档、使用实例文档、软件需求规格说明及相关分析模型。经评审批准,这些文档就定义了开发工作的需求基线。
==============================================================
一、综述
软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,本文以医院管理系统为例详细介绍了需求工程的构成和进行方法。
首先我们必须了解需求工程和其他项目过程的关系:
图1 需求与其他项目过程的关系 |
|
软件需求包括三个不同的层次-业务需求、用户需求和功能需求-也包括非功能需求:业务需说明了提供给客户和产品开发商的新系统的最初利益,反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明;用户需求文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明;功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。
图2 软件需求各组成部分关系 |
|
需求工程分为了需求开发和需求管理两个阶段:下面就以这两个阶段说明:
二,需求开发
需求开发又分为需求获取、需求分析、编写规格说明书和需求验证。以下列出和讲解分析常规的步骤,当然应按照项目的大小和特点等实际情况我们应该自己确定合适的步骤。
1. 需求获取:
1)确定需求开发过程:确定需求开发过程确定如何组织需求的收集、分析、细化并核实的步骤,并将它编写成文档。对重要的步骤要给予一定指导,这将有助于分析人员的工作,而且也使收集需求活动的安排和进度计划更容易进行。
2)编写项目视图和范围文档:项目视图和范围文档应该包括高层的产品业务目标,所有
的使用实例和功能需求都必须遵从能达到的业务需求。项目视图说明使所有项目参与者对项目的目标能达成共识。而范围则是作为评估需求或潜在特性的参考。 表1 项目视图和范围文档的模板
a . 1 背景 在这一部分,总结新产品的理论基础,并提供关于产品开发的历史背景或形势的一般性描述。
a.2 业务机遇 描述现存的市场机遇或正在解决的业务问题。描述商品竞争的市场和信息系
统将运用的环境。包括对现存产品的一个简要的相对评价和解决方案,并指出所建议的产品为什么具有吸引力和它们所能带来的竞争优势。
a.3 业务目标 用一个定量和可测量的合理方法总结产品所带来的重要商业利润,把重点放在给业务的价值上。
a.4 客户或市场需求 描述一些典型客户的需求,包括不满足现有市场上的产品或信息系统的需求。提出客户目前所遇到的问题在新产品中将可能(或不可能)出现的阐述,提供客户怎样使用产品的例子。确定了产品所能运行的软、硬件平台。
a.5 提供给客户的价值 确定产品给客户带来的价值,并指明产品怎样满足客户的需要。
a.6 业务风险 总结开发(或不开发)该产品有关的主要业务风险,例如市场竞争、时间问题、用户的接受能力、实现的问题或对业务可能带来的消极影响。预测风险的严重性,指明你所能采取的减轻风险的措施。
b.1 项目视图陈述 编写一个总结长远目标和有关开发新产品目的的简要项目视图陈述。项目视图陈述将考虑权衡有不同需求客户的看法。它可能有点理想化,但必须以现有的或所期待的客户市场、企业框架、组织的战略方向和资源局限性为基础。
b.2 主要特性 包括新产品将提供的主要特性和用户性能的列表。强调的是区别于以往产品和竞争产品的特性。可以从用户需求和功能需求中得到这些特性。
b.3 假设和依赖环境 在构思项目和编写项目视图和范围文档时,要记录所作出的任何假设。通常一方所持的假设应与另一方不同。
c.1 首次发行的范围 总结首次发行的产品所具有的性能。描述了产品的质量特性,这些特性使产品可以为不同的客户群提供预期的成果。
c.2 随后发行的范围 如果你想象一个周期性的产品演变过程,就要指明哪一个主要特性的
开发将被延期,并期待随后版本发行的日期。
c.3 局限性和专用性 明确定义包括和不包括的特性和功能的界线是处理范围设定和客户期望的一个途径。列出风险承担者们期望的而你却不打算把它包括到产品中的特性和功能。
d.1 客户概貌 客户概述明确了这一产品的不同类型客户的一些本质的特点,以及目标市场部门和在这些部门中的不同客户的特征。
d.2 项目的优先级 一旦明确建立项目的优先级,风险承担者和项目的参与者就能把精力集中在一系列共同的目标上。达到这一目的的一个途径是考虑软件项目的五个方面:性能、质量、计划、成本和人员。
e. 产品成功的因素 明确产品的成功是如何定义和测量的,并指明对产品的成功有巨大影响的几个因素。不仅要包括组织直接控制的范围内的事务,还要包括外部因素。如果可能,可建立测量的标准用于评价是否达到业务目标.