您好,欢迎访问三七文档
程序设计基础程序设计基础结构化程序设计面向对象程序设计程序设计方法及风格结构化程序设计原则结构化程序的基本结构与特点结构化程序设计方法的应用面向对象方法面向对象方法的基本概念程序设计是指利用计算机解决问题的全过程,它包含多方面的内容,而编写程序只是其中的一部分。分析问题确定处理方案确定操作步骤编写程序上机运行程序整理结果程序设计的一般步骤例如:求圆的面积和周长的程序设计一般步骤:①分析问题求圆的面积和周长需要知道圆的半径r,根据圆的半径求出圆的面积S和周长L并输出结果。②确定处理方案求圆的面积数学公式是:S=лr2求圆的周长公式是:L=2лr③确定操作步骤求圆的面积和周长的算法描述为:确定半径的初值计算面积S计算周长L输出结果S,L④根据操作步骤编写源程序。将上面求圆的面积和周长算法编写源程序如下#definePI3.14159main(){floatr=3,S,L;S=PI*r*r;L=2*PI*r;printf(“S=%f,L=%f\n”,S,L);}⑤运行调试程序。⑥整理输出结果,写出相关文档。程序设计方法与风格程序设计方法是指以什么观点来研究问题并进行求解,以及如何进行系统设计的软件方法学。程序设计方法经过的2个阶段结构化程序设计面向对象程序设计程序设计风格编写程序时所表现出的特点、习惯和逻辑思路。程序设计风格强调简单、清晰和可理解性。当今主导的程序设计风格:清晰第一、效率第二main(){floatr,s;scanf(“%f”,&r);if(r0){//半径必须为正数s=2*3.14159*r;printf(“s=%f”,s);}elseprintf(“请输入正数!”);}main(){floatr,s;scanf(“%f”,&r);if(r0){s=2*3.14159*r;printf(“s=%f”,s);}elseprintf(“请输入正数!”);}结构化程序设计原则基本结构模块化结构化程序设计自顶向下先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。先从总目标开始设计,逐步使问题具体化。逐步求精对复杂问题设计一些子目标作为过渡,逐步细化。模块化将总目标分解为分目标,再进一步分为具体的小目标,每个小目标成为一个模块。限制使用goto语句会导致程序流程的混乱,应限制使用。结构化程序设计原则学生成绩管理增加删除修改查询统计按学号按姓名按班级顺序结构选择结构循环结构结构化程序的基本结构与特点顺序结构main(){floatr,s;scanf(“%f”,&r);s=2*3.14159*r;printf(“s=%f”,s);}AB选择结构main(){floatr,s;scanf(“%f”,&r);if(r0){s=2*3.14159*r;printf(“s=%f”,s);}elseprintf(“请输入正数!”);}AB条件真假循环结构main(){inti,s;s=0;for(i=0;i=100;i++)s=s+i;printf(“s=%d”,s);}A条件真假优点缺点程序结构良好程序清晰易读、使用和维护提高编程的效率,降低开发成本数据与对数据的操作(函数)相分离,造成数据和算法的一致性差程序的可重用性差结构化程序设计原则和方法的应用在程序设计过程中,要采用自顶向下和逐步细化的原则,由粗到细,一步步展开,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。面向对象的程序设计基本概念面向对象方法的特征和用途面向对象的方法客观世界的任何一个事物都可以被看成是一个对象。面向对象的方法的本质就是从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方式来认识、理解和描述客观事物,强调最终建立的系统能够映射问题域。系统中的对象及对象之间的关系能够如实反映问题域中固有的事物及其关系。对象基本概念客观世界的实体通常既具有静态的属性,又具有动态的行为。在计算机系统中,对象是一组属性以及这组属性上的操作的封装体。对象=属性+操作属性:就是对象的特征,是对象外观及行为的特征。是具有共同属性和共同操作方法的对象的集合,是对象的抽象。描述了属于该对象类型的所有对象的性质。类类是对象的抽象(模板),对象则是其对应类的一个实例。就是要求某个对象执行某个操作的规格说明。一个消息由三部分组成:接收消息的对象名称消息名称零个或多个参数消息消息用于对象之间信息交流,对象之间的相互服务是通过消息来连接实现的。发送对象接口接收对象消息操作名、参数特性封装性指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构及实现操作的算法。信息的隐蔽是通过对象的封装性来实现的属性操作1、2、3的实现操作1操作2操作3界面继承性使用已有的类(父类)定义作为基础建立新类(子类)的定义技术。单继承多重继承人职工学生教师在职学生提高了软件的可重用性,继承具有传递性多态性同一消息被不同的对象接受时可以产生完全不同的行为。实现“同一接口,不同实现”增加了系统的灵活性,进一步减少数据冗余,显著提高软件的可重用性和可扩充性。优点与人类思维方法一致稳定性好可重用性好易于开发大型软件产品可维护性好软件工程基础随着计算机硬件技术的进步,要求软件能与之相适应。然后软件技术的进步一直未能满足形式发展提出的要求,致使问题积累起来,形成了日益尖锐的矛盾,这就导致了软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向科学的途径,逐渐形成了软件工程的概念,并开辟了工程学的新兴领域---软件工程学。倡导以工程化的原则和方法组织软件开发工作,是摆脱软件危机的一个主要出路。软件开发工具与软件开发环境软件工程的目标和原则软件工程过程与软件生命周期软件危机与软件工程软件定义与软件特点需求分析可行性分析问题定义软件设计软件编码软件测试软件维护软件工程基本概念软件工程过程软件开发方法开发技术软件危机结构化开发方法面向对象开发方法基本概念软件定义和组成是计算机系统中与硬件相互依赖的一部分,包括程序、数据和相关的文档。程序计算机执行的指令序列。数据是使程序能正常操作信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料软件是程序、数据和文档的集合软件危机与软件工程软件危机软件工程源自软件危机泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括成本、质量、生产率等问题。软件需求的增长得不到满足软件开发成本和进度无法控制软件质量难以保证软件不可维护或维护程度非常低软件成本不断提高软件开发生产效率的提高赶不上硬件的发展和应用需求的增长指导计算机软件开发和维护的工程学科。包括一下三要素:软件工程方法为软件开发提供“如何做”技术。工具指支持软件开发、管理、文档生成的自动半自动软件支撑环境。过程指软件开发各个环节的控制和管理。软件工程的核心思想是将工程化原则运用到软件开发过程中,即将软件产品作为一个工程产品处理。它包括方法、工具和过程三要素。软件工程过程与软件生命周期软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列工程活动。通常包括4种基本过程活动P(Plan)软件规格说明。规定软件的功能以及运行时的限制。D(Do)软件开发。产生满足软件规格说明的软件。C(Check)软件确认。确认软件能够满足用户提出的要求。A(Action)软件演进。为满足用户的变更要求,软件必须在使用的过程中演进。将软件产品从提出、实现、使用、维护、停止使用到退役的过程,称为软件生命周期。软件生命周期问题定义可行性分析需求分析软件设计软件测试软件实现运行和维护软件定义软件开发软件运行维护软件开发工具与软件开发环境软件开发工具协助开发人员进行软件开发活动所使用的软件或环境。它包括需求分析工具、设计工具、编码工具、排错工具和测试工具等。软件开发环境是全面支持软件开发全过程的软件工具的集合。软件工程过程问题定义该阶段是弄清楚用户需要计算机解决什么问题,以及项目所需的资源和经费。主要任务就是调研和分析,写出“系统目标与范围说明书”。确定开发目标和总的要求,给出可行性方案,制定开发计划。可行性分析该阶段的目的是弄清楚:用户要解决的问题是否能够解决和值得解决。需求分析需求分析的任务导出目标系统的逻辑模型,解决“做什么”的问题。需求分析方法结构化分析方法(采用的常用工具)面向对象的分析方法根据用户的需求进行分析并给出详细定义,即确定软件系统的功能。结构化分析方法是在软件需求分析阶段的运用,是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。结构化分析的常用工具数据流图(DFD)是以图形的方式描绘数据在系统中流动和处理的过程,它反映了系统必须完成的逻辑功能,是结构化分析方法中用于表示系统逻辑模型的一种工具。数据字典(DD)是结构化分析方法的核心,其作用是对数据流图中被命名的图形元素进行确切的解释。判定树判定表数据流图是以图形的方式描绘数据在系统中流动和处理的过程,它反映了系统必须完成的逻辑功能,是结构化分析方法中用于表示系统逻辑模型的一种工具。办理取款手续的数据流图加工数据流存储文件源、潭加工:描述输入流到输出流之间的变换数据流:表示数据的流向存储文件:表示暂时存储的数据源、潭:也称外部实体,指出系统所需数据的发源地和系统所产生数据的归宿地。软件设计把已确定的各项需求转换成一个相应的体系结构。进而对每个模块要完成的工作进行具体的描述。编写设计说明书并提交评审。主要解决“怎么做”的问题。总体设计(概要设计)将软件需求转化为数据结构和软件的系统结构。详细设计软件的过程设计,通过对结构表示进行细化,得到软件的详细数据结构和算法。软件设计步骤抽象抽出事物本质的共同特点而不考虑它的细节模块化模块是一个具有明确定义的输入、输出和特性的程序实体。每个模块完成一个特定的子功能,所有的模块按某种方式组合起来成为一个整体,完成整个系统所要求的功能。软件设计的原理信息隐蔽每个模块实现的细节对于其它模块来说是隐蔽的,即模块中所包含的信息(数据结构和过程)不允许其他不需要这些信息的模块使用。模块独立性每个模块只具体的子功能,和其他模块的接口是简单的。衡量指标:耦合性和内聚性。一个设计良好的软件系统应具有低耦合、高内聚的特征学生成绩管理增加删除修改查询统计按学号按姓名按班级是软件设计的第2个阶段,主要确定每个模块具体的执行过程。详细设计该阶段的任务是:确定实现算法和局部数据结构,不同于编码或编程实现详细设计常用的表达工具图形工具程序流程图、N-S图、PAD、HIPO表格工具判定表语言工具PDL(伪码)软件编码把软件设计转换成计算机可以接受的程序代码。软件测试软件测试的目的尽可能发现程序中的错误,但不能也不可能证明程序没有错误。是为了发现错误而执行程序的过程。主要检验软件的各个组成部分,编写测试分析报告。静态测试人工评审软件文档或程序,借以发现其中的错误。动态测试指的是上机运行程序,从多角度观察程序运行时的行为,以发现其中的错误。测试方法:白盒测试、黑盒测试软件测试技术是根据程序的内部逻辑结构来设计的,主要用于软件单元的测试。主要方法有:逻辑覆盖基本路径测试白盒测试法是对软件已经实现的功能是否满足需要进行测试和验证,不关心程序内部的逻辑。主要方法有:等价类划分法边界值分析法错误推测法是对程序功能的测试,主要用于软件的确认测试。黑盒测试法软件测试的实施软件测试过程按4个步骤进行单元测试集成测试确认测试系统测试运行、维护交付使用,并不断进行维护,根据新需求进行扩充和删除。软件开发方法与技术结构化开发方法面向对象开发方法结构化分析结构化设计结构化程序设计软件计划软件测试面向对象分析面向对象设计面向对象编码软件计划软件测试
本文标题:软件开发技术基础
链接地址:https://www.777doc.com/doc-4099754 .html