资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
程序设计方法与风格程序设计方法与风格 经历两个阶段:经历两个阶段: 结构化程序设计结构化程序设计 面向对象的程序设计面向对象的程序设计 良好设计风格:良好设计风格:“清晰第一,效率第二清晰第一,效率第二” 例如:加注释、提示输入、加输入结束标志、标识符命名有实际意义等。例如:加注释、提示输入、加输入结束标志、标识符命名有实际意义等。 原则原则 自顶向下自顶向下 逐步求精逐步求精 模块化模块化 限制使用限制使用 goto 语句语句 基本结构基本结构 顺序结构顺序结构 选择结构选择结构 循环结构循环结构优点优点 程序易于理解、使用、维护程序易于理解、使用、维护 提高编程效率,降低开发成本提高编程效率,降低开发成本 设计原则和方法的应用设计原则和方法的应用 三种结构表示程序的控制逻辑;三种结构表示程序的控制逻辑; 每种结构只有一个入口和一个出口;每种结构只有一个入口和一个出口; 语言中没有的控制结构,应该用前后一致的方法模拟;语言中没有的控制结构,应该用前后一致的方法模拟; 严格控制使用严格控制使用 goto 语句语句 本质:以对象为核心。本质:以对象为核心。 对象是数据和操作的封装体,与客观实体有直接的对应关系,对象之间通对象是数据和操作的封装体,与客观实体有直接的对应关系,对象之间通 过传递消息互相联系。过传递消息互相联系。 面向对象程序设计方法的优点面向对象程序设计方法的优点 (1)与人类的思维方法一致,符合人们对客观世界的认识规律。)与人类的思维方法一致,符合人们对客观世界的认识规律。 (2)稳定性好;)稳定性好; (3)可重用性好;)可重用性好; (4)易于开发大型软件产品)易于开发大型软件产品; 面向对象的基本概念面向对象的基本概念 对象:在现实世界中,每个实体都是对象,如,大学生、汽车、电视机、对象:在现实世界中,每个实体都是对象,如,大学生、汽车、电视机、 空调等都是现实世界中的对象。空调等都是现实世界中的对象。 (1)属性:对象所包含的信息,它在设计对象时确定,一般只能通过执行)属性:对象所包含的信息,它在设计对象时确定,一般只能通过执行 对象的操作来改变。对象的操作来改变。 (2)操作:描述了对象执行的功能。其过程对外是封闭的,即用户只能看)操作:描述了对象执行的功能。其过程对外是封闭的,即用户只能看 到这一操作实施后的结果(封装性)到这一操作实施后的结果(封装性) 。 类:类是一组具有相同属性和相同操作的对象的集合。是对象的抽象,描述了属于该对象类:类是一组具有相同属性和相同操作的对象的集合。是对象的抽象,描述了属于该对象 类型的所有对象的性质,而一个对象则是其对应类的一个实例。类型的所有对象的性质,而一个对象则是其对应类的一个实例。注意:注意:“实例实例”这个术语指一个具体的对象;这个术语指一个具体的对象;“对象对象”术语既可以指一个具体的对象,也可术语既可以指一个具体的对象,也可 以泛指一般对象。以泛指一般对象。消息:一个实例与另一个实例之间传递的信息,包括消息:一个实例与另一个实例之间传递的信息,包括 3 部分:接收消息的对象名称;消息部分:接收消息的对象名称;消息 名;零个或多个参数。名;零个或多个参数。 例:例:MyCircle.Show(GREEN); 面向对象的基本概念面向对象的基本概念继承:使用已有的类定义作为基础建立新类的定义技术。已有的类可当做基类引用,继承:使用已有的类定义作为基础建立新类的定义技术。已有的类可当做基类引用, 则新类相应地可当做派生类来引用。则新类相应地可当做派生类来引用。 (基类:用来生成新类的类。(基类:用来生成新类的类。 派生类:由已存在的类派生出来的新类,也叫子类。派生类:由已存在的类派生出来的新类,也叫子类。 )继承)继承 具有传递性。具有传递性。 多态性:对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导多态性:对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导 致完全不同的行为,该现象称为多态性。致完全不同的行为,该现象称为多态性。 图图 2-1 一般与特殊的关系一般与特殊的关系图图 2-2 多重继承多重继承 3.1.1 软件定义与软件特点软件定义与软件特点 1.软件定义:软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相软件定义:软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相 关文档组成的完整集合。关文档组成的完整集合。软件软件=程序程序+数据数据+文档文档程序:程序是按事先设计好的功能和性能要求执行的指令序列。程序:程序是按事先设计好的功能和性能要求执行的指令序列。数据:数据是指程序能正常处理信息的数据和数据结构。数据:数据是指程序能正常处理信息的数据和数据结构。文档:文档是与程序运行和维护有关的图文资料。文档:文档是与程序运行和维护有关的图文资料。 2.软件的特点:软件的特点: (1) 软件具有抽象特征。软件具有抽象特征。 (2) 软件具有无明显制造过程特征。软件具有无明显制造过程特征。 (3) 软件无设备的特征。软件无设备的特征。 (4) 手工制作特征。手工制作特征。 (5) 成本昂贵特征。成本昂贵特征。 1. 软件危机:泛指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机:泛指在软件的开发和维护过程中所遇到的一系列严重问题。 总之,可以将软件危机归结为成本、质量、生产率等问题。总之,可以将软件危机归结为成本、质量、生产率等问题。 软件工程:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准软件工程:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准 和工序。和工序。 主要思想:强调在软件开发过程中需要应用工程化原则。主要思想:强调在软件开发过程中需要应用工程化原则。 软件工程三要素:方法、工具、过程。软件工程三要素:方法、工具、过程。 方法:完成软件工程项目的技术手段;方法:完成软件工程项目的技术手段; 工具:支持软件的开发、管理、文档生成;工具:支持软件的开发、管理、文档生成; 过程:支持软件开发的各个环节的控制、管理。过程:支持软件开发的各个环节的控制、管理。 软件工程过程:把输入转化为输出的一组彼此相关的资源和活动。软件工程过程:把输入转化为输出的一组彼此相关的资源和活动。 (通常把用户的(通常把用户的 要求转变为软件产品的过程也叫做软件开发过程要求转变为软件产品的过程也叫做软件开发过程).交通工具 飞行器 汽车 船 轿车 货车 水上交通工具 陆上交通工具 水陆两用交通工具 软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程称为软软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程称为软 件生命周期。件生命周期。 软件生命周期的三个阶段:软件生命周期的三个阶段: 定义阶段(可行性研究、需求分析)定义阶段(可行性研究、需求分析) 开发阶段(概要设计、详细设计、编码、测试)开发阶段(概要设计、详细设计、编码、测试) 运行维护阶段(使用、维护、退役)运行维护阶段(使用、维护、退役) 软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理 解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足 用户需求的产品。用户需求的产品。 软件工程的原则:软件工程的原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证 软件开发工具:为软件工程方法提供了自动的或半自动的软件支撑环境。软件开发工具:为软件工程方法提供了自动的或半自动的软件支撑环境。 软件开发环境:是全面支持软件开发全过程的软件工具集合。这些软件工具按照一软件开发环境:是全面支持软件开发全过程的软件工具集合。这些软件工具按照一 定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。 计算机辅助软件工程(计算机辅助软件工程(CASE Computer Aided Software Engineering)是当前软件)是当前软件 开发环境中富有特色的研究工作和发展方向。开发环境中富有特色的研究工作和发展方向。 软件需求:指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。软件需求:指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 需求分析任务:发现需求、求精、建模和定义需求的过程。需求分析任务:发现需求、求精、建模和定义需求的过程。 需求分析阶段的工作:需求分析阶段的工作: 需求获取需求获取 需求分析需求分析 编写需求规格说明书编写需求规格说明书 需求评审需求评审 需求分析方法分为:结构化分析方法与面向对象的分析方法:需求分析方法分为:结构化分析方法与面向对象的分析方法: 结构化分析方法结构化分析方法 面向数据流的结构化分析方法(面向数据流的结构化分析方法(SA) 面向数据结构的面向数据结构的 Jackson 方法(方法(JSD) 面向数据结构的结构化数据系统开发方法(面向数据结构的结构化数据系统开发方法(DSSD) 面向对象的分析方法(面向对象的分析方法(OOA) ,从需求分析建立的模型的特性来分:,从需求分析建立的模型的特性来分: 静态分析方法静态分析方法 动态分析方法动态分析方法 含义:是结构化程序设计理论在软件需求分析阶段的运用。含义:是结构化程序设计理论在软件需求分析阶段的运用。 目的:帮助弄清用户对软件的需求。目的:帮助弄清用户对软件的需求。 实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程, ,以数据流图,以数据流图 和数据字典为主要工具,建立系统的逻辑模型。和数据字典为主要工具,建立系统的逻辑模型。 数据流图数据流图 (Data Flow Diagram)DFD数据流图是描述数据处理过程的工具,从数据传递和加工的角度,来刻画数据流从输数据流图是描述数据处理过程的工具,从数据传递和加工的角度,来刻画数据流从输 入到输出的移动变换过程。入到输出的移动变换过程。加工加工 数据流数据流 存储文件存储文件 源(潭)源(潭) 数据字典(数据字典(Data Dictionary,DD)是结构化分析方)是结构化分析方法的另一种有力工具,在数据字典中建立的一组严密一法的另一种有力工具,在数据字典中建立的一组严密一致的定义有助于消除分析员和用户之间的沟通障碍,因致的定义有助于消除分析员和用户之间的沟通障碍,因此将消除许多可能的误解。此将消除许多可能的误解。判定树判定树 判定表判定表 含义(含义(SRS):是需求分析阶段的最后成果,是软件开发中的重要文档之一。):是需求分析阶段的最后成果,是软件开发中的重要文档之一。 作用:作用: 便于用户、开发人员进行理解和交流;便于用户、开发人员进行理解和交流; 反映出用户问题的结构,可以作为软件开发工作的基础和依据;反映出用户问题的结构,可以作为软件开发工作的基础和依据; 作为确认测试和验收的依据;作为确认测试和验收的依据; 特点:正确性、完整性、确定性、一致性、可理解性、可验证性、课修改、可追踪特点:正确性、完整性、确定性、一致性、可理解性、可验证性、课修改、可追踪 性。性。 3.3.1 软件设计的基本概念软件设计的基本概念 软件设计的目标:用比较抽象概括的方式确定目标系统如
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号