




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、q程序设计基础程序设计基础q软件工程基础软件工程基础 是指利用计算机解决问题的全过程,是指利用计算机解决问题的全过程,它包含多方面的内容,而编写程序只是其它包含多方面的内容,而编写程序只是其中的一部分。中的一部分。 分分析析问问题题确定确定处理处理方案方案确定确定操作操作步骤步骤编编写写程程序序上机上机运行运行程序程序整整理理结结果果 求圆的面积和周长的程序设计一求圆的面积和周长的程序设计一般步骤:般步骤: 分析问题分析问题 求圆的面积和周长需要知道圆的半径求圆的面积和周长需要知道圆的半径r r,根据圆的半,根据圆的半径求出圆的面积径求出圆的面积S S和周长和周长L L并输出结果。并输出结果。
2、 确定处理方案确定处理方案 求圆的面积数学公式是:求圆的面积数学公式是:S=S=rr2 2 求圆的周长公式是:求圆的周长公式是:L=2L=2r r 确定操作步骤确定操作步骤 求圆的面积和周长的算法描述为:求圆的面积和周长的算法描述为: 确定半径的初值确定半径的初值 计算面积计算面积S S 计算周长计算周长L L 输出结果输出结果S S,L L 根据操作步骤编写源程序根据操作步骤编写源程序。 将上面求圆的面积和周长算法编写源程序如下将上面求圆的面积和周长算法编写源程序如下 define PI 3.14159 main() float r=3,S,L; S=PI*r*r; L=2*PI*r; pr
3、intf(“S=%f,L=%fn”, S, L); 运行调试程序运行调试程序。 整理输出结果,写出相关文档整理输出结果,写出相关文档。程序设计方法与风格程序设计方法与风格程序设计方法程序设计方法 是指以什么观点来研究问题并进行求解,是指以什么观点来研究问题并进行求解,以及如何进行系统设计的以及如何进行系统设计的软件方法学软件方法学。程序设计方法经过的程序设计方法经过的2 2个阶段个阶段q 结构化程序设计结构化程序设计q 面向对象程序设计面向对象程序设计程序设计风格程序设计风格 编写程序时所表现出的编写程序时所表现出的、和和。 程序设计风格强调程序设计风格强调、和和。 当今主导的程序设计风格当今
4、主导的程序设计风格: : 清晰第一、效率第二清晰第一、效率第二main() float r , s ; scanf(“%f” , &r); if(r0) /半径必须为正数半径必须为正数 s=2*3.14159*r; printf(“s=%f” , s); else printf(“请输入正数请输入正数!”); main() float r , s ; scanf(“%f” , &r); if(r0) s=2*3.14159*r; printf(“s=%f” , s); else printf(“请输入请输入正数正数!”); 结构化程序设计原则结构化程序设计原则基本结构基本结构模
5、块化模块化逐步求精逐步求精模块化模块化 限制使用限制使用goto语句语句 学生成绩管理学生成绩管理增加增加删除删除修改修改查询查询统计统计按学号按学号按姓名按姓名按班级按班级 main() float r , s ; scanf(“%f” , &r); s=2*3.14159*r; printf(“s=%f” , s); ABmain() float r , s ; scanf(“%f” , &r); if(r0) s=2*3.14159*r; printf(“s=%f” , s); else printf(“请输入正数请输入正数!”); AB条件条件真真假假main() in
6、t i , s ; s=0; for(i=0 ; i=100 ; i+) s=s+i; printf(“s=%d”,s); A条件条件真真假假q 程序结构良好程序结构良好q 程序清晰易读程序清晰易读、使用和维护、使用和维护q 提高编程的效率,降低开发成本提高编程的效率,降低开发成本q 数据与对数据的操作数据与对数据的操作(函数函数)相分离,造成相分离,造成数据和算法的一致性差数据和算法的一致性差q 程序的可重用性差程序的可重用性差基本概念基本概念面向对象方法的特征和用途面向对象方法的特征和用途 对象对象 = = 属性属性 + + 操作操作 属性:属性:就是对象的特征,是对象外观及行为就是对象的
7、特征,是对象外观及行为的特征。的特征。 是具有是具有共同属性共同属性和和共同操作方法共同操作方法的对象的集的对象的集合,是对象的抽象。合,是对象的抽象。 描述了属于该对象类型的所有对象的性质。描述了属于该对象类型的所有对象的性质。 类是对象的类是对象的抽象(模板)抽象(模板),对象则是其对应类的,对象则是其对应类的一个一个。 p接收消息的对象名称接收消息的对象名称p消息名称消息名称p零个或多个参数零个或多个参数 发送发送对象对象接接口口接收对象消息操作名、参数 指从外面看只能看到对象的外部特征,而指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构及实现操不知道也无须知道数据的具
8、体结构及实现操作的算法。作的算法。信息的隐蔽是通过对象的封装性来实现的信息的隐蔽是通过对象的封装性来实现的属性属性操作操作1 1、2 2、3 3的实现的实现操作操作1 1操作操作2 2操作操作3 3界面界面 使用已有的类(使用已有的类(父类父类)定义作为基础建立)定义作为基础建立新类(新类(子类子类)的定义技术。)的定义技术。单继承单继承多重继承多重继承 人人 职工职工 学生学生 教师教师 在职学生在职学生 提高了软件的可重用性,继承具有提高了软件的可重用性,继承具有 同一消息被不同的对象接受时可以产同一消息被不同的对象接受时可以产生完全不同的行为。生完全不同的行为。 实现实现“同一接口,不同
9、实现同一接口,不同实现” ” 增加了系统的灵活性,进一步减少数据冗余,增加了系统的灵活性,进一步减少数据冗余,显著提高软件的可重用性和可扩充性。显著提高软件的可重用性和可扩充性。基本概念基本概念 是计算机系统中与硬件相互依赖的一是计算机系统中与硬件相互依赖的一部分,包括部分,包括、和相关的和相关的。程序程序 计算机执行的指令序列。计算机执行的指令序列。数据数据 是使程序能正常操作信息的数据结构。是使程序能正常操作信息的数据结构。文档文档 是与程序的开发、维护和使用有关的图文资料是与程序的开发、维护和使用有关的图文资料软件是软件是程序程序、数据数据和和文档文档的集合的集合软件工程源自软件工程源自
10、软件危机软件危机 泛指在计算机软件的开发和维护过程泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括中所遇到的一系列严重问题,包括、等问题。等问题。q软件需求的增长得不到满足软件需求的增长得不到满足q软件开发成本和进度无法控制软件开发成本和进度无法控制q软件质量难以保证软件质量难以保证q软件不可维护或维护程度非常低软件不可维护或维护程度非常低q软件成本不断提高软件成本不断提高q软件开发生产效率的提高赶不上硬件的发展和软件开发生产效率的提高赶不上硬件的发展和应用需求的增长应用需求的增长 指导计算机软件开发和维护的工程指导计算机软件开发和维护的工程学科。包括一下三要素:学科。包括一下三
11、要素: 为软件开发提供为软件开发提供“”技术。技术。 指支持软件开发、管理、文档生成的自动半自指支持软件开发、管理、文档生成的自动半自 动软件支撑环境。动软件支撑环境。 指软件开发各个环节的控制和管理。指软件开发各个环节的控制和管理。 软件工程的软件工程的核心思想核心思想是将工程化原则运用到软件开是将工程化原则运用到软件开发过程中,即将软件产品作为一个工程产品处理。它包括发过程中,即将软件产品作为一个工程产品处理。它包括、和和三要素。三要素。 是为获得软件产品,在软件工具支持下由软件工程师完成的一系列工程活动。通常包括4种基本过程活动 软件规格说明软件规格说明。规定软件的功能以及运行时的限制。
12、规定软件的功能以及运行时的限制。 软件开发软件开发。 产生满足软件规格说明的软件。产生满足软件规格说明的软件。软件确认软件确认。 确认软件能够满足用户提出的要求。确认软件能够满足用户提出的要求。 软件演进软件演进。 为满足用户的变更要求,软件必须为满足用户的变更要求,软件必须 在使用的过程中演进。在使用的过程中演进。 将软件产品从提出、实将软件产品从提出、实现、使用、维护、停止使现、使用、维护、停止使用到退役的过程,称为软用到退役的过程,称为软件生命周期。件生命周期。 问题定义问题定义 可行性分析可行性分析 需求分析需求分析 软件设计软件设计 软件测试软件测试 软件实现软件实现 运行和维护运行
13、和维护软件软件定义定义软件开发软件开发软件运行维护软件运行维护协助开发人员进行软件开协助开发人员进行软件开发活动所使用的软件或环境。它包括发活动所使用的软件或环境。它包括、和和等。等。是全面支持软件开发全过是全面支持软件开发全过程的软件工具的集合。程的软件工具的集合。 软件工程过程软件工程过程该阶段是弄清楚用户需要计算机解决什么问题,该阶段是弄清楚用户需要计算机解决什么问题,以及项目所需的资源和经费。以及项目所需的资源和经费。主要任务就是主要任务就是调研调研和分析,写出和分析,写出“系统目标与范系统目标与范围说明书围说明书”。 该阶段的目的是弄清楚:用户要该阶段的目的是弄清楚:用户要解决的问题
14、是否能够解决和值得解决。解决的问题是否能够解决和值得解决。需求分析的任务需求分析的任务 导出目标系统的逻辑模型,解决导出目标系统的逻辑模型,解决“”的问的问题。题。需求分析方法需求分析方法 结构化分析方法(采用的常用工具)结构化分析方法(采用的常用工具) 面向对象的分析方法面向对象的分析方法 根据用户的需求进行分析并给出详细定义,根据用户的需求进行分析并给出详细定义,即确定软件系统的功能。即确定软件系统的功能。是在软件需求分析阶段的运用,是是在软件需求分析阶段的运用,是面面向数据流向数据流进行需求分析的方法,采用自顶向进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以下、逐层分
15、解,建立系统的处理流程,以和和为主要工具,建立系统的为主要工具,建立系统的模型。模型。q 数据流图数据流图(DFD) 是以图形的方式描绘数据在系统中流动和处理的过程,是以图形的方式描绘数据在系统中流动和处理的过程,它反映了系统必须完成的逻辑功能,是结构化分析方法中用它反映了系统必须完成的逻辑功能,是结构化分析方法中用于表示系统逻辑模型的一种工具。于表示系统逻辑模型的一种工具。q 数据字典数据字典(DD) 是结构化分析方法的核心,其作用是对数据流图中被命是结构化分析方法的核心,其作用是对数据流图中被命名的图形元素进行确切的解释。名的图形元素进行确切的解释。q 判定树判定树q 判定表判定表是以是以
16、描绘数据在系统中流动描绘数据在系统中流动和处理的过程,它反映了系统必须完成的逻和处理的过程,它反映了系统必须完成的逻辑功能,是结构化分析方法中用于表示系统辑功能,是结构化分析方法中用于表示系统逻辑模型的一种工具。逻辑模型的一种工具。 加工加工数据流数据流存储文件存储文件源、潭源、潭加加 工工:描述输入流到输出流之间的变换:描述输入流到输出流之间的变换数数 据据 流流:表示数据的流向:表示数据的流向存储文件存储文件:表示暂时存储的数据:表示暂时存储的数据源源 、 潭潭:也称外部实体,指出系统所需数据的发:也称外部实体,指出系统所需数据的发源地和系统所产生数据的归宿地。源地和系统所产生数据的归宿地
17、。把已确定的各项需求转换成一个相应的把已确定的各项需求转换成一个相应的体系结构。进而对每个模块要完成的工作进体系结构。进而对每个模块要完成的工作进行具体的描述。编写设计说明书并提交评审。行具体的描述。编写设计说明书并提交评审。主要解决主要解决的问题。的问题。q总体设计总体设计( (概要设计概要设计) ) 将软件需求转化为数据结构和软件的系将软件需求转化为数据结构和软件的系统结构。统结构。 q详细设计详细设计 软件的软件的过程过程设计,通过对结构表示进行细设计,通过对结构表示进行细化,得到软件的详细数据结构和算法。化,得到软件的详细数据结构和算法。q抽象抽象 抽出事物本质的共同特点而不考虑它的细
18、节抽出事物本质的共同特点而不考虑它的细节q模块化模块化 模块是一个具有明确定义的输入、输出和特性模块是一个具有明确定义的输入、输出和特性的程序实体。的程序实体。 每个模块完成一个特定的子功能,所有的模块每个模块完成一个特定的子功能,所有的模块按某种方式组合起来成为一个整体,完成整个系统按某种方式组合起来成为一个整体,完成整个系统所要求的功能。所要求的功能。q信息隐蔽信息隐蔽 每个模块实现的细节对于其它模块来说是隐蔽每个模块实现的细节对于其它模块来说是隐蔽的,即模块中所包含的信息(数据结构和过程)不的,即模块中所包含的信息(数据结构和过程)不允许其他不需要这些信息的模块使用。允许其他不需要这些信
19、息的模块使用。q模块独立性模块独立性 每个模块只具体的子功能,和其他模块的接口每个模块只具体的子功能,和其他模块的接口是简单的。是简单的。:和和。 一个设计良好的软件系统应具有一个设计良好的软件系统应具有低耦合低耦合、高内聚高内聚的特征的特征学生成绩管理学生成绩管理增加增加删除删除修改修改查询查询统计统计按学号按学号按姓名按姓名按班级按班级 是软件设计的第是软件设计的第2 2个阶段,主要确定每个模个阶段,主要确定每个模块具体的执行过程。块具体的执行过程。 该阶段的任务是:确定实现该阶段的任务是:确定实现算法算法和和局部局部数据结构数据结构,不同于编码或编程,不同于编码或编程实现实现设计设计常用的表达工具常用的表达工具q 图形工具图形工具 程序流程图、程序流程图、N-S图、图、 PAD 、HIPOq 表格工具表格工具 判定表判定表q 语言工具语言工具 PDL(伪码)(伪码) 把软件设计转换成计算把软件设计转换成计算机可以接受的机可以接受的。 尽可能发现程序中的错误,但不能也尽可能发现程序中的错误,但不能也不可能证明程序没有错误。不可能证明程序没有错误。 是为了发现错误而执行程序的过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论