论我国中小型软件系统开发过程的有效管理
2016-11-26王龙杰
王龙杰
郑州轻工业学院软件学院
论我国中小型软件系统开发过程的有效管理
王龙杰
郑州轻工业学院软件学院
根据我国目前现状,结合中小型软件开发的特点,通过分析其成因,强调开发过程的有序管理,以期降低开发风险和成本,提高开发速度和效益,更好地符合社会实践的需要。
软件系统;开发;管理
一、软件系统开发的社会需要
当今,全球经济单纯地从集约化生产创造效益转变为信息产品的换带来效益,现代技术开辟了人类思维的另一世界,支撑着人类的欲望,电脑、互联网、物流等改变着人们的生活,这就是我们所定义的社会信息时代。世界范围的电脑联网将使越来越多的领域以数据流通取代产品流通,将生产演变成服务,将工业劳动演变成信息劳动。人们的生产与流通、换和分配活动的规则正经历着彻底的变革,与传统观念不同的是信息产品不需要离开它的原始占有者就能够被买卖和换;这一产品能够通过电脑网络大量复制和分配而不需要额外增加费用;价值增加是通过知识而不是工作来实现的;知识流向产品的主要形式是软件。我国由于历史原因,与发达国家相比较,在新技术新产品的开发与运用中,存在软件开发过程缺陷、项目管理问题和缺乏对企业内部软件开发过程的最佳实践总结与应用等诸多问题。纵观世界以计算机信息系统为核心的it技术,目前已成为最活跃、最有发展潜力的支柱产业,绝大多数的社会业务领域都形成了非常成熟的高水平的行业应用软件。为了避免软件开发过程中造成的不必要的损失和浪费,我们有必要探讨开发过程的合理环节和科学性。
二、软件开发过程存在的问题和有效的控制步骤
软件开发是基于用户的客观需要,建造出软件系统或者系统中的软件部分的过程,是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。多种风险的实际存在,影响着我们的计划预期,如果项目风险变成现实,就会增加项目的成本,甚或招致软件开发的失败。因此有必要对软件项目中的风险进行分析并采取相应的措施加以管理,尽可能减少风险造成的损失。统一过程(RUP)提出了六项最佳实践即迭代的开发软件、需求管理、使用基于构件的体系结构、可视化软件建模、验证软件质量和控制软件变更。软件开发过程以体系结构为核心、按照高级抽象宏观指导下,通过领域建模、主题业务分解、功能任务确定和过程实现的层次建模方法完善最佳实践的过程;基于体系结构为核心的、适应性和动态扩展方便的组件集成的方式,增量、迭代式软件开发组织过程;迫切需要通过设计流程、技术、方法和人员等各个有机结合才能实现健壮的需求管理、项目计划、项目跟踪、质量保证和业务扩展应用,通过组件集成降低软件工程总体的代价;因此软件开发过程的也应是为完成某项任务时最高效和有效的方式,并且是基于一段时间内被大量人员检验的可重复过程。而能力成熟度模型(CMM)的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护过程进行监控和研究。CMM是一种用于评价软件承包能力以改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。其假设是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。综合现代研究理论,考虑软件开发过程的复杂化及因素的多变性,要使风险降为最低,结合实践过程,我们应当关注软件的设计目标、软件开发的技术影响因素、软件开发的成效性和其他与问题领域相关的目标,实行项目实施前控制,项目实施过程控制,和项目完成后的后期控制。具体的采取的步骤如下:
(一)确立软件开发思想,并建立与目标相适应的标准,做出具体的规划。目前国内对软件管理工程存在的最大问题是认识不足。做好管理,消弭隐患,协同处理,实际上是一把手工程,需要高层管理人员的足够重视。确立了正确的指导思想,就要根据企业的环境、目标、现行系统的状况进行初步调查,明确现行系统存在的问题,根据需要与可能,提出拟建新系统的备选方案,对这些方案进行可行性分析,写出可行性项目建议书。制定出与之相适应的过程模型和标准,考虑影响开发的主客观因素,安排好开发的每一个步骤。
(二)软件开发过程的人员职责分工明确。在实践中,应该基于软件过程的人员、问题和过程,将三者基于主题业务特征、人员能力和角色职责、软件过程任务,量化授权资源、责任和里程碑责任人。
(三)进行必要的系统分析和设计。在可行性研究的基础上,对现行系统进行详细调查和全面分析,描述现行系统的业务流程,指出现行系统的局限性和不足之处,提出修改方案,确定新系统的目标和逻辑功能要求。按照操作简便、控制易行和实用性强的原则,具体设计实现逻辑模型的技术方案,包括概念设计、评估与选择方案和详细设计等。
(四)采取有效的方法,进行必要的测试。在软件工程技术中,控制复杂性的基本手段是分解与抽象。对于复杂的问题,我们有必要将其层层分解,采用多种方法,从编写代码开始,根据开发进度和开发计划等来决定什么时候进行测试。在每一个独立的模块完成后,可以进行单个模块的测试,重点是测试功能点完成情况。界面问题也可以适当提出来等有时间再修改。开发完一个模块就测一个模块,在这个过程中不停地做集成测试,最后还要系统测试。
(五)系统的运行与维护,评价质量与效益。系统投入运行后,需要经常进行维护,记录系统的运行情况,根据一定的标准对系统进行修改,评价系统的工作质量和经济效益。对于系统开发的过程中,每个阶段有其独立的任务和结果,使用规定的方法和工具,编制出阶段文档,前一阶段是后一阶段的基础和指导,只有完成了前一阶段的任务,才能进入下一阶段,不能超越。每个阶段完成后,都要进行复查。
三、结束语
针对于我国对中小型软件的开发与运用的现状,必须从软件开发过程组织与控制上来降低风险,节约成本,树立科学的思想来进行规划和指导,采取符合实际需要的客观流程和具体的实践步骤,保证在软件开发过程中有符合软件工程的原则和方法作为实践指导。因此在开发过程中,软件风险、决策选择和软件目标的建模方法等需要进一步考虑,重点解决是保证快速、高效、高质量和低代价的目标下,依据客户需求,选择和运用较好的开发方法活着结合使用方法,如结构化系统开发方法、原型化方法、面向对象法等,充分利用各种开发工具,提高软件开发的成功率。