程序设计和软件工程基础大学计算机基础课程_第1页
程序设计和软件工程基础大学计算机基础课程_第2页
程序设计和软件工程基础大学计算机基础课程_第3页
程序设计和软件工程基础大学计算机基础课程_第4页
程序设计和软件工程基础大学计算机基础课程_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

第六章程序设计和软件工程基础第六章程序设计和软件工程基础程序设计基础计算机程序程序设计语言、语言处理程序及集成开发环境结构化程序设计基础知识、面向对象程序设计基本概念程序设计的基本风格软件工程基础软件的组成软件生命周期与软件工程过程结构化分析方法、结构化设计方法基本知识软件测试基础6.1程序设计基础程序步骤1:打开方便面包装;步骤2:把面饼和调料放入碗内;步骤3:冲入开水;步骤4:盖上盖子;步骤5:等待3分钟;步骤6:吃方便面;步骤7:程序结束。计算机程序在计算机领域,程序是指导计算机为完成某项功能所需要执行的命令序列A=1B=2C=A+BPRINTC程序设计过程提出和分析问题确定数学模型设计算法模块化编程程序整个编译、运行程序设计步骤程序设计过程1.分析问题要解决什么问题?需要输入哪些信息?

期望的输出结果是什么?数据具体的处理过程和要求是什么。从给定的输入到期望输出,必要的处理步骤有哪些?确定数学模型2.设计程序一元二次方程的根计算出实根并显示

Delta=b2-4ac显示无实根Delta>=0?输入a,b,c系数开始结束图6.1.1.1求一元二次方程根的流程图YN程序设计过程3.程序编码以及编辑、编译和连接int

mian(void){floata,bc,x1,x2,deta;

cin>>a>>b>>c;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=”<<x2<<endl;

}elsecout<<”无实数解”;

}程序设计过程4.测试程序在程序的编写中,查找和修改错误的过程为程序测试。5.编写程序文档对于由多人合作开发的软件来说,由于每个人负责的功能模块不同,读起来有困难,需要编写程序文档。程序设计语言低级语言高级语言机器语言汇编语言计算机语言它是由“0”和“1”组成的二进制代码语言机器语言程序可以直接在计算机上运行人们采用符号和数字代替二进制代码指令,可用ADD代表加法、SUB表示减、JMP表示程序跳转等等。接近于人们的自然语言和数学公式编写程序的语言。语言处理程序语言处理程序编译程序解释程序汇编程序汇编程序把用汇编语言写的汇编语言源程序翻译成机器可执行的由机器语言表示的目标程序的翻译程序程序执行结果运行编译程序是将用高级语言所编写的源程序翻译成与之等价的用机器语言表示的目标程序的翻译程序,其翻译过程称为编译程序执行结果运行解释程序接受用某种程序设计语言(如Basic语言)编写的源程序,然后对源程序进行逐句分析,若没有错误,将该语句翻译成一个或多个机器语言指令,然后立即执行这些指令;若解释时发现错误会立即停止,报错并提醒用户更正代码。解释方式不生成目标程序高级语言源程序解释程序机器语言运行程序执行结果集成开发环境

