程序设计及软件工程基础



《程序设计及软件工程基础》由会员分享,可在线阅读,更多相关《程序设计及软件工程基础(41页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第二章,程序设计及软件工程基础,二级ACCESS软件设计及软件工程基础,本章主要内容,程序设计方法和风格,结构化程序设计,面向对象程序设计,软件工程基本概念,结构化分析方法,软件测试,程序的调试,过关练习,二级ACCESS软件设计及软件工程基础,什么是程序,指令的集合,。(解释指令),通过硬件控制系统自动完成某一功能。,通过一系列代码实现。,程序设计语言,计算机本身仅能识别二进制代码“,0”,、“,1”,。,编译程序和解释程序,编程最直接、最低级的就是,机器语言,。,汇编语言,。,高级语言,。如,C
2、,、,PASCAL,、,FORTRAN,、,BASIC,、,JAVA,等,2.1 程序设计方法和风格,二级ACCESS软件设计及软件工程基础,程序设计风格,基本概念:,编写程序时所表现出来的特点、习惯和逻辑思路。一般从以下四部分加以规范:,源程序中的内部文档:,选择标示符的名字、注释(序言性和功能性注释)、程序的视觉组织。,数据说明:,显式地说明一切变量、数据说明的次序应该规范化、便于查找变量(按顺序排列)、对复杂数据结构应注释说明,语句的结构:,每条语句简单明了、尽量不用或少用,GOTO,语句、尽量只采用,3,种基本控制结构编程,输入和输出:,对所有输入数据进行校验和合理性检查、输入输出格式
3、保持一致、设计良好的输出报表,2.1 程序设计方法和风格,二级ACCESS软件设计及软件工程基础,程序设计三种方法,结构化设计法,模块内部程序各部分要按照自顶向下的结构划分,各程序部分应按功能组合,快速原型法(软件工程法),利用现有的工具和原型方法快速地开发所要的程序,面向对象程序设计法,以对象为核心,与人类习惯的思维方法一致,2.1 程序设计方法和风格,二级ACCESS软件设计及软件工程基础,基本思想,对大型的程序设计,使用一些基本的结构来设计程序,无论多复杂的程序,都可以使用这些基本结构按一定的顺序组合起来。这些基本结构的特点都是,只有一个入口、一个出口,。由这些基本结构组成的程序就避免了
4、任意转移、阅读起来需要来回寻找的问题。,设计原则,自顶向下,逐步求精,模块化,限制使用,goto,语句,2.2 结构化程序设计,二级ACCESS软件设计及软件工程基础,基本结构:顺序、选择、循环,2.2 结构化程序设计,二级ACCESS软件设计及软件工程基础,2.3 面向对象程序设计,基本思想,客观世界中任何一个事物都可以被看成是一个对象,,面向对象方法的本质就是主张从客观世界固有的事物出发来构造系统,,系统中的对象及对象之间的关系能够如实地反映问题域中固有的事物及其关系。,结构化与面向对象方法比较,结构化的分解突出过程,即,如何做,(How to do)?,它强调代码的功能是如何实现的;,面
5、向对象的分解突出现实世界和抽象的对象,即,做什么,(What to do)?,二级ACCESS软件设计及软件工程基础,主要优点,与人类习惯的思维方法一致,稳定性好,可重用性好,易于开发大型软件产品,可维护性好,2.3 面向对象程序设计,面向对象程序设计主要考虑的是提高软件的可重用性!,二级ACCESS软件设计及软件工程基础,面向对象的基本概念,对象,(Object),对象是基本的运行时认得实体,它既包括数据(,属性,),也包括作用于数据的操作(,行为,)。,一个对象把属性和行为封装为一个整体,一个对象通常可由对象名、属性和操作,3,部分组成,面向对象,(Object Oriented,OO),
6、从该问题所涉及的对象入手来研究问题。,消息,(Message),对象之间进行通信的一种数据构造,消息包括:接受消息对象名、消息标识符、零个或多个参数。,2.3 面向对象程序设计,二级ACCESS软件设计及软件工程基础,面向对象的基本概念,类,(Class),一个类定义了一组大体上相似的对象。,一个类所包含的,方法和数据,描述一组对象的共同行为和属性。,类是在对象之上的抽象,对象是类的具体化,是类的实例,封装,(Encapsulation),将数据和操作数据的函数衔接在一起,构成一个具有类类型的对象的描述。,对象的内部实现受保护,外界不能访问,封装简化了程序员对对象的使用,2.3 面向对象程序设
7、计,二级ACCESS软件设计及软件工程基础,面向对象的基本概念,继承,(Inheritance),继承是父类和子类之间共享数据的方法的机制,一个子类可以继承它的父类(或祖先类)中的属性和操作,子类中可以定义自己的属性和操作,单重继承、多重继承,多态性,(Polymorphism),不同的对象收到同一消息可以产生完全不同的结构,这一现象叫做多态性,多态的实现受到继承的支持,2.3 面向对象程序设计,二级ACCESS软件设计及软件工程基础,软件的定义,软件,(software),是计算机系统中与硬件,(hardware),相互依存的另一部分。,软件包括三个部分:程序,(program),、相关数据
8、,(data),、说明文档,(document),。,软件的特点,软件是一种逻辑实体,不是物理实体,具有抽象性。,软件没有明显的制造过程。,软件在使用过程中,没有磨损、老化问题,软件依赖与硬件和环境,导致了移植问题,软件是复杂的,而且以后会更复杂,软件的成本相当昂贵,软件工作牵涉到很多社会因素,2.4 软件工程基本概念,二级ACCESS软件设计及软件工程基础,软件危机,早期的软件主要指程序,采用个体工作方式,缺少相关文档,质量低,维护困难,这些问题称为“软件危机”,,软件工程概念的出现源自于软件危机,。,软件工程,软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件
9、问题的工程。,其目的是提高软件生产率、提高软件质量、降低软件成本。,软件工程基本目标,在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。,2.4 软件工程基本概念,二级ACCESS软件设计及软件工程基础,软件工程原则:,抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。,1),抽象:,抽象是事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向下,逐层细化来控制软件开发过程的复杂性。,2,)信息隐蔽:,采用封装技术,将程序模块的实现细节隐蔽起来,使模块接口尽量简单。,3,)模块
10、化:,模块是程序中相对独立的成分,一个独立的编程单位。模块的大小要适中,过大模块内部复杂性增加,太小整个系统过于复杂。,4,)局部化:,保证模块间具有松耦合性,模块内部有高内聚性。,5,)确定性:,软件中所有概念的表达应是确定、无歧义且规范的。,6,)一致性:,内外部接口保持一致,系统规格说明与行为保持一致。,7,)完备性:,软件系统不丢失任何重要成分,完全实现系统所需功能。,8,)可验证性:,遵循容易检查、测评、评审原则,确保系统正确性,2.4 软件工程基本概念,二级ACCESS软件设计及软件工程基础,软件工程三要素,方法:,完成软件工程项目的技术手段,工具:,支持软件的开发、管理、文档生成
11、,过程:,支持软件开发的各个环节的控制、管理,软件工具和软件开发环境,软件工具,(CASE),:,用来辅助软件开、运行、维护、管理、支持等过程中的活动的软件,软件开发环境:,支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成,2.4 软件工程基本概念,二级ACCESS软件设计及软件工程基础,软件生命周期,软件产品,从提出、实现、使用维护到停止使用退役的过程,称为软件生命周期。分为软件定义、软件开发及软件运行维护,3,个阶段。,1,)软件定义阶段:,包括制定计划和需求分析。,制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划。,需求分析:对待开发软件提出的需求进行分析并给出详
12、细的定义。,2,)软件开发阶段:,软件设计:分为概要设计和详细设计两个部分。软件实现:把软件设计转换成计算机可以接受的程序代码。,软件测试:在设计测试用例的基础上检验软件的各个组成部分。,3,)软件运行维护阶段(生命周期中花费最多的阶段):,软件投入运行,并在使用中不断地维护,进行必要的扩充和删改。,2.4 软件工程基本概念,二级ACCESS软件设计及软件工程基础,需求分析,用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。,需求分析的任务是发现需求、求精、建模和定义需求的过程。,需求分析将创建所需的,数据模型,、,功能模型,和,控制模型,。,需求分析的四步骤,需求获取、需求分析、编
13、写需求规格说明书和需求评审,需求分析的方法,结构化分析方法、面向对象分析方法,2.5 结构化分析方法,二级ACCESS软件设计及软件工程基础,结构化分析方法,结构化程序设计理论在软件需求分析阶段的运用,其,目的是帮助弄清用户对软件的需求。,常用工具,数据流图、数据字典、判定树、判定表,开发策略,自顶向下,逐层分解,2.5 结构化分析方法,二级ACCESS软件设计及软件工程基础,数据流图,(DFD),:,以图形的方式描绘数据在系统中流动和处理的过程,,它反映了系统必须完成的逻辑功能,是结构化分析方法中用于表示系统逻辑模型的一种工具。,2.5 结构化分析方法,加工,存储文件,源、,潭,数据流,加工
14、(转换):,输入数据经加工变换产生输出。,数据流:,沿箭头方向传送数据的通道,旁边标注数据流名。,存储文件(数据源):,表示处理过程中存放各种数据的文件。,源、潭:,表示系统和环境的接口,属系统之外的实体。,二级ACCESS软件设计及软件工程基础,画数据流图的基本步骤,自外向内,自顶向下,逐层细化,完善求精,2.5 结构化分析方法,数据流图的示例,二级ACCESS软件设计及软件工程基础,数据字典,(DD),:,对所有与系统相关的数据元素的一个有组织的列表,,其,作用是对数据流图中出现的被命名的图形元素的确切解释,。,数据字典常包括,5,个部分:,数据项、数据结构、数据流、数据存储、数据处理。,
15、数据字典是结构化分析方法的核心,2.5 结构化分析方法,软件需求规格说明书(,SRS,),:,需求分析阶段的最后成果,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。,二级ACCESS软件设计及软件工程基础,需求分析主要解决,“做什么”,的问题,而,软件设计,主要解决,“怎么做”,的问题。,从技术观点来看,,软件设计包括软件,结构设计,、,数据设计,、,接口设计,、,过程设计,。,结构设计:,定义软件系统各主要部件之间的关系。,数据设计:,将分析时创建的模型转化为数据结构的定义。,接口设计:,描述软件内部、软件和协作系统之间以及
16、软件与人之间如何通信。,过程设计:,把系统结构部件转换成软件的过程性描述,2.6 结构化设计方法,软件设计的基础,二级ACCESS软件设计及软件工程基础,从工程角度来看,,软件设计分两步完成,即,概要设计,和,详细设计,。,概要设计:又称结构设计,,将软件需求转化为软件体系结构;确定系统级接口、全局数据结构或数据库模式;,编写概要设计文档、概要设计文档评审。,详细设计:,确定每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。,2.6 结构化设计方法,软件设计的基础,二级ACCESS软件设计及软件工程基础,软件设计基本原理:,抽象,、,模块化,、,信息隐蔽,和,模块独立性,。,抽象:,抽象是一种思维工具,就是把事物本质的共同特性提取出来而不考虑其他细节。,模块化:,解决一个复杂问题时自顶向下逐步把软件系统划分成较小的、相对独立但又不相互关联的模块的过程。,信息隐蔽:,模块的实施细节对于其他模块来说是隐蔽的。,模块独立性:,软件系统中每个模块只涉及软件要求的具体的子功能,和软件系统中其他模块的接口是简单的。,模块独立性指标:,耦合性,和,内聚性,模块划分原则是:,高内聚
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题党课讲稿:以高质量党建保障国有企业高质量发展
- 廉政党课讲稿材料:坚决打好反腐败斗争攻坚战持久战总体战涵养风清气正的政治生态
- 在新录用选调生公务员座谈会上和基层单位调研座谈会上的发言材料
- 总工会关于2025年维护劳动领域政治安全的工作汇报材料
- 基层党建工作交流研讨会上的讲话发言材料
- 粮食和物资储备学习教育工作部署会上的讲话发言材料
- 市工业园区、市直机关单位、市纪委监委2025年工作计划
- 检察院政治部关于2025年工作计划
- 办公室主任2025年现实表现材料
- 2025年~村农村保洁员规范管理工作方案
- 在深入贯彻中央8项规定精神学习教育工作部署会议上的讲话发言材料4篇
- 开展深入贯彻规定精神学习教育动员部署会上的讲话发言材料3篇
- 在司法党组中心学习组学习会上的发言材料
- 国企党委关于推动基层党建与生产经营深度融合工作情况的报告材料
- 副书记在2025年工作务虚会上的发言材料2篇