软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。解决软件危机包括两方面的问题:(1)如何开发软件,(2)如何维护软件。\r\n 软件危机的一些主要表现有:(一)对软件开发成本、进度及工作量的估计不准确,导致软件代价增高。\r\n(二)软件质量低,主要表现为(1)用户对“已完成的”软件不满意的现象经常发生。(2)软件有质量问题。\r\n(三)软件修改、维护困难,主要表现为:(4)软件没有适当的文档资料。软件开发人员可以用文档资料作为交流,而软件维护人员可以使用文档资料对软件维护。(5)软件成本在计算机系统成本中所占的比例逐年上升。(6)软件开发生产率提高的速度跟不上计算机普及的速度。
产生软件危机的主要原因有二:(1)软件本身的特点,且规模越来越大,复杂性急剧增加;(2)开发与维护方法不正确。\r\n 消除软件危机的途径:(1)对计算机软件有一个正确的认识,“软件就是程序是错误的”;(2)开发过程中采取有效的方法;(3)使用更好的软件工具;(4)研制新一代计算机。
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术来开发和维护软件\r\n 1、软件工程的本质特征:(1)软件工程关注于大型程序的构造。(2)软件工程的中心课题是控制复杂性。(3)软件经常变化。(4)开发软件的效率特别重要,寻找开发与维护软件的有效方法和工具。(5)和谐地合作是开发软件的关键。(6)软件必须有效地支持它的用户。包括完成用户需要的功能,培训用户等。(7)软件工程领域是由具有一种文化背景的人替有另一种文化背景的人创造产品。因为软件工程师是软件方面的专家,而不是应用领域的专家。
软件工程所要达的的目标:\r\n 开发出高性价比的软件。
软件工程的基本原理:即怎样保证软件开发的质量和效率。\r\n (1)用分阶段的生命周期计划严格管理,将软件的生命周期分为几个阶段。并制定出切实可行的计划,然后按照计划对软件开发和维护进行管理,(2)坚持进行阶段评审,以发现当前完成阶段所出现的错误,这样作 有两个理由,其一,大部分错误是编码之前造成的,错误发现得越晚,付出的代价越大, (3)实现严格的产品控制,要修改部分软件必须考虑到整体软件的一致性。绝不能谁想修改软件就修改软件。
(4)采用现代程序设计技术,(5)结果应能清楚地审查。应该规定开发组织的产品标准和责任。(6)开发小组的人员要少而精。(7)承认不断改进软件工程实践的必要性。不断积累经验,积极主动地采纳新的软件技术。
3、软件工程方法学\r\n 软件工程方法学包括3个要素:方法、工具和过程。\r\n 目前有两种常用的软件工程方法学:(1)传统方法学,它主要使用结构化技术来完成各项任务。传统方法学也叫生命周期方法学,将软件的开发过程分为几个阶段。每一个阶段的开始和结束都有严格的标准。 (2)面向对象方法学,而面向对象方法学的软件产品基本上独立的对象组成,这些对象通过相互发送消息来完成通信功能。面向对象方法学的4个要点:对象、类、继承和消息。