- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络教育学院 网络教育学院 第三章 数据库系统(小结) 第四章 软件工程技术基础 §4.1 软件工程概述 20世纪60年代末期,随着计算机应用的普及和深化,计算机软件以惊人的速度急剧膨胀,规模越来越大,复杂程度越来越高,在软件开发和维护过程中出现了一系列严重问题——软件危机 (1)软件开发进度难以预测 (2)软件开发成本难以控制 (3)用户对软件功能难以满足 (4)软件产品质量无法保证 (5)软件产品难以维护 (6)软件通常缺少适当的文档资料 为了研究、解决软件危机,诞生了一门新兴学科——软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机。 1968年由NATO (北大西洋公约组织)在德国Garmish召开的学术会议上,Feitz Bauer首先提出了“软件工程”概念。 4.1.1什么是软件工程? Fritz Bauer在NATO会议上给出的定义: “软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。” 教材上的定义: 软件工程是研究大规模程序设计的方法、工具和管理的一门工程科学。 软件工程与编程 前者是一门学科,一种科学理论来指导软件系统开发,标准化,自动化的过程 考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的规格要求;怎样才能易于维护 单纯的代码编写 是软件工程发展的前身 是软件工程中占据很少时间和空间的一部分 软件工程的主要研究内容 软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 软件工程管理:软件管理学 软件经济学 软件心理学 软件工程所包含的内容不是一成不变的,而是随着人们对软件系统的研制开发和生产的理解而发展。应用发展的眼光看待它。 §4.1.2 软件工程的基本原则 软件产品从形成概念开始,经过开发、运行和维护直到退役的全过程称为软件生命期,包括软件定义、开发、维护三大阶段。 软件定义 可行性研究 需求分析 软件开发 概要设计 详细设计 编码 维护 测试、运行维护 §4.1.3 软件质量的评价 成功的标准: 用户在用 用户可很容易做完要做的事 失败的根本原因: 开发人员写出的东西达不到 用户要求(人的问题.技术问题) 质量与生产率 质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实 质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提 质量与生产率的提高就指望程序员与程序经理 非得在质量与生产率之间分个主次不可,那么应该是质量第一,生产率第二 质量与生产率(2) 质量直接体现在软件的每段程序中,高质量自然是开发人员的技术追求,也是职业道德的要求 高质量对所有的用户都有价值,而高生产率只对开发方有意义 如果一开始就追求高生产率,容易使人急功近利,留下隐患 不贪污的官就是好官吗 “运行正确”的程序就是高质量的程序吗? 也许运行速度很低并且浪费内存;也许代码写得一塌糊涂 软件的质量因素 软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等等(还可以列出十几个) 一般说来倾向于可维护性、可靠性、可理解性和效率 软件质量因素分类 正确性与精确性 机器不会主动欺骗人,软件运行不正确或者不精确一般都是人造成的 需求分析错了,那么对客户而言这个软件也存在错误 如果软件没有100% 地按需求规格执行,那么这个软件也存在错误 程序员要为“正确”、“精确”四个字竭尽全力 性能与效率 用户都希望软件的运行速度高些(高性能),并且占用资源少些(高效率) 旧社会地主就是这么对待长工的:干活要快点,吃得要少点 通过优化算法、数据结构和代码组织来提高软件系统的性能与效率优化的关键 工作是找出限制性能与效率的“瓶颈” 易用性 导致软件易用性差的根本原因是开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也一定会满意 当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“友好”来评价易用性 可理解性与简洁性 开发人员只有在自己思路清晰时才可能写出让别人能理解的程序 编程时还要注意不可滥用技巧,应该用自然的方式编程 简洁是一种美 (如果把学术文章写得很简洁,让人很容易理解,它往往中不了 ) 可复用性与可扩充性 一种方式是原封不动地使用现成的软件构件 一种方式是对现成的软构件进行必要的
文档评论(0)