(IDE,IntegratedDevelopmentEnvironment程序从编写到调试执行需要使用不同的工具完成;1.使用编辑器进行程序源代码的开发2.根据编程选用的语言,选择使用语言处理对源代码进行处理3.使用代码调试工具协助查找程序中的错误所谓集成开发环境是用于提供程序开发环境的应用程序,这个程序将编写代码所使用的编辑器、编译器、调试器和以及图形用户界面工具集成在一起。如微软的VisualStudio系列,Borland的C++Builder、Delphi系列等。IDE通常具有代码会自动生成,简化程序的代码编写的工作。程序设计的两种方法结构化程序设计方法始于60年代面向对象的程序设计方法始于80年代结构化程序设计基本原则模块化的程序设计是结构程序设计的精髓在程序设计时应采用自顶向下,逐步细化的实施方法。避免使用goto语句模块化一个大型程序应按功能分割成一些功能模块,并把这些模块按层次关系进行组织。功能分解的目的是将大规模的、复杂的问题分解成若干小规模的问题,采用分而治之的方法,降低程序设计的复杂性。结构化程序设计基本原则模块化的程序设计是结构程序设计的精髓在程序设计时应采用自顶向下,逐步细化的实施方法。避免使用goto语句自顶向下、逐步细化的实施方法。应先考虑整体,再考虑细节;先考虑全局目标,再考虑局部目标。先从上层总目标开始设计,使问题逐步具体化。结构化程序设计基本原则模块化的程序设计是结构程序设计的精髓在程序设计时应采用自顶向下,逐步细化的实施方法。避免使用goto语句避免使用goto语句goto语句是一个无条件的跳转语句,goto语句会使得程序的执行过程变得混乱,严重影响程序的可读性。程序的三种基本结构顺序分支循环顺序结构语句块1语句块2顺序结构分支结构条件成立不成立语句块1语句块2分支结构循环结构语句块1条件成立不成立循环直到型结构成立不成立条件语句块1循环当型结构面向对象程序设计面向对象程序设计的基本思想是使用现实世界的概念抽象地思考问题从而自然地解决问题。现实世界是有各种实体组成比如一个学校,有学生、教师、各种教学辅助设施等等不同的实体组成实体之间通过消息传递(教师学生布置作业即是发送了消息,)进行沟通交流,相互协作完成某项任务。对象(Object)对象是人们要进行研究的任何事物,是现实世界中的一个实体。例如学生就是一个对象。任何对象都拥有一组数据和操作。对象所拥有的数据称为对象的属性。在现实世界中,对象都具有一定的行为,比如,学生要上课、下课、写作业等等。对象所拥有的行为称为对象的所具有的操作。对象实现了数据和操作的封装。类(Class)类是对象的抽象。相同特征的一组对象进行抽象形成了类。比如,可以对不同的学生个体进行抽象,形成学生类。本质上讲,类是一种数据类型,是由程序员根据处理问题的需要自己创建的一种数据类型。任何一个对象都是通过类的实例化之后得到的。数据封装(DataEncapsulation)把数据和对数据的操作封装在一个单独的单元(称为类)的行为称为封装。数据封装是类的最典型特点。在类中,被封装的数据不能被外界访问,只能被封装在同一个类中的函数访问。这些函数提供了对象数据和程序之间的接口。避免数据被程序直接访问的概念被称为信息隐藏。继承(Inheritance)继承是可以让某个类型的对象获得另一个类型的对象的属性的一种技术。继承的概念支持代码的重用性(reusability)可以向一个已经存在的类中添加新的特性多态性(Polymorphism)不同的对象,对同一消息的不同响应。比如说加法操作,如果操作的数据是数,它对两个数求和。如果操作的数据是字符串,则它将连接两个字符串。消息传递(Messagepassing)一个面向对象的程序由许多对象组成,对象之间通过收发信息相互沟通,消息就是请求执行某个过程,消息的接收对象会调用一个函数(过程),以产生预期的结果。程序设计风格源程序的编写风格(1)标识符的命名在符合词法规则的基础上,要做见名知意,以便理解程序功能,从而提高程序的可读性。(2)在程序中利用空格、空行、锯齿形缩进等排版技巧使程序层次清晰。(3)正确的程序注释语句,对程序中的语法成分进行解释。注释语句包括序言性注释和功能性注释。序言性注释对程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等进行说明。

功能性注释一般嵌在源程序体中,用于描述其后的语句或程序的主要功能。程序设计风格数据说明方法(1)数据说明的次序规范化各种不同种类的数据说明的次序,最好固定下来,易于查找数据属性。(2)说明语句中变量安排有序化一个语句中需要声明多个变量,应按字母顺序排列。(3)使用注释来说明复杂数据的结构程序设计风格语句的结构(1)一行内只写一个语句;数据结构要有利于程序的简化,程序要模块化;程序编写要做到清晰第一,效率第二。(2)尽量使用库函数;避免不必要的转移,避免采用复杂的条件语句;不要修补不好的程序,要重新编写。程序设计风格输入/输出对输入数据要检查数据的合法性;交互式输入数据时应有必要的提示信息;应允许缺省值,提高输入数据的效率;若用户输入某些数据后可能产生严重后果,应给用户输出必要的提示并要求用户确认(容错处理);输入格式要简单,使得输入的步骤和操作尽可能简单;当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;输出数据的格式应清晰、美观;输出数据时要加上必要的提示信息。软件工程基础软件的组成软件生命周期与软件工程过程结构化分析方法、结构化设计方法基本知识软件测试基础软件(software)软件程序=数据文档++软件分类系统软件支撑软件(中间件)应用软件计算机软件最靠近硬件其他软件通过系统软件发挥作用操作系统和编译器软件等

支撑软件的开发和维护数据库管理系统、网络软件

特定应用领域的软件,包括办公软件、电子商务软件、通信软件、行业软件,游戏软件等等。

软件危机软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件成本不断提高;软件开发生产效率的提高赶不上硬件的发展和应用需求的增长;软件通常缺少适当的文档资料。软件工程多种定义软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。通过将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护软件,即把工程化应用到软件软件工程的主要内容(1)软件开发技术软件开发方法学软件开发过程软件工具和软件工程环境。

(2)软件工程管理软件管理学软件经济学软件心理学。软件工程三要素方法是为软件开发提供“如何做”的技术。工具是为软件工程方法提供自动或半自动的软件支撑环境。过程是将软件工程中的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。因此,方法、工具、过程又被称为软件工程三要素总体规划可行性分析建立系统逻辑模型建立系统物理模型编写代码进行各种测试软件生命周期问题的定义与规划需求分析设计编码测试维护定义期生产期维护期结构化分析方法需求分析方法设计方法测试方法调试方法需求分析需求获取需求分析编写需求说明书需求评审确定未来系统要实现的功能以及与系统有关的其他外围环境的特征对系统的需求进行综合的分析与综合,给出系统的解决方案

在需求分析说明书中需要对系统的功能、性能、验收标准等各个方面进行描述对需求分析阶段的工作进行审查

需求分析方法结构化的分析方法面向数据流的结构化分析方法(SA,StructureAnalysis),面向数据结构的Jackson(JSD,JacksonSystemDevelopment)方法面向数据结构的结构化系统开发方法(DSSD,DataStructureSystemDevelopment)面向对象的分析方法(OOA,ObjectOrientAnalysis)需求分析方法结构化需求分析方法面向对象需求分析方法结构化需求分析方法数据流图(DFD,DataFlowDiagram)数据字典判定树判定表等为工具数据流图(DFD,DataFlowDiagram是结构化分析方法中使用的工具它以图形的方式描绘数据在系统中流动和处理的过程它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图的基本符号(成分)数据流数据源加工数据存储数据流。由一组成分

温馨提示

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

评论

0/150

提交评论