您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程-齐志昌-第二版(1)
2019/8/13国防科技大学计算机学院1前言软件和软件工程在信息化社会中的地位和作用2019/8/13国防科技大学计算机学院2八十年代初科学家的预言(1/2)Osborne1979将迎来”新的工业革命”Toffler1980微电子的发展是人类历史上的”第三次浪潮”80年代初美国商业周刊杂志在头版刊登大标题:“软件:新的驱动力”当时人们还没有意识到他们的预见是多么的正确。2019/8/13国防科技大学计算机学院3八十年代初科学家的预言(2/2)Naisbitt1982人类社会将“从工业社会向信息社会转变”Feigenbaum1983计算机控制的信息和知识将成为20世纪表现能力的焦点Stoll1989网络和软件产生的“电子社会”是实现全球知识交流的关键。2019/8/13国防科技大学计算机学院4二十年后的现实1.计算机的发展与普及2.计算机软件的发展与普及3.计算机网络的发展与普及2019/8/13国防科技大学计算机学院5观察与思考因为普及了计算机、软件和网络…迎来了信息化社会和知识经济。2019/8/13国防科技大学计算机学院6软件在信息化社会中的地位和作用软件与经济软件与政治软件与军事软件与文化软件与教育软件与法律道德2019/8/13国防科技大学计算机学院7结论软件是信息化社会和知识经济的基础,它渗透到人们生活、工作的所有领域,并迅速的改变着人们的生活和工作方式,改变着社会的产业结构和面貌。人们对软件的依靠越来越密切,社会需要大量的丰富多彩的软件,并随着社会的发展不断更新、充实和提高。2019/8/13国防科技大学计算机学院8教材2019/8/13国防科技大学计算机学院9教材和参考书2019/8/13国防科技大学计算机学院10第一章软件与软件工程软件与软件工程的概念软件生存周期软件开发模型软件工程工具及环境软件工程组织度量2019/8/13国防科技大学计算机学院111.1软件软件的概念;软件的特点;软件的分类;软件的发展;软件危机。第一章软件与软件工程2019/8/13国防科技大学计算机学院121.1.1软件的概念软件是什么?1.1软件2019/8/13国防科技大学计算机学院13软件的概念软件是计算机系统的重要组成部分;软件是逻辑产品,需要计算机硬件和系统软件的支撑;软件是计算机控制系统的指挥中枢;软件是信息转换器,它能对信息进行加工、处理或变换;软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;1.1软件2019/8/13国防科技大学计算机学院14软件的概念计算机世界的软件软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。软件=程序+数据+文档程序=算法+数据结构1.1软件2019/8/13国防科技大学计算机学院151.1.2软件的特点软件开发与传统的产品生产存在本质差别;软件是逻辑产品,而不是物理产品;软件不会磨损;1.1软件2019/8/13国防科技大学计算机学院16软件的描述(1/3)软件由程序、数据、文档组成。1.1软件2019/8/13国防科技大学计算机学院17软件的描述(2/3)程序设计语言面向机器汇编语言、机器语言等面向过程Fortran,Pascal,C等面向对象C++,Java等面向问题结构化查询语言SQL等1.1软件2019/8/13国防科技大学计算机学院18软件的描述(3/3)数据用程序设计语言要求的数据结构表示文档规范准确清晰简洁无歧义自然语言结构化英语图表1.1软件2019/8/13国防科技大学计算机学院191.1.3软件分类系统软件实时软件商务软件工程和科学计算软件嵌入式软件人工智能软件个人计算机软件1.1软件2019/8/13国防科技大学计算机学院201.1.4软件的发展软件发展的四个阶段软件发展存在的问题1.1软件2019/8/13国防科技大学计算机学院211)软件发展的四个阶段1950---1965没有系统的软件开发方法和管理机制、自定义软件、批处理、有限分布。1965---1975产生人机交互的新概念、新技术软件产品、多用户、实时、数据库。1.1软件2019/8/13国防科技大学计算机学院221973---1988微处理器的出现并广泛应用分布式系统、嵌入智能、低成本硬件、消费者的影响。1986---2000广域和局域网络迅速普及强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网络计算机。软件发展的四个阶段(2/2)1.1软件2019/8/13国防科技大学计算机学院232)软件发展存在的问题(1/2)软件开发能力不能满足人们的需要。社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性。建造高可靠性、高质量软件的任务任重路远。1.1软件2019/8/13国防科技大学计算机学院24软件发展存在的问题(2/2)若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦界面的方法。1.1软件2019/8/13国防科技大学计算机学院251.1.5软件危机1.软件危机的表现硬件发展超过软件,硬件潜能没有充分发挥。软件产业的发展长期滞后,与硬件发展不协调。1.1软件2019/8/13国防科技大学计算机学院26软件危机软件开发成本过高软件质量得不到保证软件开发效率低难以控制开发进度,工作量估计困难软件不能满足社会发展的需求,成为社会、经济发展的制约因素1.1软件2019/8/13国防科技大学计算机学院27程序规模、工作量与成本的关系产品代码行工作量(人年)成本(百万)Lotus1-2-3Version3.0400k26322SpaceShuttle25.6M121989LincolnContinental83.5M351.8CityBankTellermachine780k15013.2IBMChechoutScanner90k5831.1软件2019/8/13国防科技大学计算机学院282.软件危机原因软件的规模加大、复杂性提高、性能增强软件是逻辑产品,尚未完全认识其本质和特点缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法1.1软件2019/8/13国防科技大学计算机学院29软件危机原因用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足………1.1软件2019/8/13国防科技大学计算机学院303.软件危机仍在继续---影响软件质量的糊涂认识(1/3)在项目的初始阶段对系统若明若暗就开始写程序认为软件是灵活的容易修改,对软件需求的改变不以为然程序调试成功标志着工作的结束1.1软件2019/8/13国防科技大学计算机学院31软件危机仍在继续---影响软件质量的糊涂认识(2/3)程序运行前无法评价程序的质量一个软件项目给客户提交的主要是程序,而软件文档则认为可有可无、可多可少等等。虽然发布了软件标准和规范,但在实践中执行需要额外的开销,划不来1.1软件2019/8/13国防科技大学计算机学院32软件危机仍在继续---影响软件质量的糊涂认识(3/3)虽然开发了许多软件工具,但很多开发者对使用这些工具兴趣不大为了开发软件人们不惜用重金购买最新型号的主机和工作站而不愿意购买软件工具在软件开发过程中,进度迟后就增派更多的程序员突击,赶进度………1.1软件2019/8/13国防科技大学计算机学院331.2软件工程的概念1968年NATO计算机科学会议软件危机--根源--解决途径软件工程第一章软件与软件工程2019/8/13国防科技大学计算机学院341.2.1.软件工程的定义(1/3)软件工程FritzBauer[nau69]为了经济的获得可靠的,在实际机器上高效运行的软件,而建立和使用的好的工程原则。1.2软件工程的概念2019/8/13国防科技大学计算机学院35软件工程的定义(2/3)软件工程[教材]软件工程是运用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理的方法。1.2软件工程的概念2019/8/13国防科技大学计算机学院36软件工程的定义(3/3)软件工程[IEE93](1)将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程;(2)上述方法的研究。1.2软件工程的概念2019/8/13国防科技大学计算机学院37软件工程三要素过程、方法和工具(1/5)质量是软件工程的生命线,软件工程以质量保证为基础。质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。1.2软件工程的概念2019/8/13国防科技大学计算机学院38软件工程三要素过程、方法和工具(2/5)软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具、过程和工具促进方法学的研究。1.2软件工程的概念2019/8/13国防科技大学计算机学院39软件工程三要素过程、方法和工具将系统的、规范的、可量化的方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。1.2软件工程的概念软件工程过程方法工具2019/8/13国防科技大学计算机学院40软件工程三要素过程、方法和工具(3/5)软件工程的过程过程贯穿软件开发的各个环节,各环节之间建立里程碑;管理者在软件工程过程中对软件开发的质量、进度、成本进行评估、管理和控制;技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报告、表格等)。1.2软件工程的概念2019/8/13国防科技大学计算机学院41软件工程三要素过程、方法和工具(4/5)软件工程的方法软件工程方法是完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件需求分析、设计、编程、测试和维护。软件工程方法依赖一组原则,它贯穿软件工程的各个环节。软件工程方法分两类:传统方法和面向对象方法1.2软件工程的概念2019/8/13国防科技大学计算机学院42软件工程三要素过程、方法和工具(5/5)软件工程工具它为软件工程的过程和方法提供自动化或半自动化的工具支持。将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统称“计算机辅助软件工程(CASE)”,系统中某一工具的信息加工结果可以作为另一工具的输入。集成的软件工程工具再加上人的因素构成了软件工程环境。1.2软件工程的概念2019/8/13国防科技大学计算机学院43软件开发方法和软件工具结构化分析方法结构化程序设计语言面向对象分折方法面向对象程序设计语言1.2软件工程的概念2019/8/13国防科技大学计算机学院443.软件和软件开发过程软件过程和软件产品密切相关。大型软件项目没有良好的软件开发过程,不可能建造出用户满意的优质产品;反之,一个好的软件产品隐含着良好的软件开发过程。计算机软件领域产品和过程不断交替创新,促进软件工程的进步和发展。1.2软件工程的概念2019/8/13国防科技大学计算机学院451.2.2软件工程目标(1/6)在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。1.2软件工程的概念2019/8/13国防科技大学计算机学院46软件工程目标(2/6)有效性能有效地利用计算机的时间和空间资源可修改性容许对系统进行修改而不增加原系统的复杂性,它支持软件的调试与维护。1.2软件工程的概念2019/8/13国防科技大学计算机学院47软件工程目标(3/6)可靠性具有能够防止因概念、设计和结构等方面的不完善而造成的系统失效,具有挽回因操作不当造成软件系统失效的能力可理解性系统具有清晰的结构,能直接反映软件需求。1.2软件工程的概念2019/8/13国防科技大学计算机学院
本文标题:软件工程-齐志昌-第二版(1)
链接地址:https://www.777doc.com/doc-212986 .html