您当前的位置:首页 > 计算机论文>软件开发论文

开源软件开发中的需求工程

2015-09-12 09:28 来源:学术参考网 作者:未知

摘 要:作为近年来被it界广泛关注的开源软件,本文对比传统软件开发的需求工程中过程产生的问题,探讨在开源软件的开发过程中的需求工程问题,说明其一定的开放性创新性和独特性。

关键词:开源软件;传统软件;需求工程
一、引言
  开源软件近来吸引了来自IT界极大的兴趣,被誉为解决传统软件开发的各种弊病的灵丹妙药。其带来的创新方法,知识产权和应用产业作为一个整体,已被视作发展中国家信息和通信技术落后的解决方法。
这篇文章主要探讨在开源软件的开发过程中的需求工程问题。
二、什么是开源软件
    开放源码软件(open-source software)是一个新名词,它被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有copyright的,它的许可证可能包含这样一些限制: 著意的保护它的开放源码状态,著者身份的公告,或者开发的控制。
三、传统的软件需求工程过程存在的问题
  1需求不正确:需求分析只是将UML作为描述系统的业务流程方法,但并没有将建模图型作为用户与分析人员交流的介质,单向的需求分析造成需求的不准确。
  2需求不一致:需求分析往往按照系统利益相关者的不同角色进行划分,但这样的需求不能直接反映系统的需求。
  3需求存在二义性:要求分析模型中所描述的任何事情有且只有一种解释。如果其中某一部分给不同的人理解,解释超过一种,那么该分析模型就存在二义性。
  4需求不精确:现有的系统需求主要通过文本和图形的方式表示,这种需求分析方法只能对需求进行定性分析,而在有些情况下,需求需要更加精确的描述,如定量描述。
  5需求不完整:将待开发系统的所有功能、行为、性能约束以及它在所有可能情况下的预期行为,对于所有可能出现的输入数据的定义以及对合法和非法输入值的响应等,都要包含在分析模型中。
  6需求不灵活:现有的需求是根据特定的系统环境分析得出的,但当系统环境变化时,需求不能随之快速变化。
  最近,需求工程领域的专家们已开始认识到传统需求工程过程的限制。他们要求更好的建模并分析问题域,而不是只专注于软件功能的行为模式。我们在对开源软件的研究中需考虑到这些改进建议。
四、开源软件的需求过程
  相对于传统的软件工程,开源软件开发社区开发了一批可靠,可信,很容易在其相关的用户群体中推广使用的极有价值的软件。开源软件系统的需求采取的是下列做法:
1. 开源软件需求的确定
    开源软件的需求能够通过参与者们的日常经验经由电子邮件和留言板中讨论来确定。在仔细审查期间,其需求通过电子邮件或留言板等形式公布,并在项目的网站上进行公开的审查,拟订,反驳,或改进。所有电子邮件或留言板讨论的相关资料的历史记录都应该被记录留档,以备将来查阅。
  2. 非正式化的开源软件系统需求工程
  根据数据和分析确定,确定哪些做法或功能特性能够更好地为研究开源软件的需求服务。研究开源软件系统的功能和非功能需求,需要进行提取,分析,确认,验证,并通过各种基于Web的描述进行管理。这些描述是可以统称被为software informalisms。
(1)社区交流
    开源软件的需求是通过断言,阅读,讨论,浓缩得到的,并由通过计算机设置得小型的通信网络负责。这些通信系统的出现形式有:基于留言板的信息讨论;电子邮件列表服务器;网络新闻组,或基于互联网的聊天。
(2)使用多媒体的网页
  开源软件开发者们在空间或时间上存在距离,但须对工作达成共同的认识,所以社区参与者需要营造一个包含截图或导航手册,通过点击导航序列(如“返回”,“下一个”等链接)与补充说明的环境来传达自己的意图或解释系统如何运作。同样,参与者可以公布如何运作程序执行的脚本或扩大开源软件工件的指定类型。
    (3)指南
  获取和提炼“如何”实现一个系统的某些行为,操作或功能的在线文档,作为一个半结构化的叙述,声称或暗示最终用户的需求。“正规”的指南描述包括其作为指南目的明确的声明,并可以作为系统的教程。非正式指南的可能显示任何行动的为一个选择,组合,改写。
    (4)第三方出版物
  在原论文本研究的四个开源社区的中的每一个都提供可供公众或社区成员阅读的关于开源软件内容的外部出版物。
  另一方面,那些能够启发有兴趣的读者或者在提高作者在某些开源软件的技术方面造诣的专业文章,能帮助确定这些软件系统的一般的功能和非功能性需求。
  (5)软件的bug报告与问题跟踪
  关于开源软件系统的探讨中,出现最明显最频繁的问题类型是如何进行当前版本的bug报告与问题跟踪的问题。在开源软件的开发过程中,社区参与者依靠如电子邮件,错误报告留言板,及有关问题跟踪机制等方式,获取、重申和完善各种隐含的,误规定,或没有言明的系统需求。
五、结论
  综上所述,开源软件的需求工程是完全不同于传统软件需求工程的。不能说这两种需求工程的方式何种更好,因为它们都是与各自开发过程的特点相适应的。开源软件需求工程并不需要而且很不能不会受惠于传统软件需求工程的做法。但必须承认,开源软件的需求工程更加具有开放新和全球性,易于参与,并且充满乐趣。
参考文献:
[1]洪峰.开源软件文集 中国电力出版,2006.
[2]毋国庆.软件需求工程 机械工业出版社,2008

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页