论文部分内容阅读
摘要: 软件项目的开发和实施,作为信息系统建设的重要组成部分可以说是一个非常复杂的执行过程,尤其对于大型的软件项目而言,系统建设周期长、投资大、风险大、比一般的技术工程有更大的难度和复杂性。软件系统建设与一般的技术工程相比其困难不仅来自技术还来自企业内外环境,还涉及到客户,沟通,企业内部管理、体制、政策、法规、观念等多个层面的影响和制约。因此,将重点分析一下大型软件系统项目实施中必须重视的环节和因素,为广大的软件企业提供一些必要的参考。
关键词: 信息化系统建设;软件开发流程;软件开发执行和控制
中图分类号:TP3文献标识码:A文章编号:1671-7597(2011)0110146-01
1 软件开发流程的背景分析
软件产业作为IT行业的重要分支,已经成为中国国民经济的重要组成部分,随着中国经济发展,作为信息化建设重要组成部分的软件项目在其中起了重要的推动和支撑作用,电子政务,电子商务,SAAS无一不涉及到软件系统的应用。然而在这一系列风风火火的信息化建设浪潮中却隐藏着大量失败和惨痛的教训,如果不了解软件项目实施的流程和风险,很可能为自己的创新承担失败的教训。当然了,正是基于这一巨大的考虑,软件行业的主流方向早已变成产品化,流水线式的生产方式,将软件做为传统的产品进行开发和生产,这一模式从宏观意义上规避了普通企业实施软件项目的风险,但正是基于这一共性的,流水线式的产品理念,使得从另一层面上扼杀了企业个性化的表现以及制约了企业独特性的延展。所以如何规避软件项目,尤其是大型软件系统开发和实施的风险,保证项目的成功?成为解决政府以及企业实施个性化管理创新,充分通过信息化建设实现其自身独特性表达的重要问题。
2 软件开发流程的执行控制
纵观软件项目实施的环节,其无怪乎需求分析,设计编码,测试修订,系统推广以及系统维护升级,五个主要步骤。然而步骤的简单不代表实施的简单,尤其对于个性化,定制性的大型软件系统而言,每一步骤,每一环节都涉及到很到具体的,复杂的,细小的问题,如果这些问题得不到系统型的解决,将给软件系统的开发和实施造成巨大的可变风险,甚至无法挽救的重大损失。
2.1 软件需求分析,是软件系统开发和实施的最重要的前提和基础
需求分析的目的是完成软件项目实施的价值体现,所以要从宏观上明确软件开发的目的,作用和意义;从微观上建立起对软件系统的整体性理性认识。从结构上,功能上,系统指标上,视觉体验上建立起一套量化的可执行的目标体系。从大到小,从粗到细的建立起模块化,功能点的精准化描述和方案。因此笔者建议致力于大型软件项目开发和实施的单位和企业一定要在前期需求分析阶段做足工作,不怕麻烦,不闲烦琐,不惧单调,做到充分的细致和精准,只有这样,后续的工作才会建立起可执行的快速通道。
2.2 设计编码工作是一个智力堆迭积木的过程,关键在于协同
软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块或者是子系统。对于大型软件系统而言,基于其系统应用的复杂性特点,模块化的分解是否合理,是体现软件开发过程是否科学的重要指标。因为模块的分解直接涉及到人员的分工和协作。基于代码编写直接展现软件功能的实际应用,软件开发人员对于软件功能的实现势必有其自身的专长,合理的模块分解可以将开发人员的专长与模块的最终应用进行匹配,从而让术业有专攻得到最好体现。
此外,模块分解还涉及到系统最终整合的问题,模块依据什么分解,如何分解,将直接关系到系统最终如何整合的问题。如果模块分解不到位,系统最终整合的时候必然会出现大量衔接问题。通常软件模块分解主要按功能分析进行分解,将大量类似的代码规划成同一个模块,但这一分解必须考虑到系统最终应用的前台应用表现。要保证按功能分析分解模块不影响最终系统的前台应用,要做到编码与前台操作的有效衔接。
独立模块的实现和所有系统模块的整合,就如同相互依存的积木,彼此关联,但抽取其中一些外围或非支撑性模块,却不影响整个积木的平衡。所以模块分解的灵活性和组合性就成为设计和编码的最主要考虑因素。
2.3 软件系统测试是全面检验系统开发质量的重要工作
软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。而设计测试用例,关键在于理解测试方法。常用的测试方法是白盒法,测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。
2.4 推广软件系统,软件系统升级和维护
软件系统测试通过后,正式上线,将面向所有的用户,这是实现软件系统最终价值的主要工作。
软件系统升级是基于软件应用的深化,对于软件提出的新的需求。它是软件在阶段型完工交付后的第二阶段,第三阶段的工作,只要重点做好需求分析以及新功能与现有系统功能的整合工作,通常不会出现大的问题。
维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。事实上,和软件研制工作相比,软件维护的工作量和成本都要大很多。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。
参考文献:
[1]张峰;软件测试的实效性[J].电脑知识与技术,2006(05).
[2]王春晓,中小企业如何运用软件进行项目管理[J].中国管理信息化(综合版),2007(05).
关键词: 信息化系统建设;软件开发流程;软件开发执行和控制
中图分类号:TP3文献标识码:A文章编号:1671-7597(2011)0110146-01
1 软件开发流程的背景分析
软件产业作为IT行业的重要分支,已经成为中国国民经济的重要组成部分,随着中国经济发展,作为信息化建设重要组成部分的软件项目在其中起了重要的推动和支撑作用,电子政务,电子商务,SAAS无一不涉及到软件系统的应用。然而在这一系列风风火火的信息化建设浪潮中却隐藏着大量失败和惨痛的教训,如果不了解软件项目实施的流程和风险,很可能为自己的创新承担失败的教训。当然了,正是基于这一巨大的考虑,软件行业的主流方向早已变成产品化,流水线式的生产方式,将软件做为传统的产品进行开发和生产,这一模式从宏观意义上规避了普通企业实施软件项目的风险,但正是基于这一共性的,流水线式的产品理念,使得从另一层面上扼杀了企业个性化的表现以及制约了企业独特性的延展。所以如何规避软件项目,尤其是大型软件系统开发和实施的风险,保证项目的成功?成为解决政府以及企业实施个性化管理创新,充分通过信息化建设实现其自身独特性表达的重要问题。
2 软件开发流程的执行控制
纵观软件项目实施的环节,其无怪乎需求分析,设计编码,测试修订,系统推广以及系统维护升级,五个主要步骤。然而步骤的简单不代表实施的简单,尤其对于个性化,定制性的大型软件系统而言,每一步骤,每一环节都涉及到很到具体的,复杂的,细小的问题,如果这些问题得不到系统型的解决,将给软件系统的开发和实施造成巨大的可变风险,甚至无法挽救的重大损失。
2.1 软件需求分析,是软件系统开发和实施的最重要的前提和基础
需求分析的目的是完成软件项目实施的价值体现,所以要从宏观上明确软件开发的目的,作用和意义;从微观上建立起对软件系统的整体性理性认识。从结构上,功能上,系统指标上,视觉体验上建立起一套量化的可执行的目标体系。从大到小,从粗到细的建立起模块化,功能点的精准化描述和方案。因此笔者建议致力于大型软件项目开发和实施的单位和企业一定要在前期需求分析阶段做足工作,不怕麻烦,不闲烦琐,不惧单调,做到充分的细致和精准,只有这样,后续的工作才会建立起可执行的快速通道。
2.2 设计编码工作是一个智力堆迭积木的过程,关键在于协同
软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块或者是子系统。对于大型软件系统而言,基于其系统应用的复杂性特点,模块化的分解是否合理,是体现软件开发过程是否科学的重要指标。因为模块的分解直接涉及到人员的分工和协作。基于代码编写直接展现软件功能的实际应用,软件开发人员对于软件功能的实现势必有其自身的专长,合理的模块分解可以将开发人员的专长与模块的最终应用进行匹配,从而让术业有专攻得到最好体现。
此外,模块分解还涉及到系统最终整合的问题,模块依据什么分解,如何分解,将直接关系到系统最终如何整合的问题。如果模块分解不到位,系统最终整合的时候必然会出现大量衔接问题。通常软件模块分解主要按功能分析进行分解,将大量类似的代码规划成同一个模块,但这一分解必须考虑到系统最终应用的前台应用表现。要保证按功能分析分解模块不影响最终系统的前台应用,要做到编码与前台操作的有效衔接。
独立模块的实现和所有系统模块的整合,就如同相互依存的积木,彼此关联,但抽取其中一些外围或非支撑性模块,却不影响整个积木的平衡。所以模块分解的灵活性和组合性就成为设计和编码的最主要考虑因素。
2.3 软件系统测试是全面检验系统开发质量的重要工作
软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。而设计测试用例,关键在于理解测试方法。常用的测试方法是白盒法,测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。
2.4 推广软件系统,软件系统升级和维护
软件系统测试通过后,正式上线,将面向所有的用户,这是实现软件系统最终价值的主要工作。
软件系统升级是基于软件应用的深化,对于软件提出的新的需求。它是软件在阶段型完工交付后的第二阶段,第三阶段的工作,只要重点做好需求分析以及新功能与现有系统功能的整合工作,通常不会出现大的问题。
维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。事实上,和软件研制工作相比,软件维护的工作量和成本都要大很多。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。
参考文献:
[1]张峰;软件测试的实效性[J].电脑知识与技术,2006(05).
[2]王春晓,中小企业如何运用软件进行项目管理[J].中国管理信息化(综合版),2007(05).