第6章程序设计软工_第1页
第6章程序设计软工_第2页
第6章程序设计软工_第3页
第6章程序设计软工_第4页
第6章程序设计软工_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1、我们毕业啦其实是答辩的标题地方Taiyuan University of Technology大学计算机基础计算机科学与技术学院 计算机基础教学部30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部26.1程序、程序设计及软件工程6.2程序设计语言6.3 程序设计6.4 软件工程基础本章小结第6章程序设计程序设计及软件工程基础及软件工程基础30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部36.1程序、程序设计及软件工程30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部4 计算机程序:使用计算机语言编写的若干条指令的有序集合称为计算机程

2、序。 程序设计:指根据所提出的待解问题,使用某种计算机语言编制程序代码,来驱动计算机能够正确完成该任务的过程。 软件:是程序、数据以及开发、使用和维护程序需要的所有文档的完整结合。 软件工程是指导计算机软件开发和维护的一门学科,采用工程的概念、原理、技术和方法来开发和维护大型、复杂计算机软件系统。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部56.2程序设计语言30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部66.2.1程序设计语言的发展及分程序设计语言的发展及分类类 程序设计语言的发展是一个不断演化的过程,从发展历程来看,程序设计语言可以分为三类

3、:机器语言汇编语言高级语言。如图6.1所示。6.2.16.2.1程序设计语言的发展及分类程序设计语言的发展及分类 1.机器语言 机器语言也称低级语言,是用二进制代码0、1表示的,它是最底层的计算机语言,用机器语言编写的程序计算机能够直接识别和执行。 2.汇编语言 汇编语言克服了机器语言的缺点,采用助记码和符号地址来表示机器指令,因此也称作符号语言。 3高级语言 高级语言是一种接近于自然语言的程序设计语言,它按照人们的语言习惯,使用日常用语、数学公式和符号等表达方式,按照一定的语法规则来编写程序。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部76.2.16.2.1程序设计

4、语言的发展及分类程序设计语言的发展及分类 4.几种常用的计算机程序设计语言 几种常用的计算机程序设计语言: C语言、C+、Pascal语言、 Visual Basic、Java、创作工具、C#。 5.未来的计算机语言 未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易于人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部86.2.26.2.2语言处理程序语言处理程序 只要不是用机器语言编写的程序,计算机是无法直接执行的。因此用汇编语言和高

5、级语言编写的程序都需要“翻译”。 语言处理程序的作用就是将汇编程序和高级语言程序翻译成等价的机器语言程序。被翻译的程序称为源程序,翻译后生成的机器指令程序称为目标程序。下面分别介绍汇编语言程序和高级语言程序的翻译方式。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部96.2.26.2.2语言处理程序语言处理程序 1. 汇编语言程序的翻译处理 用汇编语言编写好的程序,必须经过“汇编程序”(Assembler,能把用汇编语言书写的程序翻译成机器语言程序的软件)的翻译,将其转换成目标程序,这一过程称为“汇编”。目标程序一经安置在内存的预定位置上,就能被计算机的CPU处理和运行。

6、30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部106.2.26.2.2语言处理程序语言处理程序 2高级语言程序的翻译处理 对高级语言程序的翻译有两种方式,即编译方式和解释方式。 (1)编译方式 编译方式是指将源程序经“编译程序”翻译后,形成可执行目标程序的过程。通常我们把用高级语言编写好的程序称为源程序,最终可被计算机执行的机器指令程序称为目标程序。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部116.2.26.2.2语言处理程序语言处理程序 (2)解释方式 在解释方式过程中,首先要有一种称为“解释程序”的系统软件。解式方式的翻译过程是这样的:源

