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