软件危机
软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重问题。(考试中名词解释或者选择题为主)
软件危机的典型表现
(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件通常没有适当的文档资料。
(5)软件成本在计算机系统总成本中所占的比例逐年上升。
(6)软件常常是不可维护等等。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
总之开发成本高,周期长,质量差,满足不了市场需求。
产生软件危机的原因
(1)软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
(2)软件开发的管理困难。
(3)轻视软件维护的重要性。(软件维护的费用占软件总费用的55%-70%)
(4)软件开发费用增加。
(5)软件开发技术落后。
消除软件危机的途径
(1)首先应该对计算机软件有一个正确的认识。
(2)必须充分认识到软件开发不是某个个体的神秘技巧,而是一种组织良好,管理严密,各类人员协调配合,共同完成的工程项目。
(3)必须充分吸收和借鉴人类长期以来从事各种工程项目所累积的行之有效的原理,概念,技术和方法,特别要吸收几十年来人类从事计算机硬件研究和开发的经验教训。
(4)应该开发和使用更好的软件工具。
为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
软件工程介绍
1968年在第一届NATO会议上提出了软件工程的一个早期定义:软件工程介绍为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
1993年IEEE进一步给出了一个更全面更具体的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程应用于软件;②研究①中提到的途径。
软件工程的本质特性
(1)软件工程的中心课题是控制复杂性
(2)软件经常变化。
(3)开发软件的效率非常重要。
(4)和谐地合作是开发软件的关键。
(5)软件必须有效地支持它的用户。
(6)软件工程关注于大型程序的构造。
(7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程三个观点
技术观点:
软件项目的分析,设计,编码,测试,维护等方法。依据软件技术理论,以开发高效,健壮,可复用,可维护的软件为目标。研究软件体系结构,组成成本以及构造方式等。
工程观点:
包括软件项目的招标,投标,合同,实施,监督,验收,推广等方面,以经济管理科学的理论为依据,研究软件工程的规划策略和经济收益等工程问题。
管理观点:
包括软件开发的人员组织,过程控制进度,风险分析和质量保证体系等方面,以科学性,合理性,高效运行及可测量性为目标,来研究工程项目管理。
软件工程的基本原理
(1)用分阶段的生命周期计划严格管理。
(2)坚持进行阶段评审。
(3)实行严格的产品控制。
(4)采用现代程序设计技术。
(5)结果应能清楚地审查。
(6)开发小组的人员应该少而精。
(7)承认不断改进软件工程实践的必要性。
软件工程包括技术和管理两个方面的内容,是技术与管理紧密结合所形成的工程学科。
所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型
软件工程方法学包含3个要素:方法、工具和过程。
方法是完成软件开发的各项任务的技术方法,回答”怎么做“的问题。
工具是为运用方法而提高的自动的或半自动的软件工程支撑环境。
过程是为了获得高质量软件所需要完成的一系列的框架,他规定了完成各项任务的工作步骤。
目前使用最广泛的软件工程方法学,分别是传统方法学,面向对象方法学
软件生命周期
由软件定义,软件开发和运行维护3个时期组成,每个时期进一步分成若干个阶段。
定义阶段:问题定义,可行性分析,需求分析。
开发阶段:软件设计,程序编码,软件测试
维护阶段:运行维护,交付