• 软件开发复用问题的若干思考


    这是我以前写的一个关于公司软件开发方面的东西,算是我在软件开发方面思考的一个结果。

    随着公司的不断开展的各项工程,无论是政府的信息管理,还是企业的工业控制,都在有条不紊的进行。然而在这些进行的项目中,我们也相应的发现了一些问题,比如项目的进度控制问题,软件的复用问题等,在这里我想着重说一下软件复用的问题。

    软件复用的好处

    1、  开发成本的降低。如果在一个项目中,能够直接用到以前项目中的代码,控件,模块,作为一个软件企业,显然的可以把开发成本降低。

    2、  开发层次的提升。大家知道,罗马不是一天建成的,同样的,在软件开发上,也不会一蹴而就的写出高质量的代码。当我们有意识的进行复用时,我们会在每次重复使用某段代码或者控件的过程中,发现其不足的地方,从而加以改进,这样就会逐渐的提升我们的开发层次,提升整个公司开发的层次,使得公司的软件与其他公司有着根本的不同。

    3、  产品化的必然阶段。在我们公司目前没有明确的开发产品的现阶段,那么对软件复用的使用,就是我们产品化的一个途径,我们在不断的复用的过程中,不断的强化我们的代码的功能,直至有了一定固定功能,运行稳定,扩展性好的软件,这样一个产品就可以自然而然的产生了。

    软件复用的层次

    我将软件复用的层次分为代码级控件级模块级构架级,这四个级别在概念上依次上升。

    代码级:代码级这个层级就是指在源代码中可以重复使用的一些算法,函数,对象。

    控件级:我们目前使用的主力开发工具为Borland DelphiMicrosoft .Net VS2003。这两种开发工具的核心思想之一就是快速开发,运用大量的已有控件。控件是封装了源代码,并提供可视化的编辑,对于开发生产力的提高有着革命性的提升。

    模块级:在我们开发的项目或者产品中,会发现大量重复的功能模块,比如用户管理,权利管理,新闻发布等等,如果我们在这些模块设计的时候,注重一下扩展性,那么可以应用到有其类似功能的项目中。在这个级别需要一定的项目的积累,否则在模块功能上以及实用性上会遭遇风险。

    构架级:构架级在设计概念上最为高级的一种。它相当于一个平台或者思想,在这个平台上,可以开发出根据此平台思想稳定而又高效的软件产品。打个比方,数据库中的设计范式可以看成是一个小的构架,你按照范式来设计数据库,一般来说设计质量是有保重的。再举个例子,Windows中的消息机制也算是一个构架,就是说在Windows中所有运行的程序都遵循它的这个机制,并且在这个机制的保证下,运行的顺畅良好,Linux中的IP Chains也是一个非常优秀的网络防火墙构架,这这个构架中其他人可以方便进行外挂程序的嵌入。我拿我们将要开发的公司内部的物资管理系统来举个例子,在这个系统中,有一个很重要的功能,那就是审批,如何把审批这个功能做好,有良好的扩展性,并且可以沿用到其他的也有审批功能的项目中,就是一个我们需要思考的问题(此处仅拿此举例,考虑到实际情况并不一定要做到这么高级)。

    如何做到软件复用

    如何能做到软件的复用,首先在我们的头脑中要有这样的一个思想,在平时的工作中,能够随时的想到这些问题。在制度上,第一,我们可以建立一个公司内部软件复用的树状图,如下图所示。这样在开发时,可以做到时时检视。

     

    第二,加强项目设计方案的讨论审核机制,通过讨论审核,群策群力,不断的对整个公司的软件开发体系进行培育。

    软件复用的难点

    在我们实现软件复用的过程中,一定也会遇到很多困难,比如:

    1、  客户对我们已形成的功能,界面不满意,仍要定制开发。对于此类问题,从一个方面我们平时要注意功能的设计使得能够灵活的进行功能的扩展,界面的更改,另一方面也要认识到,即使我们不做复用的工作,客户仍会有要求,而我们也必须开发。

    2、  对软件功能进行复用是一项艰巨的任务,必将耗费人力,所以在平时的开发过程中,对哪些功能进行复用,复用到什么程度,要把握好一个度。

    3、  对软件功能复用,需要拥有良好的设计能力,过人的眼光。这对我们自身的要求也必然提高,也就需要从事软件开发的同事提升不断的自己。

    4、  在构架的复用上,就需要我们的项目或者产品有一定的延续性,如果今天做工业控制,明天做流程管理,就很难,也没有必要做构架级的设计,所以对负责市场的同事们是个要求。

     

     

     

     

     

  • 相关阅读:
    day 17
    day 16
    信息系统项目管理师 教程学习 第一章
    服务器安全防护
    少有人走的路
    Python文件学习
    测试新文章
    测试
    python基础 一、 数值类型、序列类型和散列类型
    apache No input filespecified
  • 原文地址:https://www.cnblogs.com/Kane/p/236785.html
Copyright © 2020-2023  润新知