1、 软件工程经济分析系统 严志扬摘 要: 本文介绍了软件工程经济分析系统,讲述了软件工程需求分析意义和困难、系统目标、系统功能、系统结构等内容。关键词: 软件工程;经济分析;系统功能软件工程经济分析专家系统,随着人们在软件开发过程中不断积累和丰富实践经验,以及考虑的因素不断增多和全面,软件工程经济分析的问题也将更加复杂,决策者或决策机构作出科学的判断和决策将会变得更加困难,因此迫切需要借助于领域专家的知识、经验等来辅助决策者或决策机构作出科学的判断和决策。因而,随着信息技术和人工智能的不断发展和完善,软件工程经济分析专家系统将会应运而生,并将得到迅速发展。软件工程经济分析就是研究软件开发过程中,
2、在软件生命周期中各个阶段影响经济的因素,从而可以明确软件工程经济分析的基本需求。下面为了分析软件开发过程方便性,将软件生命周期分为可行性分析阶段、需求分析阶段、系统分析和设计阶段、代码编写与单元测试阶段、系统集成与系统测试阶段和系统运行维护阶段。1.軟件工程需求分析意义和困难系统需求分析阶段位于系统开发的前期,它的基本任务是准确地定义未来开发的系统的目标和功能,以明确开发出来的系统能够完成什么样的任务。系统需求分析阶段又可分为两个阶段:需求调研阶段和需求规约阶段。需求调研阶段就是通过系统分析员不断的与用户沟通和交流来明确用户要求系统完成什么样的功能和任务。需求规约阶段就是分析用户提出的所有需求
3、是否合理,是否可以满足用户的要求,最终以需求文档的形式确定下来。系统需求分析的意义在于系统需求分析阶段的好坏直接关系到整个系统的成败。如果系统需求分析做的不好,该系统所完成的功能可能就不是用户最终想要的功能,从而就导致了大量的人力、物力和财力的浪费。因而,系统需求分析是任何一个系统开发不可以缺少的阶段,必须通过不断的积极与用户进行充分的沟通和交流,来明确系统的功能性需求和非功能性需求。由于需求分析面临着三大困难,因此需求定义是一项严肃而艰巨的工作,它包括韵范围非常广泛,必须在不同的信息系统设计中对其内容加以取舍,首先抓住系统的主要需求。2.软件工程经济分析系统目标为了满足软件企业中、高层领导和
4、决策者在软件项目开发的各个阶段对项目经济分析提供有效的决策支持。利用计算机系统对软件工程经济分析决策提供辅助支持,提供有效的分析和预测支持工具,以准确反映软件开发各个阶段的进度、成本等要素,为经济分析决策提供可靠的依据。作者将系统的目标归纳为以下六个方面:(1)能够和决策者进行方便的人机交互,将内部复杂的调度、分析处理过程封装起来,使决策者只关注系统最终输出的数据和信息,而不必要关心具体的处理过程。(2)能够对软件工程经济分析的相关知识、数据进行组织、存储和管理,方便系统内部和外部的查询和调用。(3)能够将各种软件成本估算模型和常用的数学统计分析方法组织、存储和管理起来。方便系统内部和外部的查
5、询、修改、删除和调用。(4)能够利用知识库中的规则和事实对决策者描述的决策问题进行推理,可以给出最终的推理结果。(5)能够将决策结果以多种形式加以输出,以保证输出结果的直观性、清晰性、方便性和数据信息的持久性。(6)能够帮助决策者进行知识学习、提高知识水平。扩展知识视野,提高决策能力。3. 软件工程经济分析系统功能软件工程经济分析统的主要功能是辅助软件经济分析的决策。在进行决策的过程中,软件工程经济分析能够对软件项目的各个阶段提供辅助决策的功能。根据软件工程经济分析决策的五个基本决策过程的要求,确定了软件工程经济分析如下功能:(1)软件项目来源与竞争分析功能。在软件项目启动的前期,能够根据不同
6、的软件项目来源做不同的决策功能。软件项目的来源可以是国家部门或地方政府的项目,也可以是企业公开招标的形式的项目。还能够分析该软件的市场前景、市场占有率、客户的经济实力、市场反应速度和竞争对手的综合实力的评价等很多衡量指标进行预算。以明确该项目的风险大小,决定该项目是否可以启动。(2)软件项目可行性分析功能。对软件项目从经济可行性、技术可行性和社会可行性、项目国民经济评价、项目不确定性和风险性分析这几个方面对该项目进行整体的权衡和分析。以决定下阶段是否投入人力、物力和财力。(3)软件项目成本估算功能。能够根据决策者选择不同的模型对软件的成本、工作量和工期的估算。对该项目所耗费的资源进行预算。(4
7、)软件项目定价与经济效益分析功能,可以根据决策者选择不同的定价模型完成软件的定价。还可以完成经济效益的评估。(5)件项目的规划功能。首先确定项目目标和功能。然后确定项目工序与时间进程并根据输入的数据绘制出计划网络图.接着就可以计算出项目的关键路径、关键工序、项目工期和难度系数。根据计划网络图,确定人力需求、资金需求、设备需求和其它资源需求,然后再细化软件项目各阶段所需的人力和资金需求等。4. 软件工程经济分析系统结构依据华为公司的IPD.CMM3.O的运作流程,对于大型项目的系统设计要分析概要设计(High Level Design,简称HLI)和详细设计阶段(low Level Design
8、,简称LLD)两个阶段:而对于小型项目则将两个阶段融合到一个阶段,即系统设计阶段(system Design,简称SD),由于SEEADSS系统是一个原型系统,因此本文采用后一种方案来完成系统设计和规划。对于一个象SEEADSS这样复杂的决策支持系统,在设计时采用自顶向下、逐步细化的设计方法。按照需求分析阶段的结果,把系统分成人机对话系统、通用管理系统、数据库系统、模型库系统、知识库系统和问题处理系统这五大部件。可以看出,通用管理系统是SEEADSS系统的总控模块,它负责户各功能模块之间的协调和管理等工作。问题处理系统是SEEADSS系统中重要的组成部分,是系统的中心部件,也是用户与计算机共同
9、作出决策的纽带和桥梁。用户通过人机对话系统输入决策问题,通用管理系统调用问题处理系统来协调数据库、模型库、知识库等系统的工作来辅助决策活动的完成。模型库系统完成对模型的管理、组织和存储。在模型库中将存放大量成熟的模型,这些模型的组合将能完成许多实际决策问题的需要。在对模型库系统设汁时,首先要考虑的问题是模型的表示形式、模型的组织和存储结构,只有当这些问题确定下来以后,才可以考虑模型管理系统如何对模型有效的管理,模型字典的结构才得以确定。然后考虑当遇到一个新的决策问题时,是建立新模型、选用已有的模型还是组合现有模型。对于某些新问题。在选用现有的已成功的模型都不能加以解决的情况下,就要重新建立模型
10、。如何实现模型的动态建立和生成也是模型库系统设计中面临的一个问题。在模型库系统中,一般是将求解方法融入模型求解程序之中。知识库系统完成对知识的组织、存储和管理。在知识库中存放了大量的领域专家经验知识,如何将所有这些知识进行合理的安排组织,将会影响到知识库中推理机实现的问题。在知识库的设计过程中要考虑软件工程领域、工程经济领域和决策支持系统领域主要有哪些知识,然后分析所有这些知识,从知识表示形式中选择一种或几种适合于该领域的知识的表示形式。数据库中存放了大量的模型和方法管理数据、知识管理数据、招投标过程中专家信息、投标单位信息、用户管理信息等。数据库系统的设计过程中主要考虑各模块数据间的逻辑关系。如果表结构设计的不合理,就会导致数据库中有大量的冗余数据,从而也就影响整个系统的性能。参考文献1曲晟,张毅,许俊华.基于W曲的企业协调化集成模型库系统的研究.计算机集成制造系统,2000,6(4):5556.2邓伸华.信息系统分析与设计.科学出版社。2003.endprint -全文完-