您好,欢迎访问三七文档
计算机软件概述1.什么是计算机软件2.计算机软件的特性3.计算机软件的分类4.计算机软件技术概论21什么是计算机软件3计算机系统=硬件+软件计算机系统计算机硬件计算机软件运算器控制器输入设备存储器输出设备系统软件应用软件操作系统数据库管理系统程序语言处理系统文字处理通信软件···学习、娱乐软件输入硬件&软件输出计算机系统是由硬件和软件组成的,两者缺一不可!4不一定是PC机无所不在的嵌入式家族5软件、硬件和用户的关系•硬件的能力非常有限,只是速度极高而已•没有软件,硬件几乎什么任务也完成不了BasicInput/OutputSystem硬件BIOS操作系统应用软件用户应用软件系统软件数据信息处理任务处理结果硬件6计算机通过软件才能进行信息处理不同的软件,完成不同的任务1,2,5,7,9排序软件9,2,7,5,1计算机9,2,7,5,124统计软件计算机同一软件处理不同的数据,完成不同的任务2,3,6,8排序软件8,2,6,3计算机a,b,d,k,w排序软件d,a,k,w,b计算机7什么是程序?程序是告诉计算机做什么和如何做的一组指令(语句),这些指令(语句)都是计算机能够理解并能够执行的一些命令程序的特性:①用于完成某一确定的信息处理任务②使用某种计算机语言描述如何完成该任务③预先存储在计算机中,启动运行后才能完成任务8程序与数据的关系程序所处理的对象和处理后得到的结果统称为数据(分别称为输入数据和输出数据)程序必须处理合理的输入数据,否则不会产生有意义的输出程序和数据有相对性输出数据程序输入数据计算机???求和程序2,5,人,8,3计算机目标程序编译程序C语言源程序计算机9程序与软件是什么关系?软件=程序,开发软件=写程序?错误!程序只是软件的一个组成部分写程序只是软件开发的过程中的一个步骤软件是程序、数据以及有关文档资料的集合。(可运行的)思想和内容的数字化思想:算法、规律、办法(程序)内容:图形、图像、数据、声音、文字等(数据)102.计算机软件的特性11计算机软件有哪些特性?(1)1.不可见性(是无形的,不能被人们直接观察、欣赏和评价)2.适用性(可以适应一类应用问题的需要)3.依附性(依附于特定的硬件、网络和其他软件)4.复杂性(规模越来越大,开发人员越来越多,开发成本也越来越高),例如:Exchange2000Windows2000项目经理25人约250人开发人员140人约1700人测试人员350人约3200人12软件的复杂性举例程序规模:WindowsXP源程序约有5000万行人员队伍:Vista及Office2007两个团队的开发设计成员总共9000余人资金投入:微软为Vista投入90亿美元,包括Vista未来的配套及合作伙伴的投入,预计在180亿美元以上,如果加上新版Office的成本,投入资金在240亿~270亿美元之间开发周期:Vista的开发经历6年,发布时间一拖再拖13计算机软件有哪些特性?(2)5.无磨损性(功能和性能一般不会发生变化)6.易复制性(可以非常容易且毫无失真地进行复制)7.不断演变性(软件的生命周期),例如:1989年Word1.0■1997年推出Word972000年推出Office2000■2003年Office20038.有限责任(有限保证)9.脆弱性(黑客攻击、病毒入侵、信息盗用···)Windows版本演变14计算机软件与知识产权软件是智力活动的成果,受到知识产权(版权)法的保护版权授予软件作者(版权所有者)享有下列权利:拷贝、发布、修改、署名、出售、···保护知识产权的目的:确保脑力劳动受到奖励并鼓励发明创造,保护知识产权就是保护脑力劳动人员,使他们发挥创造能力,社会也会从他们的成果中受益购买一个软件,用户仅仅得到了该软件的使用权,并没有获得它的版权随意进行软件拷贝和分发是一种违法行为153.计算机软件的分类按产权性质商品软件共享软件自由软件按软件用途应用软件系统软件16从软件知识产权对软件进行分类商品软件共享软件(shareware)具有版权,可免费试用一段时间,允许拷贝和散发(但不可修改),过了试用期若还想继续使用,就得交一笔注册费,成为注册用户。17从软件知识产权对软件进行分类自由软件(freeware)(开放源代码软件)用户可共享,并允许随意拷贝、修改其源代码,允许销售和自由传播。但是,对软件源代码的任何修改都必须向所有用户公开,还必须允许此后的用户享有进一步拷贝和修改的自由。自由软件的重大意义18从用途对计算机软件分类系统软件不是为了解决某种具体应用,而是为了:给用户使用计算机提供方便给应用软件的开发与运行提供支持使计算机有效、安全、可靠地运行应用软件专门用于帮助最终用户解决各种具体应用问题的软件分类(按开发方式):定制应用软件通用应用软件几乎所有领域、所有人都需要使用设计精巧,易学易用商品化,价格较低19通用应用软件的类别与功能类别功能流行软件举例文字处理软件文本编辑、文字处理、桌面排版等Word、AdobeAcrobat、WPS、FrontPage等电子表格软件表格定义、数值计算和统计、绘图等Excel等图形图像软件图像处理、几何图形绘制、动画制作等AutoCAD、Photoshop、CorelDraw、3DSMAX等媒体播放软件播放各种数字音频和视频文件MediaPlayer、RealPlayer、Winamp等网络通信软件电子邮件、聊天、IP电话等OutlookExpress、MSN、QQ、ICQ等演示软件投影片制作等PowerPoint等信息检索软件在数据库和因特网中查找需要的信息Google,天网,百度等个人信息管理软件记事本、日程安排、通讯录、邮件Outlook,LotusNotes游戏软件游戏、教育和娱乐棋类游戏、扑克游戏等20关于微软的办公软件Office历史与发展内容与功能:以Office2003为例,共包含7个主要的软件:•Access2003•InfoPath2003•PowerPoint2003•Word2003•Excel2003•Outlook2003•Publisher2003成功软件的经验是什么?它们都具有如下特点:1它们能替代现实世界已有的其他工具,而且使用起来比已有工具更方便有效2它们能完成已有工具很难完成甚至完全不可能完成的事,扩展了人们的能力3···21什么是系统软件?举例:基本输入/输出系统(BIOS)操作系统(如Windows、Unix、Linux等)程序开发工具与环境(如C语言编译器等)数据库管理系统(DBMS)实用程序(Utility,如磁盘清理程序、备份程序、杀毒软件、防火墙等)22系统软件有哪些特性?1.与计算机硬件有密切的关系,能对硬件进行统一的控制、调度和管理;2.具有通用性,能为多种应用软件的开发和运行提供支持与服务3.在任何计算机系统中,系统软件都是必不可少的4.在购买计算机时,通常计算机供应厂商会提供给用户一些最基本的系统软件,否则计算机无法工作。23最重要的系统软件有哪些?操作系统(OS)包括各种实用程序(如磁盘清理程序、备份程序、杀毒软件等)功能上也包含BIOS在内程序设计语言处理系统编译器解释器汇编程序(汇编器)开发工具与平台数据库管理系统(DBMS)244.计算机软件技术25软件技术分类程序设计语言编译技术软件及实现技术操作系统及实用程序计算机数据库技术软件技术软件工具软件工程软件开发方法与技术程序设计方法数据结构和算法26程序与程序设计语言程序:是使计算机完成某种任务的一个有序的命令(指令语句)。程序设计就像写文章,要解决两个问题:1.明确自己要表达的是什么2.如何把它表达出来程序设计=算法+数据结构27程序设计语言填补了人与计算机交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人交流的鸿沟计算机硬件仅仅知道0和1有问题需要计算机解决的人程序设计语言28程序设计语言程序设计语言发展的三个阶段:机器语言→汇编语言→高级语言程序设计语言是编写计算机程序所用的语言。29程序设计语言机器语言是机器指令的集合,其代码由0、1组成的二进制串表示,不需翻译可直接为机器所接受。汇编语言为符号化的机器语言。它用助记符和标识符代替机器指令的操作码和地址码。高级语言是一种与具体的计算机指令系统无关,独立于计算机类型,而且表达方式接近于自然语言或数学语言,容易被人们掌握和书写的语言。如C,Pascal,Java。30举例任务:x+1→x机器语言001111100000100100111111B或3E093FH汇编语言MOVAX,X/INCAX/MOVX,AXC语言x=x+1或x++或++x31程序设计语言的翻译程序把甲语言编写的程序翻译为等价的乙语言编写的程序。其中甲语言程序称为源程序,乙语言程序称为目标程序翻译程序源程序目标程序常用的有下列几种:汇编程序(汇编器)汇编语言源程序机器语言目标程序编译程序(编译器)高级语言源程序机器语言或汇编语言目标程序解释程序(解释器)高级语言源程序边解释边执行,不产生目标程序32编译程序与解释程序的区别解释:解释器直接解释并且执行源语言程序,不产生目标程序(相当于“口译”)编译:把源程序编译为机器语言目标程序后,再由计算机运行(相当于“笔译”)源程序目标程序编译器计算机编译方式计算机源程序解释器解释方式BASIC、VisualBasic、VBScript、Java、JavaScript等都是解释执行的语言C、C++等都是需要编译的语言33编译程序的处理过程源程序目标程序可执行代码程序库编译程序链接程序.c.h.obj.exe1.编辑2.编译3.链接4.运行34高级语言的优点比机器或汇编语言更易于学习程序更易于调试(程序更为短小;记号本身更自然,因此更多注意力可放在程序逻辑而非语法细节上)程序更易于理解较好的平台无关性上述原因导致解决问题的时间和代价减少35高级程序设计语言的发展50年代:Fortran,ALGOL60年代:COBOL语言,BASIC语言70年代:Pascal语言,C语言80年代:Ada语言,PROLOG语言,LISP语言90年代起:面向对象语言C++、JAVA、C#等36高级语言的分类面向过程的语言:Fortran/Basic/C/Pascal面向问题的语言:Lisp/Lingo/Matlab面向对象的语言:VB/C++/Java/C#37类(Class)是对某一类对象的抽象;对象(object)是某一种类的实例面向对象的语言38一个应用最广泛的类库--MFCAPI的困境微软提供了一个包含了200多个类,封装了Windows的大部分编程对象以及与它们有关的操作的Windows编程类库MFC(MicrosoftFoundationClass)MFC执行效率高,只比传统的WindowsC程序低5%左右MFC应用程序中还允许混合使用WindowsAPI函数完全支持Windows所有的函数、控件、消息、菜单及对话框稳定性和可移植性好,符合微软的风格有VisualC++支持39一个应用最广泛的类库--MFCCCmdTargetCWndCDocumentCFrameWndCObjectCWinTreadCWinAppCViewCDialog及控件CMDIChildWndCMDIFrameWndCMiniFrameWnd40MFC学习方法首先要对Windows编程概念和API函数有一定的了解,如WindowsAPI有哪些功能和哪些常用的数据结构等。学会抽象地把握问题,不求甚解,不要一开始学习VisualC++就试图了解整个MFC类库。从理解和使用两个方面学习MFC,理解MFC应用程序的框架结构。先大体上了解MFC的概念、组成和基本约定,从简单的类入手,结合程序设计,由浅入深,循序渐进、日积月累。编程时如果MFC某个类能完成所需要的功能,可以直接调用已有类的方法
本文标题:计算机软件概述
链接地址:https://www.777doc.com/doc-3970741 .html