3-第三章计算机软件_第1页
3-第三章计算机软件_第2页
3-第三章计算机软件_第3页
3-第三章计算机软件_第4页
3-第三章计算机软件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章计算机软件,本章要点,计算机软件是计算机硬件的扩展和延伸,分为系统软件和应用软件。系统软件是硬件层之上与应用领域无关的软件,如操作系统;应用软件则通过系统软件工作软件的主要作用体现:提高了计算机资源的利用率降低了计算机的硬件成本扩展了计算机的功能使用户操作计算机更加方便灵活提供了更多的计算机开发和应用机会,本章要点,本章主要介绍计算机软件、程序与程序设计语言、数据结构与算法、软件和软件工程以及操作系统软件本章着重理解关于程序设计:算法类问题数学建模、数据结构设计及算法描述、算法设计与实现程序实现、程序在计算机中是如何执行以及软件全生命周期计算思维的过程,本章内容提要,3.1程序及程序设计语言3.2数据结构与算法3.3软件和软件工程3.4操作系统,3.1程序及程序设计语言,3.1.1程序3.1.2程序基本结构3.1.3程序设计语言,3.1.1程序,程序(program)是人与计算机交流信息的基本方式,人通过程序指挥计算机的活动描述(编制)计算机程序的工作称为程序设计或编程,其产品就是程序。“程序”是告诉计算机做什么和怎么做的一组指令集软件设计与开发的过程就是人们运用计算思维的方式来设计和编写程序,什么是程序设计?,程序设计算法数据结构方法+工具,一般来说,程序设计的过程可以分为以下五个基本步骤:问题分析结构特性设计算法设计流程描述调试与运行,程序基本结构顺序结构选择结构(选取结构或分支结构)循环结构特点:(1)以控制结构为单位,只有一个入口和一个出口,各单位之间的接口比较简单,每个单位也容易被人们所理解(2)缩小了程序的静态结构与动态执行之间的差异,使人们能方便、正确地理解程序的功能,3.1.2程序基本结构,顺序结构如图3.2(a)为传统流程图,3.2(b)为N-S图,选择结构(选取结构或分支结构)如图3.3(a)为传统流程图,3.3(b)为N-S图,循环结构循环结构又称重复结构,即反复执行某一部分的操作,有两种循环结构:当型和直到型(1)当型循环结构如图3.4(a)为传统流程图,3.4(b)为N-S图,(2)直到型循环结构如图3.5(a)为传统流程图,3.5(b)为N-S图,程序设计语言是用户用来编写程序的语言,它是人与计算机之间交换信息的工具(1)机器语言二进制代码语言,最底层的计算机语言(2)汇编语言反映指令功能的助记符(3)高级语言与具体的计算机指令系统无关、表达方式更接近于人们对求解过程或问题的描述方式,且易于掌握和书写的语言,3.1.3程序设计语言,常用程序设计语言:VB、C、JAVA、Delphi、Fortran(1)VisualBasic语言VisualBasic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言(2)C语言C语言是目前世界上流行、使用非常广泛的高级程序设计语言。适于编写系统软件、三维/二维图形和动画,它是数值计算的高级语言。C语言常用的编译软件有MicrosoftVisualC+、BorlandC+、BorlandC、TurboC等,(3)Delphi语言集中了第三代语言的优点。以ObjectPascal为基础,扩充了Object-Oriented(面向对象)的能力,并且完美地结合了可视化的开发手段(4)Java语言由Sun微系统公司发展出来的程序语言,本身是一种面向对象的程序语言。目前在手机上应用最多的就是JAVA游戏(5)Fortran语言一种主要用于数值计算的面向过程的程序设计语言,其特点是接近数学公式,简单易用,3.2.1数据结构3.2.2算法,3.2数据结构与算法,什么是数据结构?,数据结构(DataStructure)是由若干特性相同的数据元素构成的集合,且在集合上存在一种或多种关系,3.2.1数据结构,1.数据结构基本概念数据、数据元素、关键字、数据对象2.数据结构三个基本含义逻辑结构、存储结构(物理结构)、运算3.典型数据结构线性表、栈、队列、树,3.2.1数据结构,算法(Algorithm)是描述计算机解决给定问题的操作过程(解题方法),即为解决某一特定问题而由若干条指令组成的有穷序列1算法的要素可行性、确定性、有穷性、有输入、有输出2算法效率的度量算法复杂度分为时间复杂度和空间复杂度3评价算法优劣的基本标准正确性(correctness)、可读性(readability)、健壮性(robustness)、高效性(efficiency),3.2.2算法,4常见算法查找算法折半查找(二分法)顺序查找(线性查找)排序算法排序分类(内部排序法与外部排序法)选择排序冒泡排序,3.2.2算法,“软件”一词是20世纪60年代才出现的。计算机科学对软件的定义是:“在计算机系统支持下,能够完成特定功能和性能的程序、数据和相关文档”从应用的角度分类(1)系统软件:系统软件泛指那些为了有效的使用计算机系统,给应用软件开发与运行提供支持、或者为用户管理与使用计算机提供方便的一类软件(2)应用软件:应用软件是指那些专门用于解决各种具体的应用问题而开发区的软件,3.3软件和软件工程,3.3软件和软件工程,软件的特性:(1)软件是一种逻辑产品(2)软件产品的生产主要是研制,成本主要体现在软件的开发和研制上,软件开发研制完成后,通过复制就产生了大量软件产品(3)软件产品不存在磨损、消耗问题(4)软件产品生产的成本主要是脑力劳动,还未完全摆脱手工开发方式,多为“定做”的产品(5)软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,1.程序设计时代(1964年1956年)这个阶段的生产方式是个体手工劳动,使用的工具是机器语言、汇编语言2.程序系统时代(1956年1968年)这阶段的生产方式是作坊的小集团合作生产,生产工具是高级语言,开发方法主要靠个人技巧,但开始提出结构化方法3.软件工程时代(1968年至现在)这阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件,3.3.1软件生产的发展,软件危机上个世纪60年代中期爆发了众所周知的软件危机。为了克服这一危机,1968、1969年连续召开两次著名的北大西洋公约组织(NATO)会议,提出了软件工程这一术语,并在以后不断发展、完善软件技术面临的问题:复杂性、生产率软件危机的主要特征:(1)软件开发周期大大超过规定日期(2)软件开发成本严重超标(3)软件质量难于保证,3.3.1软件生产的发展,软件危机产生的原因:(1)软件规模越来越大,结构越来越复杂(2)软件开发管理困难而复杂(3)软件开发费用不断增加(4)软件开发技术落后(5)生产方式落后(6)开发工具落后,生产提高缓慢,3.3.1软件生产的发展,3.3.2软件工程,什么是软件工程?,概括地说,软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的,1.软件工程的定义1968年,FritzBauer在NATO会议上首先提出软件工程的概念:“软件工程是为了经济地获得可靠和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)”。1993年,美国电气电子工程师协会(IEEE)给出软件工程是将系统化、规范化、可度量的方法应用于软件开发、运行和维护的过程,即将工程化应用于软件中2.软件工程的性质软件工程是一门综合性的交叉学科,涉及计算机科学、工程科学、管理科学、数学等领域,3.3.2软件工程,3.软件工程的目标(1)付出较低的开发成本(2)达到要求的软件功能(3)取得较好的软件性能(4)开发的软件易于移植(5)需要较低的维护费用(6)能按时完成开发任务,及时交付使用(7)开发的软件可靠性高,3.3.2软件工程,4.软件工程的内容软件工程研究的主要内容是软件开发技术和软件管理两方面。在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要是研究软件管理学、软件经济学、软件心理学等5.软件工程面临的问题(1)软件费用(2)软件可靠性(3)软件维护(4)软件生产率(5)软件重用,3.3.2软件工程,3.3.2软件工程,图3.12计算机与软件工程关系,3.3.2软件工程,软件的工业化生产过程应具备的特点:明确的工作步骤详细具体的规范化文档明确的质量评价标准软件工程技术的两个明显特点:强调规范化强调文档化,软件过程(Process)是描述、开发、维护软件产品,创建、管理和支持软件项目的一系列活动(1)软件描述:必须定义儒家功能以及对其使用的限制(2)软件开发:必须制作出满足描述的软件(3)软件有效性验证:必须经过验证以保证能够满足客户要求(4)软件进化:必须随客户需求的变化不断改进,3.3.4软件开发过程,软件开发模型为了描述、规范软件开发的管理和技术活动,就需要建立软件过程模型,对软件开发过程的结构和属性进行抽象软件过程模型定义了软件开发活动,给出了其间的逻辑关系为软件工程管理提供里程碑和进度表,为软件开发提供框架和方法,3.3.4软件开发过程,1.瀑布模型瀑布模型将软件开发过程分解成可行性研究、软件需求分析、软件设计(概要设计、详细设计)、编码、测试、运行与维护、退役等几个阶段。如图3.13所示,图3.13带反馈的瀑布模型,2.增量模型增量过程模型是将需求分解,划分成一系列的增量,并根据增量急需和缓需为其排序。每个增量都经历需求分析、设计、编码、测试等过程。如图3.14所示,图3.14增量模型,3.原型模型原型(Prototyping)是开发人员根据客户提出的软件(部分或者全部)定义,快速开发一个原型。原型向客户展示待开发软件系统的全部和部分功能与性能。由于原型是客户和开发人员共同设计和评审,因此利用原型能统一客户和开发人员对让软件项目的理解,消弭歧义,有助于需求的定义和确认。如图3.15所示,图3.15原型模型,4.螺旋模型螺旋模型(SpiralModel)是B.Boehm在1988年提出。它是迭代模型,从里向外每个回路表示软件过程的4个阶段组成。如图3.16所示软件过程阶段(1)定义目标(2)风险分析(3)开发验证(4)对项目进行评审,图3.16螺旋模型,5.基于构件的过程模型构件(Component)是指可复用的软件单元。粗略分有基础构件、功能构件、接口构件和用户界面构件等。基于构件的软件开发核心思想在于软件复用、行业分工及软件工业化基于构件开发模型减少了软件开发工作量,降低了软件开发成本和风险,缩短了软件开发周期。当然具有足够的可选择构件,以及构件标准的完备也直接影响到基于构件的软件开发的质量和进度,1-基础构件,2-功能构件,3-接口构件,4-用户界面构件图3.17基于构件的开发过程模型,软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。软件开发的目标是在规定的投资和时间内,开发出符合用户需求的高质量的软件1、结构化方法2、Jackson方法3、维也纳开发方法(VDM)4、面向对象的开发方法,3.3.5软件开发方法,软件开发工具是用于辅助软件生命周期过程的基于计算机的工具。通常可以设计并实现工具来支持特定的软件工程方法,减少手工方式管理的负担良好的软件工具不仅能提高软件的开发效率和质量,且具有便于使用、工作可靠、易安装、能剪裁、适应性强等特点,3.3.6软件开发工具,软件开发工具分类:1、软件需求工具2、软件设计工具3、软件构造工具4、软件测试工具5、软件维护工具6、软件配置管理工具7、软件工程管理工具8、软件工程过程工具9、软件质量工具,3.3.6软件开发工具,软件项目管理是软件工程学科的重要组成部分,在软件生存周期中发挥着重要作用。是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动主要内容:人员的组织与管理、软件度量、软件项目计划、风险管理、软件质量保证、软件过程能力评估、软件配置管理等,3.3.7软件项目管理,3.4.1操作系统3.4.2Windows文件系统3.4.3常用操作系统介绍,3.4操作系统,3.4.1操作系统,计算机软件系统分为系统软件和应用软件。系统软件是由计算机生产厂家提供给用户的一组程序,可分为两类:一类是面向机器的系统程序(操作系统),主要作用是对系统的硬、软件资源进行有效的管理,建立计算机的工作环境;另一类是面向用户的软件,对用户编制的程序进行编辑、编译、连接,加工成计算机能直接执行的目标程序软件系统的最内层是系统软件,它由操作系统、实用程序、编译程序等组成。操作系统实施对各种软硬件资源的管理控制,3.4.1操作系统,软件系统的构成如图3.19所示,图3.19计算机软件系统组成,操作系统(OperatingSystem,OS)是管理系统硬件与软件资源的程序,同时也是计算机系统的内核与基石操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统管理计算机系统的全部硬件资源、软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,OS使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面,3.4.1操作系统,3.4.1操作系统,操作系统提供的基本功能进程管理存储管理文件管理设备管理多任务处理与处理器管理,在现代操作系统中,文件系统为存储设备提供了流方式的数据管理,允许应用程序共享卷的存储空间,同时又可以独享不同的数据流在Windows中,文件系统提供了一个层次状的名字空间,并集成了系统的全局名字空间中;文件对象既是设备对象的已打开实例的抽象,也代表了文件系统中一个已打开的数据流实例,3.4.2Windows文件系统,Windows的文件系统以卷设备对象为存储基础,不同种类的文件系统定义了不同的存储格式文件系统在Windows的存储管理结构中只是一个环节,其驱动程序位于存储栈的上部,它们通常依赖于缓存管理器来实现文件数据的缓存Windows支持的原生文件系统式NTFS(NewTechnologyFileSystem),NTFS提供长文件名、数据保护和恢复,并通过目录和文件许可实现安全性在文件系统中,通常有两种类型的对象:目录(directory)和文件(file),3.4.2Windows文件系统,1.Windows操作系统Microsoft开发的Windows是目前世界上用户最多、兼容性最强的操作系统,是一款“有声有色”的操作系统Windows7是Microsoft公司开发的较新一款视窗操作系统。内部版本是6.1(即WindowsNT6.1),正式版的Build是6.1.7600。2009年7月14日,Windows7开发完成并正式进入批量生产,3.4.3常用操作系统介绍,2.Unix操作系统Unix是1969年在贝尔实验室诞生,最初是在中小型计算机上运用。最早移植到80286微机上的Unix系统,称为Xenix。Xenix系统的特点是短小精干、系统开销小、运行速度快。Unix为用户提供了一个分时系统以控制计算机的活动和资源,并且提供了一个交互灵活的操作界面Unix有很多种,许多公司都有自己的版本,如AT&T、Sun、HP等,3.4.3常用操作系统介绍,3.Linux操作系统Linux是一套免费使用和自由传播的类Unix操作系统,是一种基于POSIX和Unix操作系统的多用户、多任务、支持多线程和多CPU的操作系统。Linux操作系统继承了Unix操作系统以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统Linux具有Unix操作系统的优点:稳定、可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论