经典案例
  • 菏泽新巨龙采掘质量标准化管理系统软件开发案
  • 济南市科技局软件开发案例
  • 绩效考核系统软件开发案例
  • 炼铁厂管理信息系统软件开发案例
  • 聊城高唐国税局软件开发案例
  • 人力资源管理信息系统软件开发案例
  • 山东省地质测绘院软件系统开发案例
  • 室内展屏系统遵循当代物联网系统
  • 洁能建筑智能管理终端系统软件开发案例


软件开发的定义-计算机软件的演化

发布于:2015-03-29 11:34来源:未知 作者:admin 点击:
  在1970年,只有不到1%的人能够比较准确地描述出什么是“计算机软件”。而现在,大多数专业人士和许多业外公众都认为他们了解了什么是软件。

  但他们真的了解吗?

  关于软件,教科书上一般是如下定义的:软件是(1)能够完成预定功能和性能的可执行的指令(计算机程序);(2)使得程序能够适当地操作信息的数据结构;(3)描述程序的操作和使用的文档。毫无疑问,也可以给出其他更详细的定义。

  但我们不只是需要一个形式上的定义。

  软件特征

  要理解软件的含义(以及对软件工程有一个全面的理解),首先要了解软件的特征是很重要的,据此能够明白软件与人类建造的其他事物之间的区别。当建造硬件时,人的创造性的过程(分析、设计、建造、测试)能够完全转换成物理的形式。如果我们建造一个新的计算机,初始的草图、正式的设计图纸和面板的原型一步步演化成为一个物理的产品(VLSI芯片、线路板、电源等等)。

  而软件是逻辑的而不是物理的产品。因此,软件具有与硬件完全不同的特征:

  1.软件是由开发或工程化而形成的,而不是传统意义上的制造产生的。

  虽然在软件开发和硬件制造之间有一些相似之处,但两者本质上是不同的。

  这两者,都可以通过良好的设计获得高质量,但硬件在制造过程中可能会引入质量问题,这种情况对于软件而言几乎不存在(或是很容易改正)。软件成为产品之后,其制造只是简单的拷贝而已;两者都依赖于人,但参与的人和完成的工作之间的关系不同;两者都是建造一个产品,但方法不同(见第3章)。

  软件成本集中于开发上,这意味着软件项目不能象硬件制造项目那样来管理。

  在80年代中期,“软件工厂”的概念被正式引入[MAN84]、[YAJ84]。

  应该注意到这个术语并没有把硬件制造和软件开发认为是等价的。而是通过软件工厂这个概念提出了软件开发中应该使用自动化工具(见第5部分)。

  2.软件不会“磨损”。

  刻划了随着时间的改变硬件故障率的变化曲线图。其关系,常常被称作“浴缸曲线”,表明了硬件在其生命初期有较高的故障率(这些故障主要是由于设计或制造的缺陷);这些缺陷修正之后,故障率在一段时间中会降到一个稳定的曲线上(很低)。随着时间的改变,故障率又提升了,这是因为硬件构件由于种种原因会不断受到损害,例如灰尘、振动、滥用、温度的急剧变化以及其他许多环境问题。简单讲,硬件已经开始磨损了。

  软件并不受到这些引起硬件磨损的环境因素的影响。因此,理论上讲,软件的故障率曲线呈现出如图1-3所示的形式。隐藏的错误会引起程序在其生命初期具有较高的故障率。但这些错误改正之后(我们假设理想情况下改正过程中并不引入其他错误),曲线就趋于平稳,如图所示。图1-3给出了实际软件故障模型的一个总的简化图(第8章将给出更多信息)。其意义很清楚——软件不会磨损,不过它会退化。

  这个说法表面上似乎是矛盾的,。在其生命期中,软件会经历修改(维护),随着这些修改,有可能会引入新的错误,使得故障率曲线呈现为图1-4所示的锯齿形。在该曲线能够恢复到原来的稳定状态的故障率之前,又需要新的修改,又引起一个新的锯齿。慢慢地,最小故障率就开始提高了——软件的退化由于修改而发生了。

  关于磨损的另一个侧面也表明了硬件和软件之间的不同。当一个硬件构件磨损时,可以用另外一个备用零件替换它,但对于软件就没有备用零件可以替换了。

  每一个软件故障都表明了设计或是将设计转换成机器可执行代码的过程中存在错误。因此,软件维护要比硬件维护复杂得多。

  3.大多数软件是自定的,而不是通过已有的构件组装而来的。

  我们先看一看一个基于微处理器的控制硬件是如何设计和建造出来的。设计工程师画一个简单的数字电路图,做一些基本的分析以保证可以实现预定的功能,然后查阅所需的数字零件的目录。每一个集成电路(通常称为“IC”或“芯片”)都有一个零件编号、固定的功能、定义好的接口和一组标准的集成指南。

  每一个选定的零件,都可以在货架上买到。

  而软件设计者就没有上述这种荣幸了。几乎没有软件构件。有可能在货架上买到的软件,它本身就是一个完整的软件,而不能作为构件再组装成新的程序。

  虽然关于“软件复用”已有大量论著,但这种概念的成功实现还只是刚刚开始。

  
tag标签:
------分隔线----------------------------
------分隔线----------------------------

最新标签
当月热门标签
随机标签
微信公众平台登录开发 | 手机应用软件开发制作 | 软件开发 | 成功案例展示 | 公司新闻 | 行业资讯 | 网站建设优化推广 | 关于我们 | 联系我们 | 人才招聘 | 软件开发问答