当前位置:文档之家› 第一章计算机软件技术概述(精)

第一章计算机软件技术概述(精)

第一章计算机软件技术概述⏹了解以下知名公司的发展历史,掌握公司业务范围及主流产品的应用领域Microsoft、Apple、IBM、Oracle(Sun、Google、Adobe、Amazon、Symbian1.1 软件的组成要素1.2 软件技术的组成体系1.3 软件的主要属性与特点1.4 软件的工作与存储空间1.1 软件的组成要素⏹引子:使用计算机就是使用软件,我们会用到许多感兴趣的应用软件,而应用软件还需要一个“看不见的引擎”的支撑和驱动。

我们不能真正看到或触摸这个“引擎”—也称软件平台,但在现代产品中它却无处不在,有的甚至家喻户晓1、软件(Software的三要素⏹计算机软件:程序、数据及相关文档组成•文档(Document:指软件开发、维护和使用相关的图文资料,包括对软件程序和数据的描述等2、软件与程序⏹软件的组成中,程序和数据是主体,核心是程序。

有时软件和程序可以相互替换使用,并不严格区分,也有称软件程序⏹但要了解,两者区别是很明显⏹程序侧重描述软件实现的指令代码,并且源程序中的代码通常是可以阅读的,但是不能被计算机直接执行,而可执行程序的代码通常是无法被阅读的,但可以提交计算机执行。

从这个角度,我们所购买的软件只是程序的可执行版本而不是(软件的源代码⏹软件包含程序,其内涵与外延更广泛⏹计算机系统由软件与硬件组成。

硬件(Hardware作为有形、可触摸的物理设备构成一个“裸机”,须加载软件(即装入程序才能构成可以运行和发挥功用的计算机系统以服务于用户⏹计算机软硬件协同工作、相互支持、相互制约,推动着计算机应用的发展1.2 软件技术的组成体系⏹计算机软件技术是与软件开发及软件使用相关的理论和技术的总称。

软件使用体现软件在各行各业的具体应用⏹从学科角度,软件技术体系非常丰富、广泛,可概括为软件理论、软件系统及软件开发三大组成部分⏹软件系统由系统软件、支撑软件及应用软件组成,涉及软件整体含义的内容组成,不同软件根据其作用按不同的层次环绕硬件。

上述也是一种常用软件分类方法1、系统软件⏹系统软件属于基础软件(1面向系统并为整个计算机系统服务(2面向用户的应用软件及中间件等须通过它发挥作用⏹操作系统(Operating System是主要系统软件(或软件平台,Platform,是最贴近硬件、最基础的一层软件,与具体应用领域无关,其他任何软件都依赖于它⏹OS影响着计算机系统的稳定性、可靠性⏹操作系统或软件平台对计算机(及各种信息设备和产品的运行起着非同寻常的作用,是计算机中的“看不见的引擎”⏹从微处理器的视角看,计算机平台中,操作系统是CPU接收指令的唯一程序,其他任何程序都通过OS与CPU打交道⏹操作系统是非常复杂的软件(程序,通常由一个“内核”和其他程序模块组成,负责计算机软硬件资源的分配与调度、程序的执行,涉及进程管理、内存管理、设备管理、文件管理、网络支持及安全管理等,我们使用计算机时所必须安装和感知的第一个软件即OS(OS界面⏹示例:操作系统(OS是最主要系统软件,用户首先选择和安装的软件⏹语言处理系统也是一类重要的软件,有人将其归类为系统软件,也有单独划为编程软件,是软件开发者所关心的用于创建、调试、维护应用软件的工具,主要涉及:⏹为什么需要语言处理系统?应用软件(程序基于某高级语言编制而成,但要让软件能被计算机理解、执行,就需要借助语言处理系统的翻译处理⏹最常用语言处理系统有:即编译系统(或称为编译程序、编译器及解释系统(或称为解释程序、解释器⏹编译程序(Compiler:将高级语言书写的程序(源程序翻译成等价的低级语言(机器或汇编语言程序(称为目标程序,Object program的计算机程序(软件⏹高级语言程序被处理后生成的目标程序不能直接执行,还需链接程序(Chain Program以生成可执行程序⏹解释程序(Interpreter:直接翻译(转换为机器码并执行某种语言编写的源程序指令的计算机程序⏹与编译程序的工作模式不同,解释程序采用类似外语现场“口译”中的边说边翻译的工作模式,解释程序对源程序处理后并不产生一个独立的目标程序而是输出执行计算结果⏹2、支撑软件:支撑软件开发、维护与运行的一类专业软件。

此类软件较广泛的是中间件(Middleware,可理解为介于OS与应用软件之间的软件⏹3、应用软件(Application Software:指面向具体业务和应用领域的软件⏹计算机应用很大程度取决于应用软件为终端用户带来效率的提高,其他的软件都服务于应用软件,提供支持⏹操作系统作为软件平台搭起应用软件与硬件沟通的桥梁⏹软件平台聚集各种应用软件开发者及终端用户,还吸引中间件(开发者为应用软件开发者提供各种支持帮助⏹示例:应用软件可以基于不同的操作系统(软件平台,对比手机和个人电脑平台⏹应用程序编程接口(API,Application Programming Interface:操作系统对终端用户和应用程序(软件支持模式不同⏹应用程序是应用程序(软件开发商提供给终端用户的产品和服务,程序开发人员或者应用程序通过OS所提供的各种应用程序编程接口获取OS 服务,以便更有效开发面向终端用户的各种软件产品⏹Java是当今极具竞争力的热门技术,其核心构成包括Java语言、JVM及Java API,Java平台(JVM和Java API能够嵌入所有OS平台中。

基于Java平台这种跨平台特点,Java应用程序只需编译一次,即可在各种计算机系统运行,即实现“write once,run anywere”1.3 软件的主要属性与特点⏹软件的抽象性(无形性⏹软件的复杂性(知识性⏹软件的开发模式(手工⏹软件的知识产权(盗版⏹软件项目与产品(群体1、软件的抽象性⏹一方面软件是一种无形的、不可触摸、不会产生“磨损”的信息产品和逻辑产品(“比特bit”集,但通过其载体及运行呈现的界面被用户感知、传播和使用⏹另一方面,软件只有装入计算机中,并运行和使用,才能确定其提供的功能是否满足需要、是否好用(用户体验⏹用户通过软件(界面,Interface使用计算机硬件的功能。

软件界面历经不断改进和发展,使用软件使用更容易、更方便、更人性化,促进了计算机的普及示例:不同软件界面展示与启示(图略示例:同一软件界面发展(图略⏹1990年2月Photoshop 1.0正式发布:当时只能运行在苹果的麦金塔电脑上⏹20年之后(2010年2月,历经不断升级、更新换代,从2.0、3.0等直到CS、CS2、CS3到CS5(平均1到2年示例:软件程序图标、文件及其运行模式⏹源程序或可执行程序都是以文件的形式存储于计算机存储体中(硬盘等,这也是用户可感知软件程序(文件存在的方式,只是不同软件平台(OS中的文件管理系统(模块所呈现文件方式有很大的不同,如早期DOS的字符模式与当今流行的Windows中的图标模式⏹可执行程序的文件扩展名通常为.exe⏹如文字处理程序Word 2003、浏览器程序都是最常用的程序文件,它们的文件名分别为winword.exe和iexplore.exe,DOS与Windows下的显示、运行对比如下(图略2、软件的复杂性⏹软件是人们(软件开发团队通过大量的脑力劳动,把知识与技术转化为信息产生的知识性产品,这个转化的过程称为软件开发。

软件的复杂性源自于问题和任务本身及软件开发过程的复杂⏹“当越来越多的功能组件加入OS,并且硬件的性能随之逐渐增强时,OS大小和复杂性也在不断升级”3、软件的开发模式⏹迄今软件开发几乎完全依赖人类手工模式完成,尽管有软件工程、自动化工具辅助与支撑,以及软件开发团队协作在一定程度上可以提高开发效率⏹软件开发的工作量大、周期长且成本高昂,工作辛苦乏味,极具挑战性⏹如操作系统(OS:从概念形成、架构、开发实现到发布通常需要历时数年⏹对于应用软件:希望能在连续几代的操作系统上工作,操作系统平台改变必须尽可能保持软件的“后向兼容性”⏹专有操作系统或专有软件(商业软件等开发是采用软件公司团队的集中式、市场与商业利益驱动模式,开发成本用户埋单商业软件价格是个敏感话题。

与硬件价格的不断下降相比,软件价格并未同步下降而开源软件则是基于“软件自由”的信仰和源代码公开,从而实现“免费软件”目标,它通常是依赖互联网、吸收全世界各地的程序员的非集中式软件开发(生产)方式专有软件如Windows操作系统数千万行代码是一个被严守的商业秘密,至今只有被严格审查的少数外部人员在高度机密的条件下才能看到其源代码。

而开源软件的源代码是完全公开的,任何人可免费获取“开源”是指参与者所编写的软件程序的源代码完成后,要公开最后的程序代码,用户可免费获取开源软件(包括源代码)但要受GPL(通用公共许可证)的限制:“如果你发行的工作全部或者部分包含或来源于开源程序及它的衍生产品,那么你必须将它免费授权给任何的遵循这一协议的第三方”(自由软件基金会FSF)最成功的开源软件平台:Linux操作系统(最早是由芬兰赫尔辛基大学的学生Linus Torvalds编写的,1991年),当今OS领域的“没有所有者的新挑战者” Apache服务器(软件):也是最成功、最著名的开源项目之一、最流行的Web服务器软件(最早由美国国际超级计算机应用中心NCSA 编写,National Center for Supercomputing Applications)开源软件是自愿者出于兴趣、提高编程和开发技能、对“自由”的向往、探索、挑战及荣誉等非物质的动机在空闲时间进行的 GPL强制实施机制的意义:“保证了没有人能够通过在集体知识产权上加上一点私有知识产权就把整个软件变成了私有产品” 基于开源软件的商业模式:如通过支持Linux,增加硬件、专有软件和服务的销售 4、软件的知识产权(Intellectual Property)软件一旦开发完成,可以反复拷贝和使用,其复制和传播的成本极为低廉软件拥有者收益受软件盗版影响很大(还有同类软件市场竞争等因素)(1)发售难辨认的机器码(反编译困难)(2)版权(授权)、专利等法律形式以保护合法使用和阻止知识产权被窃用 5、软件的项目属性和产品属性软件项目(Project):有的软件将只是针对某个特定用户的开发软件产品(Product):有的则是面向某一类广泛用户群体的开发 1.4 软件的工作与存储空间(Storage Space)存储系统层次化是指把不同速度、不同容量、存储技术也不同的存储设备分为若干层,共同组成一个面向CPU的整体存储系统,且具有最好的性能价格比,即拥有足够大的存储空间,能保证匹配CPU的存取访问速度,并且价格适中组成:寄存器、高速缓存、内存和辅存(速度、受访频度、价格递减,而容量递增)。

相关主题