海大计算机专业软件工程课程资料lge第一章软件工程学概述.ppt

海大计算机专业软件工程课程资料lge第一章软件工程学概述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Email:green.lyn@;你编写过的最长的程序有多少行? A: 50行以内 B:50-100行 C: 100-500行 D: 500行以上;1.1 软件危机 1.1.1 软件危机的介绍 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。包含下述两个问题: 如何开发软件,怎样满足对软件的日益增长的需求; 如何维护数量不断膨胀的已有软件。; 软件危机主要有以下一些表现: 对软件开发成本和进度的估计常常很不准确; 用户对“已完成的”软件系统不满意的现象经常发生; 软件产品的质量往往靠不住; 软件常常是不可维护的; 软件通常没有适当的文档资料; 软件成本在计算机系统总成本中所占的比例逐年上升; 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。; 正像下面一段对软件危机的形象描述: “…..正像一只逃亡的野兽落到泥潭中作垂死的挣扎,越是挣扎,陷得越深。最后无法逃脱灭顶的灾难,… 程序设计工作正像这样一个泥潭,….一批批程序员被迫在泥潭中拼命挣扎,……” ;1.1.2 产生软件危机的原因 两方面的原因: 一是软件本身的特点: 软件不同于硬件,是计算机系统中的逻辑部件而不是物理部件。(运行之前难以评价。) 软件不同于一般程序,它的一个显著特点是规模庞大。(分工合作如何组织才能产生高质量软件?) 二是软件开发与维护的方法原因。(忽视需求分析,轻视软件维护) 软件生命周期: 一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,这个漫长的时期称为生命周期。;代价; 1.2 软件工程 1.2.1 软件工程的介绍 概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 ; 软件工程典型的定义: “软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件 ,而建立和使用完善的工程原理。”该定义不仅???出了软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并使用完善的工程原理。 1993年IEEE进一步给出了一个更全面更具体的定义:“软件工程是:(1) 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研究(1) 中提到的途径。; 软件工程的本质特征: ;1.2.2 软件工程的基本原理 1. 用分阶段的生命周期计划严格管理 2. 坚持进行阶段评审 3. 实行严格的产品控制 4. 采用现代程序设计技术 5. 结果应能清楚的审查 6. 开发小组的人员应该少而精 7. 承认不断改进软件工程实践的必要性 ;1.2.3 软件工程方法学 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。 软件工程方法学包含3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架。 目前使用的最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。;;2. 面向对象方法学 面向对象方法学具有下述4个要点: ; (3)按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。在该层次中,派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。 ;1.3 软件生命周期 ; 各阶段的基本任务: 1. 问题定义 必须回答的关键问题是:“要解决的问题是什么?” 2. 可行性研究 必须回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?” 3. 需求分析 准确的确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备那些功能。; 4. 总体设计 必须回答的关键问题是:“概括地说,应该如何解决这个问题?”。 有两个任务: (1)考虑几种可能的解决方案。 低成本解决方案;中等成本解决方案;高成本“十全十美”的系统; (2)设计软件结构,即确定程序由哪些模块组成以及模块间的关系。 5.详细设计 关键问题是:“应该

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档