7、程序进入计算机,“解释程序”读取源程序第一条语句后,翻译成机器指令代码并执行之;接着读取源程序第二条语句,翻译并执行,直到源程序的最后一条语句。即解释方式的流程是:边扫描边解释,逐句输入,逐句翻译,逐句执行,并不产生目标程序。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部126.2.36.2.3程序设计语言的选择程序设计语言的选择 程序设计语言的选择应该考虑以下因素: (1)项目的应用领域 (2)算法和数据结构的复杂性 (3)软件的执行环境 (4)性能因素 (5)软件开发人员的知识30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部136.2.46.2

8、.4高级程序设计语言的组成高级程序设计语言的组成 1. 数据类型 数据是程序操作的对象。为了有效地在计算机中保存、处理数据,各种程序设计语言都会提供若干种数据类型,供用户在程序设计中使用。数据类型一般分为基本数据类型和构造数据类型两大类。 (1)基本数据类型 基本数据类型是指程序语言设计系统自身内置的类型。最主要的特点是,其值不可以再分解为其他类型。不同的程序设计语言有不同的基本数据类型,一般有整数类型、实数类型、字符类型、逻辑类型等。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部146.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 (2)构造数据类型

9、构造数据类型是指由基本数据类型按某种方式(可以由语言系统提供,也可以由用户自定义)组合而成的类型。一般有数组类型、枚举类型、记录类型、集合类型等。 在程序中,使用数据类型通常表明了数据的两方面信息: 第一,表明该类型数据的取值形式、范围和在计算机中的存储与表示方式。 第二,表明该类型数据所能执行的运算种类,也就是说,能够施加到不同类型数据上的运算是不同的。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部156.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 2. 常量与变量 (1)常量 常量是指在程序执行过程中其值保持不变的数据。常量在程序中常常以数字常量和

