资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
,第六章 程序设计和软件工程基础,第六章 程序设计和软件工程基础,程序设计基础 计算机程序 程序设计语言、语言处理程序及集成开发环境 结构化程序设计基础知识、面向对象程序设计基本概念 程序设计的基本风格 软件工程基础 软件的组成 软件生命周期与软件工程过程 结构化分析方法、结构化设计方法基本知识 软件测试基础,6.1 程序设计基础,程序,步骤1 :打开方便面包装; 步骤2 :把面饼和调料放入碗内; 步骤3 :冲入开水; 步骤4 :盖上盖子; 步骤5 :等待3分钟; 步骤6 :吃方便面; 步骤7 :程序结束。,计算机程序,在计算机领域,程序是指导计算机为完成某项功能所需要执行的命令序列 A=1 B=2 C=A+B PRINT C,程序设计过程,程序设计过程,1. 分析问题 要解决什么问题?需要输入哪些信息? 期望的输出结果是什么? 数据具体的处理过程和要求是什么。 从给定的输入到期望输出,必要的处理步骤有哪些? 确定数学模型 2. 设计程序,一元二次方程的根,程序设计过程,3程序编码以及编辑、编译和连接 int mian( void ) float a,b c,x1,x2,deta; cinabc; deta=b*b-4*a*c; if(deta=0) x1=(-b+sqrt(deta)/(2*a); x2=(-b-sqrt(deta)/(2*a); cout“x1=”x1” x2=”x2endl; else cout”无实数解”; ,程序设计过程,4测试程序 在程序的编写中,查找和修改错误的过程为程序测试。 5编写程序文档 对于由多人合作开发的软件来说,由于每个人负责的功能模块不同,读起来有困难,需要编写程序文档。,程序设计语言,计算机语言,它是由“0”和“1”组成的二进制代码语言 机器语言程序可以直接在计算机上运行,人们采用符号和数字代替二进制代码指令,可用ADD代表加法、SUB表示减、JMP表示程序跳转等等。,接近于人们的自然语言和数学公式编写程序的语言 。,语言处理程序,语言处理程序,汇编程序,把用汇编语言写的汇编语言源程序翻译成机器可执行的由机器语言表示的目标程序的翻译程序,编译程序,是将用高级语言所编写的源程序翻译成与之等价的用机器语言表示的目标程序的翻译程序,其翻译过程称为编译,解释程序,接受用某种程序设计语言(如Basic语言)编写的源程序,然后对源程序进行逐句分析,若没有错误,将该语句翻译成一个或多个机器语言指令,然后立即执行这些指令;若解释时发现错误会立即停止,报错并提醒用户更正代码。解释方式不生成目标程序,集成开发环境 (IDE,Integrated Development Environment,程序从编写到调试执行需要使用不同的工具完成; 1.使用编辑器进行程序源代码的开发 2.根据编程选用的语言,选择使用语言处理对源代码进行处理 3.使用代码调试工具协助查找程序中的错误 所谓集成开发环境是用于提供程序开发环境的应用程序, 这个程序将编写代码所使用的编辑器、编译器、调试器和以及图形用户界面工具集成在一起。 如微软的Visual Studio系列,Borland的C+ Builder、Delphi系列等。IDE通常具有代码会自动生成,简化程序的代码编写的工作。,程序设计的两种方法,结构化程序设计方法 始于60年代 面向对象的程序设计方法 始于80年代,结构化程序设计基本原则,模块化的程序设计是结构程序设计的精髓 在程序设计时应采用自顶向下,逐步细化的实施方法。 避免使用goto语句,模块化 一个大型程序应按功能分割成一些功能模块, 并把这些模块按层次关系进行组织。 功能分解的目的是将大规模的、复杂的问题分解成若干小规模的问题,采用分而治之的方法,降低程序设计的复杂性。,结构化程序设计基本原则,模块化的程序设计是结构程序设计的精髓 在程序设计时应采用自顶向下,逐步细化的实施方法。 避免使用goto语句,自顶向下、逐步细化的实施方法。 应先考虑整体,再考虑细节; 先考虑全局目标,再考虑局部目标。 先从上层总目标开始设计,使问题逐步具体化。,结构化程序设计基本原则,模块化的程序设计是结构程序设计的精髓 在程序设计时应采用自顶向下,逐步细化的实施方法。 避免使用goto语句,避免使用goto语句 goto语句是一个无条件的跳转语句,goto语句会使得程序的执行过程变得混乱,严重影响程序的可读性。,程序的三种基本结构,顺序 分支 循环,顺序结构,分支结构,循环结构,面向对象程序设计,面向对象程序设计的基本思想是使用现实世界的概念抽象地思考问题从而自然地解决问题。 现实世界是有各种实体组成 比如一个学校,有学生、教师、各种教学辅助设施等等不同的实体组成 实体之间通过消息传递(教师学生布置作业即是发送了消息,)进行沟通交流,相互协作完成某项任务。,对象(Object),对象是人们要进行研究的任何事物,是现实世界中的一个实体。 例如学生就是一个对象。 任何对象都拥有一组数据和操作。 对象所拥有的数据称为对象的属性。 在现实世界中,对象都具有一定的行为,比如,学生要上课、下课、写作业等等。 对象所拥有的行为称为对象的所具有的操作。 对象实现了数据和操作的封装。,类(Class),类是对象的抽象。 相同特征的一组对象进行抽象形成了类。 比如,可以对不同的学生个体进行抽象,形成学生类。 本质上讲,类是一种数据类型,是由程序员根据处理问题的需要自己创建的一种数据类型。 任何一个对象都是通过类的实例化之后得到的。,数据封装(Data Encapsulation),把数据和对数据的操作封装在一个单独的单元(称为类)的行为称为封装。 数据封装是类的最典型特点。 在类中,被封装的数据不能被外界访问,只能被封装在同一个类中的函数访问。 这些函数提供了对象数据和程序之间的接口。避免数据被程序直接访问的概念被称为信息隐藏。,继承(Inheritance),继承是可以让某个类型的对象获得另一个类型的对象的属性的一种技术。 继承的概念支持代码的重用性(reusability) 可以向一个已经存在的类中添加新的特性,多态性(Polymorphism),不同的对象,对同一消息的不同响应。 比如说加法操作,如果操作的数据是数,它对两个数求和。如果操作的数据是字符串,则它将连接两个字符串。,消息传递(Message passing),一个面向对象的程序由许多对象组成,对象之间通过收发信息相互沟通, 消息就是请求执行某个过程, 消息的接收对象会调用一个函数(过程),以产生预期的结果。,程序设计风格,源程序的编写风格 (1) 标识符的命名在符合词法规则的基础上,要做见名知意,以便理解程序功能,从而提高程序的可读性。 (2) 在程序中利用空格、空行、 锯齿形缩进等排版技巧使程序层次清晰。 (3) 正确的程序注释语句,对程序中的语法成分进行解释。 注释语句包括序言性注释和功能性注释。 序言性注释对程序标题、程序功能说明、主要算法 、接口说明、程序位置、开发简历、程序设计者 、复审者、复审日期及修改日期等进行说明。 功能性注释一般嵌在源程序体中,用于描述其后的语句或程序的主要功能。,程序设计风格,数据说明方法 (1) 数据说明的次序规范化 各种不同种类的数据说明的次序,最好固定下来,易于查找数据属性。 (2) 说明语句中变量安排有序化 一个语句中需要声明多个变量,应按字母顺序排列。 (3) 使用注释来说明复杂数据的结构,程序设计风格,语句的结构 (1) 一行内只写一个语句;数据结构要有利于程序的简化,程序要模块化;程序编写要做到清晰第一,效率第二。 (2) 尽量使用库函数;避免不必要的转移,避免采用复杂的条件语句;不要修补不好的程序,要重新编写。,程序设计风格,输入/输出 对输入数据要检查数据的合法性; 交互式输入数据时应有必要的提示信息; 应允许缺省值,提高输入数据的效率; 若用户输入某些数据后可能产生严重后果,应给用户输出必要的提示并要求用户确认(容错处理); 输入格式要简单,使得输入的步骤和操作尽可能简单; 当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;输出数据的格式应清晰、美观;输出数据时要加上必要的提示信息。,软件工程基础,软件的组成 软件生命周期与软件工程过程 结构化分析方法、结构化设计方法基本知识 软件测试基础,软件(software),软件,程序,=,数据,文档,+,+,软件分类,系统软件,支撑软件 (中间件),应用软件,计 算 机 软 件,最靠近硬件 其他软件通过系统软件发挥作用 操作系统和编译器软件等,支撑软件的开发和维护 数据库管理系统、网络软件,特定应用领域的软件, 包括办公软件、电子商务软件、通信软件、行业软件,游戏软件等等。,软件危机,软件需求的增长得不到满足; 软件开发成本和进度无法控制; 软件质量难以保证; 软件不可维护或维护程度非常低; 软件成本不断提高; 软件开发生产效率的提高赶不上硬件的发展和应用需求的增长; 软件通常缺少适当的文档资料。,软件工程,多种定义 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。通过将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护软件,即把工程化应用到软件,软件工程的主要内容,(1)软件开发技术 软件开发方法学 软件开发过程 软件工具和软件工程环境。 (2) 软件工程管理 软件管理学 软件经济学 软件心理学。,软件工程三要素,方法 是为软件开发提供“如何做”的技术。 工具 是为软件工程方法提供自动或半自动的软件支撑环境。 过程 是将软件工程中的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。因此,方法、工具、过程又被称为软件工程三要素,软件生命周期,维护期,结构化分析方法,需求分析方法 设计方法 测试方法 调试方法,需求分析,需求分析方法,结构化的分析方法 面向数据流的结构化分析方法(SA,Structure Analysis), 面向数据结构的Jackson(JSD ,Jackson System Development)方法 面向数据结构的结构化系统开发方法(DSSD,Data Structure System Development) 面向对象的分析方法(OOA,Object Orient Analysis),需求分析方法,结构化需求分析方法 面向对象需求分析方法,结构化需求分析方法,数据流图(DFD,Data Flow Diagram ) 数据字典 判定树 判定表 等为工具,数据流图(DFD,Data Flow Diagram,是结构化分析方法中使用的工具 它以图形的方式描绘数据在系统中流动和处理的过程 它只反映系统必须完成的逻辑功能,所以它是一种功能模型。,数据流图的基本符号( 成分),数据流。 由一组成分固定的数据组成。 如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。 由于数据流是流动中的数据,所以必须有流向, 数据流应该用名词或名词短语命名。,数据流图的基本符号( 成分),数据源(终点)。 代表系统之外的实体,可以是人、物或其他软件系统。 加工(处理)。 加工是对数据进行处理的单元,它接收一定的数据输入,对其进行处理,并产生输出。 数据存储。 表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等等。,简单的取款系统的DFD,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号