APP下载

软件工程未来发展

2011-08-15

科技传播 2011年13期
关键词:黑盒开发人员用例

许 璐

吉林工业职业技术学院自动化系,吉林 吉林 132013

1 软件工程概述

1.1 软件危机

最初,计算机应用于军用领域,20世纪中期开始从军用领域转向民用领域。当时的计算机硬件价格不菲、处理能力限,编程人员要编写出执行速度快、体积小的程序。程序中充满了各种各样让人不解的方面。这时人们需要利用智力解决问题。

高级语言和操作系统的扩大,取决于计算机使用的范围,软件开发急剧增长的变化;因为出现大量数据处理,就导致第一代数据库管理系统的诞生。随着软件系统规模越来越大,复杂度越来越高,可靠性也被集中关注。并且随着软件产量的不断增加,软件维护越来越重来,原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发。

为解决软件危机,应该从应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程。从此也诞生了一门新的学科——软件工程。

1.2 软件危机产生原因

软件危机产生的原因是因为计算机不断的发展而产生的,可以从软件危机的表现和特殊性发现,如下:1)在需求分析阶段用户对软件需求的描写叙述可能有遗漏,不太精细,有二义性,有错误,甚至在开发软件过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求;

2)用户本来的愿望与开发人员对用户需求的理解有不同,这就肯定会出现开发出来的产品与用户要求的不一致的情况;在软件开发出来之前,用户自己也不清楚软件的具体需求,所以用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误,在软件开发过程中;

3)大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏像开发人员能够开发大型软件系统的经验,而多数软件开发人员又缺乏管理人员在管理方面的经验。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化,也是发生软件危机的一个重要原因;

4)软件项目开发人员不能有效地,独立地处理大型软件的全部事务,其中对于项目经理、工程组、测试组、保证组以及硬件管理组等无法很好的协调、分配,因此容易产生疏漏和错误;

5)软件产品的特殊性和人类智力的局限性,导致有些相对复杂的问题人们无法处理。

1.3 软件危机具体体现

1)软件开发进度和软件开发成本不易预测并且不易控制;

2)投资较高,超出预算成本。随着计算机市场化和民用化的发展,代价和成本就成为投资者考虑的最重要的问题之一。为了加快进度和节约成本所采取的一些方法损害了用户的利益,这样必定不被用户接受;

3)用户不能满足产品功能。开发人员和用户之间很难沟通。多数情况是软件开发人员在需求分析阶段不能真正了解用户的需求,而用户又不了解计算机内部的解决问题方法,双方无法用共同熟悉的语言进行交流和描述;

4)软件产品质量无法保证。对于任何一个软件产品都不能说是没有错误,而是错误很难发现,原因是用了不恰当的检测手段,这些没有被发现的错误往往是造成重大事故的隐患;

5)软件产品难以维护。软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人。

用例的优势在于它天生是黑盒的,顾名思义黑盒是为了避免了混入分析、设计和实现细节,以保证用例可以被非计算机人员所能真正理解。同时,需求分析员又可以方便地通过用例分析,将需求体系转化为分析模型。在这一过程中,分析人员可以更进一步地完善整个系统的需求体系,而需求也不会因为分析模型变得杂乱无章,所以实现了分离需求与分析,但两方面还有“联络”。

1.4 软件危机解决办法

1)充分吸收和借鉴长期以来行之有效的原理、概念、技术方法以及有效的经验教训;

2)经过长期的使用,总结出经验,推广出更好的技术方法;

3)一切方法技术都是由相应的工具支撑,所以想要推广出更好的技术方法,就要有与之配备的工具,这样就需要一个良好的开发运行环境。

2 未来发展

冯·诺依曼模型一直被沿用,没有变化,但是计算机应用能力已明显改变,比如提升CPU计算能力已经越来越困难,未来发展趋势主要集中需求工程、迭代、集成,具体如下:

1)需求工程: 专业化的角色,日益复杂的业务创新,这些都对需求获取的正确性和有效性提出了更高的要求。

用例的优势在于它天生是黑盒的,顾名思义黑盒是为了避免了混入分析、设计和实现细节,以保证用例可以被非计算机人员所能真正理解。同时,需求分析员又可以方便地通过用例分析,将需求体系转化为分析模型;

2)迭代和敏捷,逐渐成为标准:在迭代化的方法中,我们将整个项目的开发目标划分成为一些更易于完成和达到的阶段性小目标,随着软件交付周期的日益加快,这些小目标都有一个定义明确的阶段标准。但是迭代对整个团队的架构、需求、及测试能力都提出了更高的要求,现在许多开发团队都在试图导入迭代化开发的过程,迭代是敏捷的推动力,掌握迭代,敏捷的大部分事情往往就迎刃而解了。敏捷可是被看成迭代化开发的一种导入方式;

3)保证迭代:通过持续集成可以保证代码质量。持续集成相关的工具成为现在市场上的新热点。

随着软件技术和硬件技术的不断发展,解决软件工程中的各种困难、开发软件工程中各中新技术已经变得越来越容易,但是随着软件开发的不断扩展,问题也会不断出现,这就需要人们不断的探索,不断的思考,这样才会给软件行业带来新天地。

[1]丁珩.我国软件产业的现状、问题及加快发展的建议[J].科技与经济,2003(3).

[2]徐顺成.中国软件产业的现状与未来[J].中国科技产业,2001(11).

猜你喜欢

黑盒开发人员用例
一种基于局部平均有限差分的黑盒对抗攻击方法
UML用例模型中依赖关系的比较与分析
Semtech发布LoRa Basics 以加速物联网应用
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
让Windows 10进入开发者模式
后悔了?教你隐藏开发人员选项
《修辞学发凡》用例的当代学术价值
三星SMI扩展Java论坛 开发人员可用母语