[经济学]软件工程-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《[经济学]软件工程-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经济学 软件工程 课件
- 资源描述:
-
1、贺志军贺志军 北师大珠海分校信息技术学院励耘楼北师大珠海分校信息技术学院励耘楼small 308 软件工程软件工程 之之Copyright Zhijun He软件和软件工程软件和软件工程21.计算机软件(概念、特点、分类、语言)2.软件危机(表现和根源)3.软件工程(概念、研究内容、发展历程、实践框架)Copyright Zhijun He软件和软件工程软件和软件工程3n什么是计算机软件n计算机软件的特点Copyright Zhijun He软件和软件工程软件和软件工程4可执行部分可执行部分不可执行部分不可执行部分文档文档1文档文档2文档文档3n计算机系统中的程序及其文档的集合,文档是为了便于
2、了解程序所需的阐明性资料,文档一般是给人看的,不一定装入计算机程序程序Copyright Zhijun He软件和软件工程软件和软件工程5n程序:由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列n程序例子Main()int i,j;/变量定义 char Str10;i=i+j;/语句说明 Copyright Zhijun He软件和软件工程软件和软件工程6n程序设计语言具有良好、严格语法和语义n目前程序设计语言主要有以下几种类型 面向机器:如汇编语言、机器语言等 面向过程:如Fortran,Pascal,C等等 面向对象:如Java等等 面向问题:如结构化查询语言SQL等等早期早
3、期 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段面向批处理面向批处理 多用户多用户 分布式系统分布式系统 强大的桌面系统强大的桌面系统有限的分布有限的分布 实时实时 嵌入嵌入“智能智能”面向对象技面向对象技术术自定义软件自定义软件 数据库数据库 低成本硬件低成本硬件 专家系专家系统 软件产品软件产品 消费者的影响 人工神经网络人工神经网络 并行计算并行计算 网络计算机网络计算机195019601970198019902000Copyright Zhijun He软件和软件工程软件和软件工程8n 1946-1956年年 从计算机问世到实用的高级程序语言出现前从计算机问世到实用的高级程序语
4、言出现前存储容量比较小,运算速度比较慢存储容量比较小,运算速度比较慢采用个体工作方式采用个体工作方式,用低级语言编写程序用低级语言编写程序应用领域主要是以数值数据处理为主的科学应用领域主要是以数值数据处理为主的科学计算,计算,其特点是输入、输出量较小其特点是输入、输出量较小衡量程序质量的标准主要是功效,即运行时间省、衡量程序质量的标准主要是功效,即运行时间省、占用内存小占用内存小主要研究内容是科学计算程序、服务性程序和程主要研究内容是科学计算程序、服务性程序和程序库,研究对象是顺序程序序库,研究对象是顺序程序Copyright Zhijun He软件和软件工程软件和软件工程9n1956-196
5、8年年 从实用的高级程序语言出现到软件工程出现前从实用的高级程序语言出现到软件工程出现前存储器容量大,外围设备得到迅速发展,出现存储器容量大,外围设备得到迅速发展,出现了高级程序设计语言了高级程序设计语言应用领域包括应用领域包括数据处理(非数值数据),其特数据处理(非数值数据),其特点是计算量不大,但输入、输出量却较大点是计算量不大,但输入、输出量却较大高速主机与低速外围设备的矛盾突出,出现了高速主机与低速外围设备的矛盾突出,出现了操作系统、并发程序、数据库及其管理系统操作系统、并发程序、数据库及其管理系统2020世纪世纪6060年代初提出了软件一词,开始认识到年代初提出了软件一词,开始认识到
6、文档的重要性文档的重要性研究高级程序设计语言、编译程序、操作系统、研究高级程序设计语言、编译程序、操作系统、支持编程的工具及各种应用软件支持编程的工具及各种应用软件工作方式逐步从个体方式转向合作方式工作方式逐步从个体方式转向合作方式出现软件危机出现软件危机Copyright Zhijun He软件和软件工程软件和软件工程10n1968年年-至今至今 从软件工程出现到现在从软件工程出现到现在硬件向巨型机和微型机二个方向发展,出现了硬件向巨型机和微型机二个方向发展,出现了计算机网络,软件方面提出了软件工程,出现计算机网络,软件方面提出了软件工程,出现了了“计算机辅助软件工程计算机辅助软件工程”(C
7、ASE)计算机的应用领域渗透到各个业务领域,出现计算机的应用领域渗透到各个业务领域,出现了嵌入式应用,其特点是受制于它所嵌入的宿了嵌入式应用,其特点是受制于它所嵌入的宿主系统主系统开发方式逐步由个体合作方式转向工程方式开发方式逐步由个体合作方式转向工程方式软件工程方面的研究主要包括软件开发模型、软件工程方面的研究主要包括软件开发模型、软件开发方法及技术、软件工具与环境、软件软件开发方法及技术、软件工具与环境、软件过程、软件自动化系统等过程、软件自动化系统等软件方面研究以智能化、自动化、集成化、并软件方面研究以智能化、自动化、集成化、并行化、以及自然化为标志的软件开发新技术行化、以及自然化为标志
8、的软件开发新技术Copyright Zhijun He软件和软件工程软件和软件工程11n追求更具表达能力、更符合人类思维模式、易构造、易演化的计算模型n软件基本模型=实体元素连接和交互Copyright Zhijun He软件和软件工程软件和软件工程12n尽可能提高软件开发的效率和质量n凝练共性并复用Copyright Zhijun He软件和软件工程软件和软件工程13n开发而成非制造产生的,n逻辑产品(智力,无形)非物理产品n维护困难和复杂(完善,纠错,.)n不会老化磨损,只会失效,维护引起的副作用Copyright Zhijun He软件和软件工程软件和软件工程14Copyright Zh
9、ijun He软件和软件工程软件和软件工程15n生产只需复制n软件开发性质如成本、进度等难以估计n软件的开发更加依赖于开发人员的业务素质、智力、人员的合作、组织和管理n软件的开发和运行常受到计算机硬件的限制,对计算机硬件有着不同程度的依赖性n软件的开发至今尚未完全实现自动化n软件成本相当昂贵n相当多的软件工作涉及到社会因素Copyright Zhijun He软件和软件工程软件和软件工程16n按工作范围和使用特点分:n系统软件:系统软件是一组为其他程序服务的程序。一些系统软件(如编译器、编辑器和文件管理程序)处理复杂的但也是确定的信息结构。其他的系统应用(如操作系统、驱动程序和通讯进程等)则处
10、理大量的非确定的数据。不管哪种情况,系统软件均具有以下特点:与计算机硬件频繁交互;多用户支持;需要精细调度、资源共享及灵活的进程管理的并发操作;复杂的数据结构;及多外部接口。Copyright Zhijun He软件和软件工程软件和软件工程17n商业软件:商业信息处理是最大的软件应用领域。具体的“系统”(如工资表、帐目支付和接收、存货清单等)均可归为管理信息系统(MIS)软件,它们可以访问一个或多个包含商业信息的大型数据库。该领域的应用将已有的数据重新构造,变换成一种能够辅助商业操作和管理决策的形式。除了传统的数据处理应用之外,商业软件应用还包括交互式的和客户机/服务器式的计算(如POS 事务
11、处理)。Copyright Zhijun He软件和软件工程软件和软件工程18n实时软件:管理、分析、控制现实世界中发生的事件的程序称为实时软件。实时软件的组成包括:一个数据收集部件,负责从外部环境获取和格式化信息;一个分析部件,负责将信息转换成应用时所需要的形式;一个控制/输出部件,负责响应外部环境;及一个管理部件,负责协调其他各部件,使得系统能够保持一个可接受的实时响应时间(一般从1 毫秒到1 分钟),应该注意到术语“实时”不同于“交互”或“分时”。一个实时系统必须在严格的时间范围内响应。而一个交互系统(或分时系统)的响应时间可以延迟,且不会带来灾难性的后果。Copyright Zhiju
12、n He软件和软件工程软件和软件工程19n工程和科学计算软件:工程和科学计算软件的特征是“数值分析”算法。此类应用含盖面很广,从天文学到火山学;从汽车压力分析到航天飞机的轨道动力学;从分子生物学到自动化制造。不过,目前工程和科学计算软件已不仅限于传统的数值算法。计算机辅助设计、系统仿真和其他交互应用已经开始具有实时软件和系统软件的特征。Copyright Zhijun He软件和软件工程软件和软件工程20n嵌入式软件:智能产品在几乎每一个消费或工业市场上都是必不可少的,嵌入式软件驻留在只读内存中,用于控制这些智能产品。嵌入式软件能够执行很有限但专职的功能(如微波炉的按钮控制),或是提供比较强大
13、的功能及控制能力(如汽车中的数字控制,包括燃料控制、仪表板显示,刹车系统等)Copyright Zhijun He软件和软件工程软件和软件工程21n个人计算机软件:个人计算机软件市场是在过去十年中萌芽和发展起来的。字处理、电子表格、计算机图形、多媒体、娱乐、数据库管理、个人及商业金融应用、外部网络或数据库访问,这些仅仅是成百上千这类应用中的几种Copyright Zhijun He软件和软件工程软件和软件工程22n人工智能软件:人工智能(AI)软件利用非数值算法去解决复杂的问题,这些问题不能通过计算或直接分析得到答案。一个活跃的AI 领域是专家系统,也称为基于知识的系统。AI 软件的其他应用领
14、域还包括模式识别(图象或声音)、定理证明和游戏。最近,AI 软件的一个新分支,称为人工神经网络,得到了很大进展。神经网络仿真人脑的处理结构(生物神经系统的功能),这有可能导致一个全新类型的软件登场,它不仅能够识别复杂的模式,而且还能从过去的经验中自行学习进步。Copyright Zhijun He软件和软件工程软件和软件工程23n 按软件工作方式划分:按软件工作方式划分:实时处理软件实时处理软件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件n 按软件服务对象的范围划分:按软件服务对象的范围划分:项目软件项目软件 产品软件产品软件 Copyright Zhijun He软件和软件
15、工程软件和软件工程24n 按使用的频度进行划分:按使用的频度进行划分:一次使用一次使用 频繁使用频繁使用n 按软件失效的影响进行划分:按软件失效的影响进行划分:高可靠性软件高可靠性软件 一般可靠性软件一般可靠性软件Copyright Zhijun He软件和软件工程软件和软件工程25 软件语言是用于书写计算机软件的语言。它主要包括:需求定义语言需求定义语言 功能性语言功能性语言 设计性语言设计性语言 实现性语言(即程序设计语言)实现性语言(即程序设计语言)文档语言文档语言Copyright Zhijun He软件和软件工程软件和软件工程26需求定义语言用来书写软件需求定义。需求定义语言用来书写
16、软件需求定义。软件需求定义是软件功能需求和非功能需软件需求定义是软件功能需求和非功能需求的定义性描述。软件功能需求刻画软件求的定义性描述。软件功能需求刻画软件“做做什么什么”,软件非功能需求刻画诸如功能性限制、,软件非功能需求刻画诸如功能性限制、设计限制、环境描述、数据与通信规程及项目设计限制、环境描述、数据与通信规程及项目管理等管理等典型的需求定义语言有典型的需求定义语言有PSL语言(语言(Problem Statement Language问题陈述语言)问题陈述语言)Copyright Zhijun He软件和软件工程软件和软件工程27功能性语言用来书写软件功能规约功能性语言用来书写软件功
17、能规约(functional specification)软件功能规约是软件功能的严格而完软件功能规约是软件功能的严格而完整的陈述。通常它只刻画软件系统整的陈述。通常它只刻画软件系统“做做什么什么”的外部功能,而不涉及系统的外部功能,而不涉及系统“如如何做何做”的内部算法。的内部算法。典型的功能性语言有广谱语言、典型的功能性语言有广谱语言、Z语语言。言。Copyright Zhijun He软件和软件工程软件和软件工程28设计性语言用来书写软件设计规约(设计性语言用来书写软件设计规约(design specification)软件设计规约是软件设计的严格而完整的软件设计规约是软件设计的严格而完
18、整的陈述。一方面,它是软件功能规约的算法性细陈述。一方面,它是软件功能规约的算法性细化,刻画软件化,刻画软件“如何做如何做”的内部算法,另一方的内部算法,另一方面,它是软件实现的依据。面,它是软件实现的依据。典型的设计性语言有典型的设计性语言有PDL语言(语言(Program Design Language)Copyright Zhijun He软件和软件工程软件和软件工程29 实现性语言用来书写计算机程序实现性语言用来书写计算机程序 实现性语言也称实现性语言也称编程语言编程语言或或程序设计程序设计语言语言(programming language)程序设计语言可按语言的级别、对使用程序设计语
19、言可按语言的级别、对使用者的要求、应用范围、使用方式、成分者的要求、应用范围、使用方式、成分性质等多种角度进行分类性质等多种角度进行分类 Copyright Zhijun He软件和软件工程软件和软件工程30n 按语言级别分:按语言级别分:低级语言低级语言和和高级语言高级语言 低级语言低级语言是与特定计算机体系结构密切是与特定计算机体系结构密切相关的程序设计语言,如机器语言、汇编相关的程序设计语言,如机器语言、汇编语言。其特点是与机器有关,功效高,但语言。其特点是与机器有关,功效高,但使用复杂,开发费时,难维护。使用复杂,开发费时,难维护。高级语言高级语言是不反映特定计算机体系结构是不反映特定
20、计算机体系结构的程序设计语言,它的表示方法比低级语的程序设计语言,它的表示方法比低级语言更接近于待解问题的表示方法。其特点言更接近于待解问题的表示方法。其特点是在一定程度上与具体机器无关,易学、是在一定程度上与具体机器无关,易学、易用、易维护。但高级语言程序经编译后易用、易维护。但高级语言程序经编译后产生的目标程序的功效往往较低。产生的目标程序的功效往往较低。Copyright Zhijun He软件和软件工程软件和软件工程31n 按用户要求分:按用户要求分:过程式语言过程式语言和和非过程式语言非过程式语言 过程式语言(过程式语言(procedural language)是通过是通过指明一列可
21、执行的运算及运算次序来描述计算指明一列可执行的运算及运算次序来描述计算过程的程序设计语言。如过程的程序设计语言。如FORTRAN、COBOL、C等。等。非过程式语言(非过程式语言(nonprocedural language)是不显式指明处理过程细节的程序设计语言。是不显式指明处理过程细节的程序设计语言。在这种语言中尽量引进各种抽象度较高的非过在这种语言中尽量引进各种抽象度较高的非过程性描述手段,以期做到在程序中增加程性描述手段,以期做到在程序中增加“做什做什么么”的描述成分,减少的描述成分,减少“如何做如何做”的细节描述。的细节描述。如第四代语言(如第四代语言(4GL)、函数式语言、逻辑式)
展开阅读全文