10、符号常量的形式出现。例如计算圆面积的公式为Area=RR3.1415926,其中出现的3.1415926即是数字常量。 有时候常量也可用符号来代替,例如若程序中多次使用到圆周率3.1415926,而这个数字书写起来又比较长,我们可以定义一个符号常量来代替3.1415926。 例如:在C语言中,我们可以如下定义一个常量: Float const PI=3.1415926 (30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部166.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 2. 常量与变量 (2)变量 变量的实质是指在程序运行过程中其值可变化的内存单元。为了

11、便于识别或记忆,通常需要为变量指定一个标识符,即定义变量名。变量名对应于一个或一组存储单元。 由于变量是用来存放数据的,因此变量在使用前需要说明其数据类型,即变量在使用之前,必须对其类型和名称进行定义。这样在编译时,编译程序就可以为内存中的变量分配相应的存储空间,以存放该变量的值。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部176.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 3.运算符与表达式 (1)运算符:在程序中,对数据的处理主要是通过运算实现的。高级程序设计语言中会包含多种形式的运算,常见的运算有: 算术运算:加、减、乘、除、取余。 关系运算:

12、大于、大于等于、小于、小于等于、等于、不等于。 逻辑运算:与、或、非。 字符运算:连接。 就可以为内存中的变量分配相应的存储空间,以存放该变量的值。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部186.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 不同的高级程序设计语言提供的运算符种类或运算符号略有不同。例如,常见运算在Visual Basic中的表示形式如表6-1所示。 (2)表达式:程序语言中的表达式是由一系列操作数和运算符组合而成的,表达式的结果为一个具体的值。操作数可以是常量或变量。例如:表6-1中提供了,用VB语言书写的表达式示例。30/4/2

13、022太原理工大学.计算机科学与技术学院.计算机基础教学部196.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 4. 语句 语句是程序中具有独立含义的基本单位,通常分为说明性语句和执行性语句。 说明性语句通常用来说明程序中的变量以及变量的数据类型。执行性语句常见的有赋值语句、输入输出语句等,如图 6.6所示。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部206.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 5. 控制结构 控制结构规定了程序中语句的执行顺序,高级程序语言中会含有多种形式的控制结构语句,其中最基本的是:顺序结构控制语句、选择

14、结构控制语句、循环结构控制语句。 (1)顺序结构控制语句30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部216.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 5. 控制结构 (2)选择结构控制语句 选择结构(或称分支结构)根据条件判定的结果,决定程序的执行次序。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部226.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 5. 控制结构 (3)循环结构控制语句 循环结构又称重复结构。一般有两种循环形式:当型循环结构、直到型循环结构。30/4/2022太原理工大学.计算机科学与技术

15、学院.计算机基础教学部236.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 6.函数和过程 为了使程序在结构上更加清晰,避免程序段的重复书写,可以把具有某些特定功能的或反复使用的程序段独立出来,这样的程序段被称为过程(或子程序)或函数。 过程和函数都不能独立执行,只有在某个程序中调用了这个过程或函数,它才被执行。高级程序设计语言提供了大量的已定义好的函数,程序设计者可以根据需要在程序中直接调用这些函数,大大提高了编程的效率。 例如,使用某高级语言程序设计时,要计算sin(300)的值,只需要在程序中调用该语言提供的sin()函数即可。30/4/2022太原理工大学.计算机科学与

16、技术学院.计算机基础教学部246.2.46.2.4高级程序设计语言的组成高级程序设计语言的组成 7.注释 注释是程序的非有效部分,注释并不要求计算机理解它们,它的作用是方便读程序的人阅读理解程序。不同的程序设计语言,都有自己的注释规则。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部2530/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部266.3 程序设计6.3.1 6.3.1 程序设计的步骤程序设计的步骤 程序设计的步骤一般包括:问题分析和建立模型、算法设计、程序编码、调试运行和文档编制,如图6.11 所示。30/4/2022太原理工大学.计算机科学

17、与技术学院.计算机基础教学部276.3.1 6.3.1 程序设计的步骤程序设计的步骤 1.问题分析和建立模型 用计算机求解问题,首先要设法把实际问题抽象成数学问题,即对其建立数学模型。明确哪些数据是问题的输入,指已知什么条件;明确数据具体的处理过程和要求,指希望计算机对输入信息做什么样的加工;哪些是期望的输出,指希望得到什么结果,输出什么类型的报告、图标或信息。 【例6-5】在一个学生成绩管理系统的设计中,首先需要分析问题的输入条件,比如学生的学号、姓名、各科的学习成绩等。系统的输出结果之一是要在屏幕上输出总成绩第一的学生的姓名和成绩。那么相应的处理过程就要对各个学生的各科成绩求和,并找出合计

18、值最大的学生作为第一名。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部286.3.1 6.3.1 程序设计的步骤程序设计的步骤 2. 算法设计 算法是解决问题的步骤及其描述,是根据问题分析中的信息得来的,是对问题处理过程的进一步细化。算法是程序编码前对处理思想的一种描述,不能被计算机直接执行。 【例6-6】针对上面例子设计的一种算法是: 输入全部学生的姓名、学号及本学期的所有课程的成绩。 对每个学生的各科成绩求和。 按总成绩的降序对学生进行排序。 取该排序列表的第一个学生。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部296.3.1 6.3.1

19、程序设计的步骤程序设计的步骤 3. 程序编码 编码就是用计算机能够识别的语言编写源程序的过程。首先应当选择编程语言,然后用该语言来描述前面设计的数据结构和算法。 4.调试运行 调试运行是解决程序错误的主要手段,是程序设计过程中必不可少的阶段。调试程序是一个不断重复进行的过程,需要有耐心和毅力,还需要有调试程序经验的积累。 为了便于找出并解决程序的错误,通常把程序错误分为三类:语法错误(编译错误)、逻辑错误和运行错误。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部306.3.1 6.3.1 程序设计的步骤程序设计的步骤 5.文档编制 文档由程序说明文件和用户操作手册组成。

20、程序说明文件记录程序设计的算法,程序的实现以及修改的过程,以保证程序的可读性和可维护性。用户操作手册让用户了解程序的使用方式以及正确的输入数据。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部316.3.2 6.3.2 程序设计的方法程序设计的方法 1.结构化程序设计方法 (1)结构化程序设计的基本思想 结构化程序设计的基本思想是:采用“自顶向下、逐步求精”的模块化程序设计原则,采用“单入口单出口”的控制结构,少用或最好不用GOTO语句。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部326.3.2 6.3.2 程序设计的方法程序设计的方法 自顶向下

21、、逐步求精 模块化 单入口单出口30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部336.3.2 6.3.2 程序设计的方法程序设计的方法 (2) 结构化程序设计的步骤 结构化程序设计方法着眼于系统要实现的功能,从系统的输入和输出出发,分析系统要做什么,以及如何做,自顶向下地对系统的功能进行分解,建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序设计任务分解成许多易于控制和处理的子任务。 (3)结构化程序设计实例 【例6-8】使用结构化的设计方法处理一个任务:筹划一个大型聚会。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部346.3.2

22、 6.3.2 程序设计的方法程序设计的方法 2.面向对象程序设计方法 (1)面向对象的基本概念对象(Object) 我们通常用对象描述客观世界中的某个具体实体,对象可以是事、物或抽象概念。 在面向对象程序设计中,对象是指包含现实世界事务特征的抽象实体,它是将一组数据(属性)和使用该数据的一组基本操作(方法)封装在一起的实体。 属性用于描述对象的状态特征,用属性值来表示。 方法用于描述对象的行为,是对对象的属性的各种操作,用代码来实现。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部356.3.2 6.3.2 程序设计的方法程序设计的方法 类(Class) 类这个词指的是把

23、对象归入相关的组,描述它们共性的思想。类是指具有相同属性和方法的、并遵守相同规则的一组对象的集合。消息(Message) 消息是对象之间进行通信的方式。一条消息内容包含信息的接受者和对其执行操作的请求。发送者发送消息,接受者通过调用相应的方法响应消息,这种通信机制称为消息传递。 消息传递是对象之间相互联系的唯一途径。消息传递的过程被不断重复。从而驱动整个程序的运转。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部366.3.2 6.3.2 程序设计的方法程序设计的方法 30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部376.3.2 6.3.2 程序设

24、计的方法程序设计的方法 抽象性(Abstract) 将客观事物抽象成对象及类是面向对象程序设计的基本思想,这种抽象包括两个方面,一是数据抽象,二是代码抽象。数据抽象定义了对象的属性和状态;代码抽象定义某类对象的共同行为特征或具有的共同功能,即对象的方法。封装性(Encapsulation) 封装就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。在面向对象程序设计中,只能通过受限的接口来读取和修改对象的属性值,不允许外界直接访问对象内部,这样的设计实现了数据隐藏的效果,保证了数据的安全,防止外部程序破坏对象的内部数据,使得程序的维护、修改和移植较为容易。30/4/2022太

25、原理工大学.计算机科学与技术学院.计算机基础教学部386.3.2 6.3.2 程序设计的方法程序设计的方法 继承性(Inheritance) 继承性是指特殊类的对象拥有其一般类的属性和行为的方式。即子类可以从父类那里获得所有的属性和方法,并且通过继承和改造拥有属于自己的一套属性与方法;同时,子类又可以派生出下一代子类。 例如,把“学生”类看作父类,“大学生”类和“中学生”类可以看作“学生”类的子类,它们和“学生”类是继承关系,继承了“学生”类(父类)的操作和属性。 在面向对象程序设计中,继承有效地支持了软件代码的复用,缩短了开发周期,提高了软件开发的效率,同时也使软件易于维护和修改。30/4/

26、2022太原理工大学.计算机科学与技术学院.计算机基础教学部396.3.2 6.3.2 程序设计的方法程序设计的方法 多态性(Polymorphism) 多态性是指当同样的消息被不同的对象接收时,却导致完全不同的行为。即通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态。 例如,有一个“几何体”类,为其定义了一个名为area的操作,用于计算面积。如果“矩形”和“圆形”类分别继承了“几何体”类,那么“矩形”和“圆形”类分别继承了“几何体”类的area操作。因为矩形和圆面积的计算公式不同,所以这两个操作虽然具有相同的名字却做不同的运算。这样就可以实现“一个接口,多种方法”。 在面向

27、对象程序设计中使用多态的概念,增强了程序对客观世界的模拟性,使得程序具有更好的可读性,易于理解,从而显著提高了软件的可复用性和可扩充性。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部40 (2)面向对象程序设计的方法 在面向对象的程序设计中,首先把问题背景中的实体描述为对象,设计的思路不是将问题分解为过程,而是将问题分解为对象。用符合人类认识世界的思维方式来分析、解决问题,使问题空间与解空间具有一致性,降低了从问题域到解空间映射的复杂性30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部4130/4/2022太原理工大学.计算机科学与技术学院.计算机基

28、础教学部426.4 软件工程基础6.4.16.4.1软件工程的诞生及发展软件工程的诞生及发展 软件工程的诞生和发展是与软件的发展过程紧密相关的。自从第一台电子计算机诞生以来,就开始了软件的生产,“软件工程”提出至今,在实践中逐步成熟,在软件的开发与维护和软件产业的发展中发挥了巨大的作用,它的发展大致可分为四个重要阶段:第一阶段(传统的软件工程)第二阶段(对象工程)第三阶段(软件过程工程)第四阶段(构件工程)30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部436.4.26.4.2软件工程的概念软件工程的概念 1软件工程的定义 软件工程是应用计算机科学、数学及管理科学等原理,

29、借鉴传统工程的原则、方法来创建软件,从而达到提高质量、降低成本的目的。 2软件工程的基本目标与原则目标:在低开发成本、按时交付的前提下,开发出满足用户需求的高 质量软件产品。原则:(1)选取适宜开发范型。 (2)采用合适的设计方法。 (3)提供高质量的工程支持。 (4)重视开发过程的管理。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部446.4.26.4.2软件工程的概念软件工程的概念 3. 软件的生命周期 软件生命周期是一个软件从生到灭所历经的整个过程,具体来说是从提出用户需求开始,经过开发、交付使用,在使用中不断地增补修订,直至软件报废的全过程。 通常把软件的生命周

30、期划分为计划、开发和运行三个时期,每一个时期又可以进一步细划为若干阶段。软件计划时期一般有问题定义和可行性研究2个阶段;开发时期有需求分析、软件设计、编码和测试4个阶段;运行时期主要是维护阶段。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部456.4.26.4.2软件工程的概念软件工程的概念 4软件工程的研究内容和基本原理 (1)软件工程研究的内容 软件工程的研究内容主要包括标准与规范、过程与模型、方法与技术、工具和环境四个方面。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部466.4.26.4.2软件工程的概念软件工程的概念 4软件工程的研究内

31、容和基本原理 (2)软件工的基本原理 用分阶段的生命周期计划严格管理。 坚持进行阶段评审。 实行严格的产品控制。 采纳现代程序设计技术。 结果应能清楚地审查。 开发小组的人员应少而精。 承认不断改进软件工程实践的必要性。30/4/2022太原理工大学.计算机科学与技术学院.计算机基础教学部476.4.36.4.3软件开发模型软件开发模型 在软件系统的开发过程中,为了从宏观上管理软件的计划、开发和维护,就必须对软件的开发过程有总体的认识和描述,即要建立软件开发模型。软件开发模型提供了软件生命周期中全部过程、活动和任务的结构框架。目前已经提出了多种具体的软件开发模型,如瀑布模型、原型模型、增量模型、螺旋模型、统一过程(RUP)模型、敏捷过程模型等。 1.瀑布模型 瀑布模型也称生命周期模型或线性顺序模型。它将软件开发过程划分成若干个互相区别而又彼此联系的阶段,每个阶段中的工作都以上一个阶段工作的结果

温馨提示

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

评论

0/150

提交评论