1、项目五软件项目的实现软件项目的实现软件工程案例教程 清华大学出版社 目 录上一页下一页 结 束软件工程软件工程项目五 软件项目的实现任务一任务一 结构化程序设计 任务二任务二 面向对象程序设计 任务三任务三 程序设计语言 任务四任务四 程序复杂度程序复杂度小结小结实验实训实验实训 目 录上一页下一页 结 束软件工程软件工程任务一任务一 结构化程序设计结构化程序设计 5.1.1 结构化程序的提出结构化程序的提出结构化程序设计的特征主要有以下几点:结构化程序设计的特征主要有以下几点:1以三种基本结构的组合来描述程序。以三种基本结构的组合来描述程序。2整个程序采用模块化结构。整个程序采用模块化结构。
2、3有限制地使用转移语句,在非用不可的情有限制地使用转移语句,在非用不可的情况下,也要十分谨慎,并且只限于在一个况下,也要十分谨慎,并且只限于在一个结构内部跳转,不允许从一个结构跳到另结构内部跳转,不允许从一个结构跳到另一个结构,这样可缩小程序的静态结构与一个结构,这样可缩小程序的静态结构与动态执行过程之间的差异,使人们能正确动态执行过程之间的差异,使人们能正确理解程序的功能。理解程序的功能。目 录上一页下一页 结 束软件工程软件工程任务一任务一 结构化程序设计结构化程序设计 4以控制结构为单位,每个结构只有一个以控制结构为单位,每个结构只有一个入口,一个出口,各单位之间接口简单,入口,一个出口
3、,各单位之间接口简单,逻辑清晰;逻辑清晰;5采用结构化程序设计语言书写程序,并采用结构化程序设计语言书写程序,并采用一定的书写格式使程序结构清晰,易采用一定的书写格式使程序结构清晰,易于阅读;于阅读;6注意程序设计风格。注意程序设计风格。我们现在用到的譬如我们现在用到的譬如C、FORTRAN、PASCAL等语言都属于典型结构化程序设等语言都属于典型结构化程序设计语言。计语言。目 录上一页下一页 结 束软件工程软件工程任务一 结构化程序设计结构化程序设计 5.1.25.1.2程序的三种基本结构程序的三种基本结构 顺序结构表示程序中的各操作是按照它们出顺序结构表示程序中的各操作是按照它们出现的先后
4、顺序执行的,其流程如图所示。图现的先后顺序执行的,其流程如图所示。图中的中的S1和和S2表示两个处理步骤,例如在我们表示两个处理步骤,例如在我们学生信息管理系统中学生信息管理系统中S1可以代表增加学生纪可以代表增加学生纪录、录、S2代表标记学生学号、代表标记学生学号、S3代表确定学生代表确定学生院系等。这些处理步骤可以是一个非转移操院系等。这些处理步骤可以是一个非转移操作或多个非转移操作序列,甚至可以是空操作或多个非转移操作序列,甚至可以是空操作,也可以是三种基本结构中的任一结构。作,也可以是三种基本结构中的任一结构。整个顺序结构只有一个入口点整个顺序结构只有一个入口点a和一个出口点和一个出口
5、点b。这种结构的特点是:程序从入口点。这种结构的特点是:程序从入口点a开始,开始,按顺序执行所有操作,直到出口点按顺序执行所有操作,直到出口点b处,所以处,所以称为顺序结构。事实上,不论程序中包含了称为顺序结构。事实上,不论程序中包含了什么样的结构,而程序的总流程都是顺序结什么样的结构,而程序的总流程都是顺序结构的。构的。S1S2S3顺序结构ba 目 录上一页下一页 结 束软件工程软件工程任务一 结构化程序设计结构化程序设计 选择结构表示程序的处理步骤出现了分选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构择其中的一个
6、分支执行。选择结构有单选择、双选择和多选择三种形有单选择、双选择和多选择三种形式。式。双选择结构单选择结构多选择结构 目 录上一页下一页 结 束软件工程软件工程任务一 结构化程序设计结构化程序设计 循环结构循环结构 循环结构表示程序反复执行某个或某些操循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些操作需要循什么情况下执行循环?哪些操作需要循环执行?循环结构的基本形式有两种:环执行?循环结构的基本形式有两种:当型循环和直到型循环,当型循环和直到型循
7、环,(a)当型循环结构(b)直到型循环结构 目 录上一页下一页 结 束软件工程软件工程5.1.3 N-S流程图N-S流程图是结构化程序设计方法中用于表示算法的流程图是结构化程序设计方法中用于表示算法的图形工具之一。对于结构化程序设计来说,传统流程图图形工具之一。对于结构化程序设计来说,传统流程图已很难完全适应了。因为传统流程图出现得较早,它更已很难完全适应了。因为传统流程图出现得较早,它更多地反映了机器指令系统设计和传统程序设计方法的需多地反映了机器指令系统设计和传统程序设计方法的需要,难以保证程序的结构良好。另外,结构化程序设计要,难以保证程序的结构良好。另外,结构化程序设计的一些基本结构在
8、传统流程图中没有相应的表达符号。的一些基本结构在传统流程图中没有相应的表达符号。例如,在传统流程图中,循环结构仍采用判断结构符号例如,在传统流程图中,循环结构仍采用判断结构符号来表示,这样不易区分到底是哪种结构。特别是传统流来表示,这样不易区分到底是哪种结构。特别是传统流程图由于转向的问题而无法保证自顶而下的程序设计方程图由于转向的问题而无法保证自顶而下的程序设计方法,使模块之间的调用关系难以表达。为此,两位美国法,使模块之间的调用关系难以表达。为此,两位美国学者学者Nassi和和Shneiderman于于1973年就提出了一种新的流年就提出了一种新的流程图形式,这就是程图形式,这就是N-S流
9、程图,它是以两位创作者姓名的流程图,它是以两位创作者姓名的首字母取名,也称为首字母取名,也称为Nassi Shneiderman图图 任务一 结构化程序设计结构化程序设计(a)顺序(b)循环(c)当型循环(d)直到型循环 目 录上一页下一页 结 束软件工程软件工程任务一 结构化程序设计结构化程序设计5.1.4 结构化程序设计方法结构化程序设计方法是公认的面向过程编程应遵结构化程序设计方法是公认的面向过程编程应遵循的基本方法和原则。结构化程序设计方法主循的基本方法和原则。结构化程序设计方法主要包括:只采用三种基本的程序控制结构来要包括:只采用三种基本的程序控制结构来编制程序,从而使程序具有良好的
10、结构;程编制程序,从而使程序具有良好的结构;程序设计自顶而下;用结构化程序设计流程图序设计自顶而下;用结构化程序设计流程图表示算法。表示算法。有关结构化程序设计及方法有一整套不断发有关结构化程序设计及方法有一整套不断发展和完善的理论和技术,对于初学者来说,完展和完善的理论和技术,对于初学者来说,完全掌握是比较困难的。但在学习的起步阶段就全掌握是比较困难的。但在学习的起步阶段就了解结构化程序设计的方法,学习好的程序设了解结构化程序设计的方法,学习好的程序设计思想,对今后的实际编程是很有帮助的。计思想,对今后的实际编程是很有帮助的。目 录上一页下一页 结 束软件工程软件工程任务二 面向对象程序设计
11、面向对象程序设计(面向对象程序设计(OOP)技术汲取)技术汲取了结构化程序设计中好的思想,并将了结构化程序设计中好的思想,并将这些思想与一些新的、强大的理念相这些思想与一些新的、强大的理念相结合,从而给你的程序设计工作提供结合,从而给你的程序设计工作提供了一种全新的方法。通常,在面向对了一种全新的方法。通常,在面向对象的程序设计风格中,你会将一个问象的程序设计风格中,你会将一个问题分解为一些相互关联的子集,每个题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数。子集内部都包含了相关的数据和函数。同时,你会以某种方式将这些子集分同时,你会以某种方式将这些子集分为不同等级,而一个对象
12、就是已定义为不同等级,而一个对象就是已定义的某个类型的变量。当你定义了一个的某个类型的变量。当你定义了一个对象,你就隐含的创建了一个新的数对象,你就隐含的创建了一个新的数据类型。据类型。目 录上一页下一页 结 束软件工程软件工程任务二 面向对象程序设计5.2.1数据抽象和封装把数据和函数包装在一个单独的单元(称为类)的行为称为把数据和函数包装在一个单独的单元(称为类)的行为称为封装。数据封装是类的最典型特点。数据不能被外界访问,封装。数据封装是类的最典型特点。数据不能被外界访问,只能被封装在同一个类中的函数访问。这些函数提供了对象只能被封装在同一个类中的函数访问。这些函数提供了对象数据和程序之
13、间的接口。避免数据被程序直接访问的概念被数据和程序之间的接口。避免数据被程序直接访问的概念被称为称为“数据隐藏数据隐藏”。抽象指仅表现核心的特性而不描述背景细节的行为。类使用抽象指仅表现核心的特性而不描述背景细节的行为。类使用了抽象的概念,并且被定义为一系列抽象的属性如尺寸、重了抽象的概念,并且被定义为一系列抽象的属性如尺寸、重量和价格,以及操作这些属性的函数。类封装了将要被创建量和价格,以及操作这些属性的函数。类封装了将要被创建的对象的所有核心属性。因为类使用了数据抽象的概念,所的对象的所有核心属性。因为类使用了数据抽象的概念,所以它们被称为抽象数据类型(以它们被称为抽象数据类型(ADT)。
14、)。封装:封装机制将数据和代码捆绑到一起,避免了外界的干封装:封装机制将数据和代码捆绑到一起,避免了外界的干扰和不确定性。它同样允许创建对象。扰和不确定性。它同样允许创建对象。简单的说,一个对象就是一个封装了数据和操作这些数据的简单的说,一个对象就是一个封装了数据和操作这些数据的代码的逻辑实体。代码的逻辑实体。在一个对象内部,某些代码和(或)某些数据可以是私有的,在一个对象内部,某些代码和(或)某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误同级别的保护,以防止程序
15、中无关的部分意外的改变或错误的使用了对象的私有部分。的使用了对象的私有部分。目 录上一页下一页 结 束软件工程软件工程任务二 面向对象程序设计5.2.2 继承继承继承是指一个对象从另一个对象中获得属性的继承是指一个对象从另一个对象中获得属性的过程。继承是软件重复使用的一种方式,新过程。继承是软件重复使用的一种方式,新的类可以吸收已存类的数据与方法,并增加的类可以吸收已存类的数据与方法,并增加新的数据和方法。它支持按层次分类的概念。新的数据和方法。它支持按层次分类的概念。目 录上一页下一页 结 束软件工程软件工程任务二 面向对象程序设计例如,学生管理系统涉及学生对象类,每一学例如,学生管理系统涉
16、及学生对象类,每一学生均拥有他们共同的属性,例如:生均拥有他们共同的属性,例如:name(姓(姓名)、名)、idNo(身份证号)、(身份证号)、sex(性别)、(性别)、stNo(学号)、(学号)、coarseId(某公共课成绩)(某公共课成绩)等。但是不同系的学生由于专业不同,他们等。但是不同系的学生由于专业不同,他们又有各自与专业相关的课程的学分,例如,又有各自与专业相关的课程的学分,例如,信息系的学生应该具有其属类信息系的学生应该具有其属类student类全部类全部特征和行为规则,同时还具有这个系学生独特征和行为规则,同时还具有这个系学生独有东西,以有东西,以Student类为基础建立的
17、信息系学类为基础建立的信息系学生类生类C_student既具有学生类的特点,也具有既具有学生类的特点,也具有信息系学生自己的特点,这里,我们称信息系学生自己的特点,这里,我们称Student类是类是C_student类的父类,类类的父类,类C_student称为称为Student的子类,的子类,C_Student类类继承学生类继承学生类Student。目 录上一页下一页 结 束软件工程软件工程任务二任务二 面向对象程序设计面向对象程序设计5.2.3多态多态 多态是指一个方法只能有一个名称,但多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多可以有许多形态,也就是程序中可以
18、定义多个同名的方法,用个同名的方法,用“一个接口,多个方法一个接口,多个方法”来描述。可以通过方法的参数和类型引用。来描述。可以通过方法的参数和类型引用。例如,学生类应该有一个计算成绩的操例如,学生类应该有一个计算成绩的操作,信息系学生、会计系学生和机械系学生作,信息系学生、会计系学生和机械系学生都继承自学生类。显然对于各种不同的学生都继承自学生类。显然对于各种不同的学生类型需要统计的课程不一样,这就需要计算类型需要统计的课程不一样,这就需要计算成绩的操作在不同的学生类中有不同的实现,成绩的操作在不同的学生类中有不同的实现,但使用同一个操作名称,我们称为多态。但使用同一个操作名称,我们称为多态
19、。继承和多态的结合可以轻易构造一系列继承和多态的结合可以轻易构造一系列功能类似但又各异的类和对象。由于继承性,功能类似但又各异的类和对象。由于继承性,这些类和对象具有相似的特征。但由于多态这些类和对象具有相似的特征。但由于多态性,同样一种行为在不同类和对象上又有不性,同样一种行为在不同类和对象上又有不同的实现和结果。同的实现和结果。目 录上一页下一页 结 束软件工程软件工程任务二任务二 面向对象程序设计面向对象程序设计面向对象程序设计的一些显著的特性包括:面向对象程序设计的一些显著的特性包括:程序设计的重点在于数据而不是过程;程序设计的重点在于数据而不是过程;程序被划分为所谓的对象;程序被划分
20、为所谓的对象;数据结构为表现对象的特性而设计;数据结构为表现对象的特性而设计;函数作为对某个对象数据的操作,与数据结构函数作为对某个对象数据的操作,与数据结构紧密的结合在一起;紧密的结合在一起;数据被隐藏起来,不能为外部函数访问;数据被隐藏起来,不能为外部函数访问;对象之间可以通过函数沟通;对象之间可以通过函数沟通;新的数据和函数可以在需要的时候轻而易举的新的数据和函数可以在需要的时候轻而易举的添加进来;添加进来;在程序设计过程中遵循由下至上(在程序设计过程中遵循由下至上(bottom-up)的设计方法。的设计方法。目 录上一页下一页 结 束软件工程软件工程任务三程序设计语言5.3.1计算机语
21、言与程序设计语言计算机语言与程序设计语言什么是计算机语言?什么是计算机语言?狭义的指计算机可以执行的机器语言。广义的狭义的指计算机可以执行的机器语言。广义的指一切用于人与计算机通讯的语言。包括程指一切用于人与计算机通讯的语言。包括程序设计语言,各种专用的或通用的命令语言,序设计语言,各种专用的或通用的命令语言,查询语言,定义语言等。现在一般采用后一查询语言,定义语言等。现在一般采用后一种说法种说法.程序设计语言程序设计语言“泛指一切用于书写计算机程序泛指一切用于书写计算机程序的语言,包括汇编语言、机器语言,以及一的语言,包括汇编语言、机器语言,以及一般称为高级语言的完全符号形式的独立于具般称为
22、高级语言的完全符号形式的独立于具体计算机的语言。体计算机的语言。”目 录上一页下一页 结 束软件工程软件工程任务三程序设计语言上面两段话很清楚地说明了计算机语言与程上面两段话很清楚地说明了计算机语言与程序设计语言之间的区别和联系。序设计语言之间的区别和联系。计算机语言是外延较大的概念,程序设计语计算机语言是外延较大的概念,程序设计语言只是计算机语言下的一个子概念。有人说:言只是计算机语言下的一个子概念。有人说:“人们交流要通过语言,人要和计算机打交道,人们交流要通过语言,人要和计算机打交道,也要通过语言,所以要使用计算机必须学习程序也要通过语言,所以要使用计算机必须学习程序设计语言。设计语言。
23、”前半句话指的是计算机语言,而后前半句话指的是计算机语言,而后半句话指的是程序设计语言,由于半句话指的是程序设计语言,由于“偷换偷换”了概念,了概念,推理不合逻辑,结论也就不可靠了。由于概念的推理不合逻辑,结论也就不可靠了。由于概念的混乱,出现了这种说法。混乱,出现了这种说法。“我们和计算机打交道,我们和计算机打交道,就要用计算机语言就要用计算机语言”这句话是对的,但用计算机这句话是对的,但用计算机语言与计算机打交道,不一定要用程序设计语言。语言与计算机打交道,不一定要用程序设计语言。目 录上一页下一页 结 束软件工程软件工程任务三程序设计语言我们用我们用DOS命令,就是在用计算机语言:命令语
24、命令,就是在用计算机语言:命令语言;我们学习言;我们学习Windows操作,用鼠标单击某一操作,用鼠标单击某一图标,让计算机执行某一操作也是一种计算机图标,让计算机执行某一操作也是一种计算机语言;我们学习某种应用软件的操作,也是学语言;我们学习某种应用软件的操作,也是学习计算机语言。总之习计算机语言。总之,我们在学习计算机知识的我们在学习计算机知识的过程中一直在学习计算机语言,一直是通过计过程中一直在学习计算机语言,一直是通过计算机语言和计算机打交道,但它们都不是程序算机语言和计算机打交道,但它们都不是程序设计语言。设计语言。程序设计语言是根据计算机的特点而编制的,它程序设计语言是根据计算机的
25、特点而编制的,它没有自然语言那么丰富多样,而只是有限规则没有自然语言那么丰富多样,而只是有限规则的集合,所以它的集合,所以它“简单易学简单易学”。但是,也正因。但是,也正因为它是根据机器的特点编制的,所以交流中无为它是根据机器的特点编制的,所以交流中无法意会和言传,而更多地表现了说一不二,法意会和言传,而更多地表现了说一不二,表表现了现了“规则规则”的严谨。例如该是的严谨。例如该是“;”的地方的地方不能写成不能写成“.”,该写,该写“a”的地方不能写成的地方不能写成“A”,这使得学习程序设计语言在一开始会有些不习这使得学习程序设计语言在一开始会有些不习惯。惯。目 录上一页下一页 结 束软件工程
26、软件工程任务三程序设计语言5.3.2程序语言分类程序语言分类1.机器语言机器语言电子计算机所使用的是由电子计算机所使用的是由“0”和和“1”组成组成的二进制数,二进制是计算机语言的基础。的二进制数,二进制是计算机语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一计算机的语言去命令计算机干这干那,一句话,就是写出一串串由句话,就是写出一串串由“0”和和“1”组成组成的指令序列交由计算机执行,这种语言,的指令序列交由计算机执行,这种语言,就是机器语言。就是机器语言。2.汇编语言汇编语言为了减轻使用机器语言编程的痛苦,人们为了减轻
27、使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的文字母、符号串来替代一个特定的指令的二进制串,比如,用二进制串,比如,用“ADD”代表加法,代表加法,“MOV”代表数据传递等等,这样一来,代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。言就称为汇编语言,即第二代计算机语言。目 录上一页下一页 结 束软件工程软件工程任务四 程序复杂度程序复杂度 5.
28、4.1 程序复杂度程序复杂度同一问题可用不同同一问题可用不同算法算法解决,而一个算解决,而一个算法的质量优劣将影响到算法乃至程序的效率。法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。间复杂度来考虑。目 录上一页下一页 结 束软件工程软件工程任务四 程序复杂度程序复杂度(1)时间频度)时间频度 一个算法执行所耗费的时间,从理论上一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知是不能算出来的,必须上机运行测试才能知
29、道。但我们不可能也没有必要对每个算法都道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为为语句频度或时间频度。记为T(n)。目 录上一页下一页 结 束软件工程软件工程任务四程序复杂度程序复杂度 n称为问
30、题的规模,当称为问题的规模,当n不断变化时,时间频不断变化时,时间频度度T(n)也会不断变化。但有时我们想知道它也会不断变化。但有时我们想知道它变化时呈现什么规律。为此,我们引入时间变化时呈现什么规律。为此,我们引入时间复杂度概念。复杂度概念。一般情况下,算法中基本操作重复执行的次一般情况下,算法中基本操作重复执行的次数是问题规模数是问题规模n的某个函数,用的某个函数,用T(n)表示,若表示,若有某个辅助函数有某个辅助函数f(n),使得当使得当n趋近于无穷大时,趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称的极限值为不等于零的常数,则称f(n)是是T(n)的同数量级函数。记作
31、的同数量级函数。记作T(n)=O(f(n),称称O(f(n)为算法的渐进时间复为算法的渐进时间复杂度,简称时间复杂度。杂度,简称时间复杂度。空间复杂度空间复杂度 与时间复杂度类似,空间复杂度是指算法在与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。记计算机内执行时所需存储空间的度量。记作作:S(n)=O(f(n)目 录上一页下一页 结 束软件工程软件工程小结结构化程序设计已经满足不了当代程序设计的需求,但是关于结结构化程序设计已经满足不了当代程序设计的需求,但是关于结构化编成的思想仍然很重要。传统的结构化分析与设计开发构化编成的思想仍然很重要。传统的结构化分析与设计开发
32、方法是一个线性过程,因此,传统的结构化分析与设计方法方法是一个线性过程,因此,传统的结构化分析与设计方法要求现实系统的业务管理规范,处理数据齐全,用户能全面要求现实系统的业务管理规范,处理数据齐全,用户能全面完整地掌握其业务需求。完整地掌握其业务需求。传统的软件结构和设计方法难以适应软件生产自动化的要求,因传统的软件结构和设计方法难以适应软件生产自动化的要求,因为它以过程为中心进行功能组合,软件的扩充和复用能力很为它以过程为中心进行功能组合,软件的扩充和复用能力很差。差。对象对象(Object)是一个现实实体的抽象,由现实实体的过程或信息是一个现实实体的抽象,由现实实体的过程或信息来定义。一个
33、对象可被认为是一个把数据(属性)和程序来定义。一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应。这些对象操作有时称为方法。对它接受到的外界信号的反应。这些对象操作有时称为方法。对象是个动态的概念对象是个动态的概念,其中的属性反映了对象当前的状态。其中的属性反映了对象当前的状态。类类(Class)用来描述具有相同的属性和方法的对象的集合。它定义用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。了该集合中每个对象所共有的属性
34、和方法。对象是类的实例。因为对象是对现实世界实体的模拟,因而能更容易地理解需求,因为对象是对现实世界实体的模拟,因而能更容易地理解需求,即使用户和分析者之间具有不同的教育背景和工作特点,也即使用户和分析者之间具有不同的教育背景和工作特点,也可很好地沟通。可很好地沟通。区别面向对象的开发和传统过程的开发的要素有:对象识别区别面向对象的开发和传统过程的开发的要素有:对象识别和抽象、封装、多态性和继承。和抽象、封装、多态性和继承。目 录上一页下一页 结 束软件工程软件工程实验实训实训目的实训目的(1)培养学生运用所学开发语言的理论知识和技能,分析解决计)培养学生运用所学开发语言的理论知识和技能,分析
35、解决计算机的实际应用问题的能力;算机的实际应用问题的能力;(2)培养学生调查研究,查阅技术文献,资料,以及编写程序的)培养学生调查研究,查阅技术文献,资料,以及编写程序的能力;能力;(3)通过实训,掌握面向对象应用程序开发与面向过程的应用程)通过实训,掌握面向对象应用程序开发与面向过程的应用程序开发的不同;序开发的不同;实训要求实训要求(1)实训前做好上机实训的准备,针对实训内容,认真复习与本)实训前做好上机实训的准备,针对实训内容,认真复习与本次实训有关的知识,完成实训内容的预习准备工作;次实训有关的知识,完成实训内容的预习准备工作;(2)能认真独立完成实训内容;)能认真独立完成实训内容;(3)实训后做好实训总结,根据实训情况完成项目实训总结报告。)实训后做好实训总结,根据实训情况完成项目实训总结报告。3.实训学时实训学时8学时学时4.实训项目实训项目运用所学课程知识,结合所学开发语言,实现小型教师信息管理应运用所学课程知识,结合所学开发语言,实现小型教师信息管理应用系统的开发。用系统的开发。5.实训题目实训题目(1)教师信息管理系统教师信息管理系统本系统包括教师基本信息管理、教师职称管理、教师考勤管理、综本系统包括教师基本信息管理、教师职称管理、教师考勤管理、综合查询等基本功能。合查询等基本功能。目 录上一页下一页 结 束软件工程软件工程结束 再见