西门子EM221CN
发需要大量人力,软件成本所占比例持续上涨。
(7)软件开发生产率的提高赶不上硬件的发展和人们需求的增长。
软件产品的“供不应求”现象使人类不能充分利用现代计算机硬件提供的巨大潜力。
以上列举的仅仅是软件危机的一些典型表现,事实上,软件危机带给软件开发和维护的问题远不止这些。
软件不仅是程序,还应该有完整的文档数据。这些文档数据应该是在软件开发过程中产生出来的,应该是和代码程序完全一致的,对于软件开发组织的管理人员、开发人员、维护人员而言都是至关重要、必不可少的。缺乏必要的文档数据,必然给软件开发和维护带于人们根据不同的应用要求选择相应的软件,也鉴于不同类型的工程对象对软件的开发和维护有目前,概括来说,软件危机包含两方面问题:一方面是如何开发软件,以满足不断增长、日益复杂的需求;另一方面是如何维护数量不断膨胀的软件产品。鉴于软件危机的长期性和症状不明显的特征,近年来也有着不同的要求和处理方法具体来说,软件危机有以下一些典型表现。
(1)对软件开发成本和进度的估计常常不准确。
拖延几个月甚至几年工期的现象并不罕见,这种现象降低了软件开发组织的信誉。
新国际机场为例,按原定计划要在1993年万圣节前启用,但一直到1994年6月,机场的计划者还无法预测系统何时能达到可使机场开放的稳定程度。
(2)用户对“已完成”系统不满意的现象经常发生。
软件开发人员和用户间的交流不充分,造成开发人员对用户的需求一知半解,仓促编写程序,西门子终导致产品与用户期望值的差距过大。
(3)软件产品的质量往往靠不住。,对软件进行分类是必要的。人们对软件的关心和侧重点有所不同,难以找到一种统一的严格分类标准。软件还正在吞噬许多被广泛认为主要存在于实体世界的行业价值链。今天的汽车里,软件操作着引擎,控制着安全功能,给乘客带来娱乐,引导驾驶员向目的地行驶,实现每辆汽车与移动设备、卫星和全球定位系统
软件根据规模可分为微型软件、小型软件、中型软件、大型软件、甚大型软件、极大型软件;根据工作方式可分为实时处理软件、分时软件、交互式软件和批处理软件;根据功能可分为系统软件、支撑软件和应用软件。
(1)系统软件
系统软件是与计算机硬件紧密配合,使计算机的硬件与相关软件及数据进行协调、高效工作的系统,如操作系统、数据库管理系统、设备驱动程序以及通信处理程序等。系统软件是计算机系统必不可少的,它频繁地与硬件
通过进程管理和数据结构处理,为用户提供服务。
(2)支撑软件
支撑软件是协助用户开发软件的工具性软件,包括帮助程序人员开发软件产品的工具和帮助管理人员控制开发进程的工具。如果系统响应时间过长,用户就会感到紧张和沮丧。当用户工作速度是由人机界面决定的时候,系统响应时间过短也不好,这会迫使用户加快操作节奏,从而可能会犯错误。
易变性指系统响应时间相对于平均响应时间的偏差,这是系统响应时间比较重要的属性。系统响应时间较长,响应时间易变性低也有助于用户建立起稳定的工作节奏。例如,稳定在1s的响应时间比从0.1s~2.5s变化的响应时间要好。
2.用户帮助设施
几乎交互式系统的每个用户都需要帮助,当遇到复杂问题时甚至需要查看用户手册以寻找答案。大多数现代软件都提供联机帮助设施,这使得用户无需离开用户界面就能解决自己的问题。
常见的帮助设施可分为集成的和附加的两类。集成的帮助设施从一开始就设计在软件里面,通常