《软件工程导论》第一章 软件工程学概述(1.1软件危机)

1.1软件危机

1、什么是软件危机?

软件危机,是指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。

2、软件危机的典型表现

  1. 对软件开发成本和进度的估计,常常很不准确。
  2. 用户对“已完成的“软件系统不满意的现象,经常发生。
    软件开发人员常常在对用户要求只有模糊的了解,甚至对所要解决的问题还没有确切的认识的情况下,就匆忙着手编写程序。软件开发人员与用户之间的信息交流往往很不充分,“闭门造车“必然导致最终的产品不符合用户的实际需要。
  3. 软件产品的质量往往靠不住。
    软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审、程序正确性证明、测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量问题。
  4. 软件常常是不可维护的。
  5. 软件通常没有适当的文档资料。
    计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式“(和程序代码完全一致的)。
    软件开发组织的管理人员,可以适用这些文档资料作为“里程碑“,来管理和评价软件开发工程的进展状况。
    软件开发人员,可以利用它们作为通信工具,在软件开发过程中准确地交流信息。
    对于软件维护人员而言,这些文档资料更是必不可少的。
    缺乏必要的文档资料,或文档资料不合格,必然给软件开发和维护带来许多严重的困难和问题。
  6. 软件成本在计算机系统总成本中所占的比重逐年上升。
  7. 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

3、产生软件危机的原因

  1. 与软件本身的特点有关
    (1)由于软件缺乏“可见性“,在写出程序代码并在计算机上试运行之前,软件开发过程的的进展情况较难衡量,软件的质量也较难评价,因此,管理和控制软件开发过程相当困难。
    (2)软件在运行过程中不会因为使用时间过长而被“用坏“,如果运行中发现了错误,很可能是遇到了一个在开发时期引入的、在测试阶段没能被检测出来的错误。因此,软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。
    (3)软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
    为了在预定时间内开发出规模庞大的软件,必须由许多人分工合作,然而,如何保证每个人完成的工作合在一起确实能构成一个高质量的、大型软件系统,更是一个极端复杂困难的问题,这不仅涉及许多技术问题,诸如分析方法、设计方法、形式说明方法、版本控制等,更重要的是必须有严格而科学的管理。

  2. 与软件开发与维护的方法不正确有关
    (1)忽视软件需求分析的重要性。
    对用户要求没有完整准确的认识就匆忙着手编写程序,是许多软件开发工程失败的主要原因之一。只有用户才真正了解他们自己的需要,但是许多用户在开始时并不能准确具体地叙述他们的需要,软件开发人员需要做大量深入细致的调查研究工作,反复多次地和用户交流信息,才能真正全面、准确、具体地了解用户的要求。
    软件生命周期:
    第一步:定义问题(确定要求解决的问题是什么)
    第二步:可行性研究(确定该问题是否存在一个可行的解决办法)
    第三步:需求分析(深入具体地了解用户的要求,在所要开发的系统必须做什么这个问题上和用户取得完全一致的看法)
    第四步:设计(概要设计、详细设计)
    第五步:测试(需要的工作量通常占软件开发全部工作量的40%-50%)
    第六步:交付。
    (2)只重视程序而忽视软件配置的其余成分,没有认识到程序只是完整的软件产品的一个组成部分。
    在上述“软件生命周期“的每个阶段都要得出最终产品的一个或几个组成部分(这些组成部分通常以文档资料的形式存在),也就是说,一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档、数据等成分。
    (3)轻视软件维护。
    在软件开发的不同阶段进行修改需要付出的代价是很不相同的。
    在早起引入变动,涉及的面较少,因而代价也比较低。
    在开发的中期,软件配置的许多成分已经完成,引入一个变动要对软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。

4、消除软件危机的途径

为了消除软件危机,首先应该付哦计算机软件有一个正确的认识,应该彻底消除“软件就是程序“的错误观念。一个软件必须由一个完整的配置组成,事实上,软件是程序、数据、及相关文档的完整集合。
程序是能够完成预定功能和性能的可执行的指令序列;
数据是使程序能够适当地处理信息的数据结构;
文档是开发、使用和维护程序所需要的图文资料。
总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件工程导论是考研电子信息专业的一门重要课程。根据引用和引用的内容,软件工程导论的学习可以通过以下步骤进行: 1. 下载和学习资料:可以下载引用提到的xmind脑图和引用提到的复试笔记。这些资料可以帮助你整理和理解软件工程导论的知识点。 2. 重点整理知识点:根据引用[1]提到的xmind脑图,可以将软件工程导论的知识点进行整理和分类。可以根据复试笔记的内容,将知识点分为不同的模块,如软件工程导论的基本概念、软件开发过程软件项目管理等。 3. 学习管理信息系统和其他相关课程:引用提到了管理信息系统和其他课程的知识点。这些课程与软件工程导论有一定的关联,学习这些课程可以帮助你更好地理解和应用软件工程导论的知识。 4. 复习编译原理、计算机网络和数据库:引用提到了编译原理、计算机网络和数据库的知识点。这些知识点在软件工程导论也是重要的内容,复习这些知识可以加深对软件工程导论的理解。 总之,软件工程导论的考研学习可以通过下载和学习相关资料,整理知识点,学习相关课程,并复习相关知识点来进行。这样可以帮助你更好地准备考研,掌握软件工程导论的重要知识。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [【考研整理】软件工程导论.zip](https://download.csdn.net/download/weixin_40908748/12424518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [电子信息专业 - 考研复试笔记分享(软件工程导论-第六版 + 管理信息系统-马慧).rar](https://download.csdn.net/download/weixin_41731475/12454588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值