370 likes | 570 Vues
CAD/CAM 原理与应用. 第 3 章 CAD/CAM 软件 开发基础. 3.1 软件开发与软件工程. 1. 软件开发的演化过程. 计算机软件从最初的只能解决单一的、相对简单的科学计算问题到现代的包含数百万行代码的、能处理各种复杂需要的大型软件产品,其开发方式发生了根本的变化,经历了三个时代。 (1) 个 人编程时代 (1946 年 ~1950 年代末 ) 这个时期是计算机系统发展的早期,人们的精力主要集中在计算机硬件的研究上,还无暇顾及软件研究。
E N D
CAD/CAM原理与应用 第3章 CAD/CAM软件 开发基础
3.1 软件开发与软件工程 1. 软件开发的演化过程 计算机软件从最初的只能解决单一的、相对简单的科学计算问题到现代的包含数百万行代码的、能处理各种复杂需要的大型软件产品,其开发方式发生了根本的变化,经历了三个时代。 (1)个人编程时代(1946年~1950年代末) 这个时期是计算机系统发展的早期,人们的精力主要集中在计算机硬件的研究上,还无暇顾及软件研究。 软件开发是科学家们根据各自的应用需要写出的能够解决预定问题的运行程序。编程者即是使用者,程序生产的效率极低,可靠性难以保证,仅限于处理比较简单的数值计算问题。
软件开发的演化过程 (2) 软件作坊时代(上世纪60年代初~60年代未) 随着计算机应用的普及与深化,需要的软件规模增大、功能增强、数目增多,以致于个人往往无力开发。许多不同的部门常常需要相同或相似的软件,各自开发会造成人力的浪费。 软件开发发展成为一种新型的社会职业。许多用户不再自己开发软件,而是购买或定做软件。 *特点: 软件作坊的开发方法是个体的或小组的思维行为,使软件任务延误、质量不可靠、甚至无法维护,极大地制约了计算机功能的发挥和实际应用。 由于软件发展远远落后于硬件的发展,产生了“软件危机”,北大西洋公约组织在1968年召开讨论软件可靠性问题,并正式提出了“软件工程”的概念。
软件开发的演化过程 (3)软件工程时代(上世纪70年代以后) 为了对付日益严重的软件危机,计算机科学家和软件工程 师认真研究了软件工程学,先后提出了一系列先进、有效的软 件开发与维护的概念、方法、技术和工具,使软件生产的大多 数阶段有了可以实用的方法和工具。 软件工程提出了一条改变软件生产落后局面的可行途径。 在该阶段,世界范围内出现了许多组织严密、管理科学、 手段先进、工具齐全的软件开发公司,为计算机软件市场提 供了大量成功的软件产品。80年代,明确提出了“软件工程支 撑环境”的思想,使程序设计可以直接从支撑环境中调用所 需的各个“组件”。
2. 软件工程 ★ 软件的特点 软件是计算机系统中的逻辑部件而不是物理部件,它具有 不同于硬件的显著特点: (1)软件没有明显的制造阶段,它的形成集中在计划和开发上,管理和控制软件的开发过程和质量则是一个难题。 (2)软件不会因为使用时间过长而用旧或用坏,软件的维护过程是软件的不断改进和提高的过程。 ★ 软件工程的概念 借鉴从事工程项目所积累的原理、概念、技术和方法来开发 和维护软件,把正确的管理和科学的技术结合起来,这就是软件 工程。它是指导计算机软件开发和维护的工程学科。软件工程强 调使用生存周期方法学。
软件工程 ★ 软件的生存周期 软件产品从形成概念开始,经过开发、使用和不断增补修正,直到最后被淘汰的整个过程。 按照软件工程的思想,这个过程又可划分成若干个互相区别而又有联系的阶段。每个阶段的工作均以前一阶段的结果为依据,并作为下一阶段工作的前提;每个阶段完成确定的任务,提交相应的文档;每个阶段结束时都进行严格的技术审查和管理复审。 国家颁布的计算机软件开发规范(GB8566-88)将软件的生存周期划分为六个阶段。
软件生存周期的六个阶段 (1) 可行性研究与计划阶段 确定软件开发目标和总体要求,进行可行性分析,制订开发计划。 ①明确“要做什么”,明确软件的功能和目标以及大致规模; ②研究“是否能做”,探索要开发软件的难度、深度和广度,估算成本和效益,分析开展该项研究的可行性,包括技术、设备、人员以及市场等。 (2) 需求分析阶段 进行系统分析,确定软件功能需求和设计约束。 弄清“必须做什么”。 软件开发人员和用户密切配合,充分交流信息,了解用户具体要求,得出经用户确认的系统逻辑模型,避免盲目设计。
软件生存周期的六个阶段 (3) 设计阶段 确定设计方案,包括软件结构、模块划分、功能分配及处理流程。将设计阶段分解成概要设计和详细设计两个步骤。 概要设计的任务:解决“如何做” 考虑多种可能的解决方案并依据某种令人信服的标准或原则推荐及确定设计方案;然后进行模块划分,将软件系统按功能划分成许多规模适中的程序集,再将其按合理的层次结构组织起来。 详细设计的任务:解决“如何具体做” 把概要设计的抽象概括解决方案细化和具体化。详细设计阶段并不编写程序,而是设计出程序的详细规格说明及处理流程。
软件生存周期的六个阶段 (4) 实现阶段 完成源程序的编码、编译及程序单元测试。 任务:编制出正确的、可读性好的程序。 开发人员选取适当的程序设计语言,把详细设计的结果翻译成可处理执行的程序,并认真调试、检测每一个程序段。 (5) 测试阶段 实现系统总装测试和确认测试;检查审阅文档,成果评价。 任务:通过各种类型的测试发现问题、纠正错误,使软件达到预定的要求。 总装测试:根据设计的软件结构,把经过单元测试检验通过的 程序段装配起来,在装配过程中进行必要的测试。 确认测试:按需求分析阶段确定的功能要求,由用户或用户委托第三方对软件系统进行验收,撰写测试报告,对软件产品作出成果评价。
软件生存周期的六个阶段 (6) 运行与维护阶段 软件在运行使用中不断地被维护,根据新提出的需要和运行中出现的问题进行必要的扩充和修改。 通常有四类维护活动: ①改正性维护 诊断和改正运行中发现的软件错误。 ②适应性维护 修改软件以适应环境的变化。 ③完善性维护 根据用户的要求改进或扩充软件使它更完善。 ④预防性维护 修改软件为将来的维护活动做预备。 每一项维护活动结束,软件都有不同程度的改进,对于商品化软件来说都会推出新的版本。
软件生存周期的六个阶段 上述软件开发的各个阶段任务相对独立和简单,便于不同人员分工协作;每个阶段都提供阶段产品,并提交文档资料;每个阶段成果都要经过严格的管理确认和技术复审,以便及时发现早期的错误。 上述各阶段的任务并非均衡 相等,统计结果表明,其中维护 阶段所占的比例最大。 提高软件的可维护性,减少 软件维护的代价是软件工程学的 一个重要目标。 图3-1 软件开发各阶段成本比例
3. 软件工程规范 ★软件工程规范国家标准 (1)《计算机软件开发规范》(GB8566-88) 详细规定了软件开发过程的各个阶段及每一阶段的任务、实施 步骤、实施要求、完成标志及交付文档等。 (2)《计算机软件产品开发文件编制指南》(GB8567-88) 详细规定了软件开发过程中应该产生的文档种类、数目和文档 的编制形式和编制内容。 (3)《计算机软件需求说明编制指南》(GB9385-88) 详细规定软件需求说明的内容和质量,编写所需的背景信息和 表达方法,列出了编制大纲。 (4)《计算机软件测试文件编制规范》(GB9386-88) 详细规定一组测试文件的种类、数目、书写格式、内容以及各 自的作用。
软件工程规范 (5)《计算机软件质量保证计划规范》(GB/T 12504-90) 详细规定在制定软件质量保证计划时应该遵循的、在计划、评审、控制和验收几个方面活动的、统一的基本要求,并列出了编制大纲。 (6)《计算机软件配置管理计划规范》(GB/T 12505-90) 详细规定软件配置管理计划的目次、章节内容等统一要求。 (7)《软件工程术语》(GB/T 11457) 详细列举了软件工程中的常用术语定义、说明、英文译名等信息。
软件工程规范 ★软件文档 文档是软件的一个重要组成部分,是软件开发阶段之间、程序员之间通讯的工具。是备忘录,又是里程碑。 作为开发人员在一定阶段内的工作成果,文档的作用: ①向管理人员报告软件的进展情况; ②向技术人员提供开发技术信息; ③向用户说明某软件的功能和性能,把开发过程中一些“不可见的”事物转换成“可见的”文字资料。 《计算机软件产品开发文件编制指南》规定,整个软件生存周期共应提交十四种标准文档。包括可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗、用户手册、操作手册、测试分析报告、开发进度月报、项目开发总结。 软件开发的不同阶段需提交不同的文档,不同规模的软件,提交的文档种类也所不同。
4. 软件开发方法 软件作为一种产品应当满足以下基本要求: (1)正确性 满足用户提出的应用需求,实现规划的全部功能,性能优越,结果正确。 (2)可靠性 出错概率小于预定指标,运行正常,容错性好。 (3)完整性 提供完整的有效运行程序和文档资料以及必要的培训服务。 (4)实用性 具有良好的人机界面,操作简便,有适用范围,能解决实际问题。 (5)可维护性 便于纠正软件错误,扩充系统功能,实现各类维护活动。
软件开发方法 软件开发方法随着软件工程学的不断深入研究和应用也在推 陈出新,目前主要有三种类型: ■瀑布型 ■快速原型及螺旋型 ■平行进程型
软件开发方法 (1) 瀑布型 瀑布型是一种按软件生存阶 段而顺序工作的、单向、单链 的开发方法。 人们希望只要把“上游”的分 析、设计做好、做完整,则“下 游”的各项工作就会顺理成章地 开展下去。 实际上,随着软件开发、 应用和技术进步,用户会不断 地产生新的要求和建议,因 此,开发过程中的反复改进不 可避免。 图3-2 瀑布型开发方法
软件开发方法 (2) 快速原型及螺旋型 尽快向用户提供原型系 统,让用户试用,得到反馈 信息,再按实用性、经济性 和可靠性要求进一步修改设 计,解决原型系统暴露出来 的问题,从而开发出产品。 在快速原型的基础上, 又提出了螺旋型开发方法, 它是一种有反馈、有交 叉、螺旋式攀援发展的开发 方法。
软件开发方法 (3) 平行进程型 该方法认为软件开发是三个进程组相互平行、相辅相成、 齐头并进的团队行为。 包括3个进程组:项目管理进程组、开发进程组和集成进程 组。开发进程组又细分为 开发前进程组、开发进 程组和开发后进程组。
3.2 数据结构 数据实际上是对客观对象、现实世界的性质和关系的一种描述。一个机械产品的数据,包括性能参数、结构尺寸、工艺过程、图样信息等。它们代表着该产品的性质及它与环境之间的关系。在CAD/CAM中,一个孤立出来的具体数据往往没有实际意义,而各种相关数据的集合就能描绘任一复杂事物,数据之间的关系有丰富的涵义。因此,对于数据的研究与管理不单纯限于数据本身,更重要的在于数据之间的关系,也就是数据结构问题。
1. 基本概念与术语 从事物的物理状态到表示信息的数据,实际上经历了三个不同 的领域: 现实世界——存在于人们头脑之外的客观世界。 信息世界——现实世界在人们头脑中的反映,是人们头脑中的观念世界。 数据世界——观念世界中信息的数据化,它是计算机处理的对象。 在数据处理中,首先应将现实世界转换为信息世界,然后再将 信息世界转换为数据世界。 其中包含几个层次的概念: (1)实体 客观存在并可相互区别的事物。 (2)属性 实体的特性。
基本概念与术语 (3)属性值 每个属性所能测量或记录的值。若干属性的属性值组成的集合即可表征一个实体。 (4)域 属件值的变化范围。 (5)数据 描述实体的数值、字符等各种物理符号。 数据按其组成内容又可分为若干个层次级: 1) 字符 是数据的最小单位。 2) 数据项 是数据中最基本的、不可分的并有命名的数据单位。 3) 组合项 由若干个数据项组成。 4) 记录 相关组合项或数据项的集合构成一个记录,是描述某个实体属性值的集合。 5) 文件 相同性质的记录的集合就是文件。 6) 数据库 非单纯性、有结构文件的集合。
基本概念与术语 表3-3 轻(2)系列滚动轴承性能表(部分)
2. 数据结构 2. 数据结构 数据结构指的是数据之间的结构关系。 数据元素不是孤立的,而是彼此相互关联的。数据结构理论研究数据元素之间的抽象化的关系,并不涉及数据元素的具体内容。 数据结构包括数据的逻辑结构和数据的物理结构。 (1) 数据的逻辑结构 描述数据之间的逻辑关系,从客观的角度组织和表达数据。 数据的逻辑结构又可划分为线性结构和非线性结构。
数据结构 1) 线性结构 数据可以用数表的形式表示。数据间的关系很简单,只是顺序排列的位置关系,而且这种位置关系是线性的,因而又称这类数据结构为“线性表结构”。 2) 非线性结构 这种结构的数据间逻辑关系比较复杂,不能用简单的线性表形式来表达。 图3-1某零件加工工艺方案
数据结构 (2) 数据的物理结构 数据在计算机内部的存储方式,它从物理存储的角度来描述数据以及数据间的关系。 常用的物理结构有顺序存储结构和链接存储结构。 1) 顺序存储结构 即用一组连续的存储单元依次存放各数据元素。 特点:占用内存单元少,简单易行,结构紧凑。但数据结构缺乏柔性,不适合需要频繁修改、补充、删除数据的场合。 2) 链接存储结构 即把数据的地址分散存放在其它有关的数据中,并按照存取路径进行链接。 该存储结构可独立于逻辑结构,它使存储的物理顺序不必与逻辑顺序一致。
3. 数据文件 数据文件是数据管理的一种形式,它能独立于应用程序单独存储。在CAD/CAM系统中,文件常作为管理数据、交换数据的方法而被广泛采用。 具体地说,数据文件是记录的集合。 能够唯一地标识记录的数据项的值称为关键字。 1. 常用的文件组织方法 顺序文件、索引文件、直接存取文件、索引链接文件、倒排文件、B树和变长记录文件等。 (1) 顺序文件 物理顺序与逻辑顺序一致的文件。它的有效存储区域是连续的,结构紧凑、简单,但增删、检索不方便。
数据文件 (2) 索引文件 带有一个包括关键字和存放地址索引表的文件。当查找记录时,先按该记录的键值到索引表中查得相应地址,系统再按该地址查到记录,查找效率高,使用比较广泛。 (3)直接存取文件 又叫随机文件。它采用一种算法将记录的关键字转换为一个近乎随机的数,根据这个数确定记录在存贮器上的位置,以便存取。该文件可直接存取记录,检索方便,但占用空间相对较大。 2. 文件的操作 文件的操作主要表现在两个方面,一是查找,二是排序。 1)查找 即寻找关键字为某值的记录。 常用的查找方法:顺序查找法、折半查找法、分块查找法。 2)排序 对文件中记录的关键字按递增或递减的顺序重新排列。 常用的排序方法:选择排序、冒泡排序、插入排序。
3.3 数据资料的程序化处理 1、数值程序化 数值程序化就是将要使用的各个参数及其函数关系,用一种合理编制的程序存入计算机,以便运行使用。 (1)用数组形式存储数据 适合于数据是一组单一、严格,又无规律可循的数列的场合。 (2)用数学公式计算数据 适合于数据是一组单一、严格,但能找到某种规律的数列的场合。
数据资料的程序化处理 2、数表程序化 数表程序化就是用程序完整、准确地描述不同函数关系的数表,以便在运行过程中迅速、准确、有效地检索和使用数表中的数据。 ★数表的分类 (1) 按数据有无函数关系可分为简单数表和列表函数数表。 (2) 按数表的维数可分为一维数表、二维数表和多维数表。 ★ 数表的程序化 (1) 屏幕直观输出法 (2) 数组存储法 (3) 公式计算法 数表的公式化方法包括函数插值和数据拟合。
数据资料的程序化处理 3、线图程序化 用线图表示函数关系是一种常用的方法。它的特点是鲜明直观,并能表现出函数的变化趋势。 线图程序化有三种处理方法: (1) 将线图离散成数据表,再按数据表的处理方法进行处理。 (2) 当线图有原始公式时,应找到该线图的原始公式,并将公式编入程序,然后加以处理。 (3) 数组存储法。
3.4 数据库的基本原理与应用 CAD/CAM集成系统,就是要按照产品设计,制造的实际进程,在计算机内组织起连续、协调、科学的信息流,也就是要实现系统中各应用程序所需要的及产生的信息的存贮,交流和操作使用。因此,集成主要是信息的集成问题,最终反映出,表现出的是数据的交换和共享问题。目前,能较好地解决共享问题的数据处理方法,被公认为数据库技术,所以,数据库技术是CAD/CAM集成系统的关键技术之一。
1. 数据库的特点 数据库技术是目前最先进的数据管理技术。它具有如下主 要特点: (1)复杂的数据模型 (2)数据共享性好、冗余度低 (3)数据具有独立性 (4)数据具有安全性、完整性 数据库的以上特点是由数据库管理系统DBMS(Data Base Management System)保障的,因而DBMS是数据库的核心。
2. 数据库管理系统 *数据库系统构成 数据库系统由相应的硬件、软件和专职管理人员及数 据库构成。 (1)硬件 支持数据库管理系统、应用程序运行的设备环境。主要要求足够的内、外存容量,较高的通道能力。 (2)软件 支持数据库系统运行的软件环境。包括支持DBMS的操作系统、宿主语言系统、数据库管理系统以及应用程序。 (3)数据库管理员 负责数据库系统的建立、维护和协调工作的专门人员。 (4)数据库 由DBMS建立存贮在磁盘介质上,管理及维护的通用化的、综合性的数据集合。
复习思考题 1.软件工程的基本概念和重要意义。 2.开发方式经历的三个时代。 3.软件的生存周期的概念,软件生存周期的六个阶段。 4.软件文档的作用。 5. 数据结构的基本概念。