计算机软件技术基础计算机软件技术基础 第六章(1)应用软件设计与开发技术_第1页
计算机软件技术基础计算机软件技术基础 第六章(1)应用软件设计与开发技术_第2页
计算机软件技术基础计算机软件技术基础 第六章(1)应用软件设计与开发技术_第3页
计算机软件技术基础计算机软件技术基础 第六章(1)应用软件设计与开发技术_第4页
计算机软件技术基础计算机软件技术基础 第六章(1)应用软件设计与开发技术_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、应用软件设计与开发技术应用软件设计与开发技术a6.1 软件工程概述a6.2 软件详细设计的表达a6.3 结构化分析与设计方法a6.4 测试与调试基本技术a6.5 软件开发新技术软件危机软件危机1950s:很久很久以前很久很久以前: “软件软件” = “把一系列连续的指令结合在一起让计把一系列连续的指令结合在一起让计算机来做事情算机来做事情”.User Computer计算机越来越便宜也越来越普遍计算机越来越便宜也越来越普遍高级语言被使用高级语言被使用ProgrammerUser Computereasier软件危机软件危机1960s:尝试开发大型计算机系统尝试开发大型计算机系统.例例: : 美

2、国美国IBM公司在公司在1963年至年至1966年开发的年开发的IBM360机机的操作系统。这一项目花了的操作系统。这一项目花了5000人一年的工作量,最多人一年的工作量,最多时有时有1000人投入开发工作,写出了近人投入开发工作,写出了近100万行源程万行源程序。序。.据统计,这个操作系统每次发行的新版本都据统计,这个操作系统每次发行的新版本都是从前一版本中找出是从前一版本中找出1000个程序错误而修正的结个程序错误而修正的结果。果。.软件危机软件危机 这个项目的负责人这个项目的负责人F. D. Brooks事后总结了他在组织开发过程中的事后总结了他在组织开发过程中的沉痛教训时说:沉痛教训时

3、说:“.正像一只逃亡的野兽落到泥潭中做垂死的挣扎,正像一只逃亡的野兽落到泥潭中做垂死的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。越是挣扎,陷得越深,最后无法逃脱灭顶的灾难。.程序设计工作正程序设计工作正像这样一个泥潭,像这样一个泥潭,.一批批程序员被迫在泥潭中拼命挣扎,一批批程序员被迫在泥潭中拼命挣扎,.谁也谁也没有料到问题竟会陷入这样的困境没有料到问题竟会陷入这样的困境.”。IBM360操作系统的历史教训操作系统的历史教训成为软件开发项目的典型事例为人们所记取。成为软件开发项目的典型事例为人们所记取。Software Crisis ! 项目没有被很好地理解;计划不周,最终导致进度拖延

4、。项目没有被很好地理解;计划不周,最终导致进度拖延。问题出在哪里?问题出在哪里? 没有充分的文档资料没有充分的文档资料(documentation) 软件可靠性软件可靠性(reliability)缺少度量的标准,质量无法保证。缺少度量的标准,质量无法保证。 如何保证软件产品的质量,是非常复杂困难的问题。特别对于如何保证软件产品的质量,是非常复杂困难的问题。特别对于规模庞大的软件规模庞大的软件 软件难以维护软件难以维护(maintainability) 不易升级不易升级(evolvability)软件工程概述软件工程概述为了消除软件危机,为了消除软件危机,既要有技术措施既要有技术措施( (方法和

5、工具方法和工具) ),又要有必要的组织管理措施。又要有必要的组织管理措施。软件工程正是从管理和技术软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴两方面研究如何更好地开发和维护计算机软件的一门新兴学科。学科。软件工程是指导计算机软件开发和维护的工程学科。软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的把经过时间考验而证明正确的管理技术和当前能够得到的最好最好的技术方法结合起来,以经济地开发出高质量的软件的技术方法结合起来,

6、以经济地开发出高质量的软件并有效地维护它。并有效地维护它。软件生命周期软件生命周期1.软件定义期软件定义期(1)(1)问题定义问题定义 确定问题的性质、工程目标以及规模。确定问题的性质、工程目标以及规模。 分析员应提交书面报告给用户与使用部门负责人进行审查。分析员应提交书面报告给用户与使用部门负责人进行审查。(2)(2)可行性研究可行性研究 进一步研究上一阶段所定义的问题是否可解。利用数据流程图与数进一步研究上一阶段所定义的问题是否可解。利用数据流程图与数据字典共同描述系统的逻辑模型据字典共同描述系统的逻辑模型 最后还要提交必要的文档。最后还要提交必要的文档。(3)3)需求分析需求分析 确定对

7、系统的综合要求,即功能要求、性能要求、运行要求以及确定对系统的综合要求,即功能要求、性能要求、运行要求以及将来可能会提出的一些要求。将来可能会提出的一些要求。 对系统的数据要求进行分析。主要包括数据元素的分类和规范化,对系统的数据要求进行分析。主要包括数据元素的分类和规范化,描绘实体之间的关系图,进行事务分析与数据库模型的建立。描绘实体之间的关系图,进行事务分析与数据库模型的建立。 在前面分析的基础上,推导出系统的详细模型系统。在前面分析的基础上,推导出系统的详细模型系统。 修正开发计划,并建立模型系统。修正开发计划,并建立模型系统。 必要的文档内容:必要的文档内容:系统的功能说明系统的功能说

8、明 系统对数据的要求系统对数据的要求 用户系统描述用户系统描述2.软件开发期软件开发期(1)(1)系统设计系统设计 提出可选择方案;提出可选择方案; 选择合理方案;选择合理方案; 推荐最佳方案;推荐最佳方案;软件生命周期软件生命周期 功能分解;功能分解; 设计软件结构;设计软件结构; 制定测试计划;制定测试计划; 提交文档。提交文档。(2)2)详细设计详细设计(3)(3)编码编码 选择适当的程序设计语言;选择适当的程序设计语言; 使程序内部有良好的文档资料、规范的数据格式说明、使程序内部有良好的文档资料、规范的数据格式说明、 简单清晰的语句结构和合理的输入输出格式,这些都简单清晰的语句结构和合

9、理的输入输出格式,这些都 可以大大提高程序的可读性,而且也可以改进程序的可以大大提高程序的可读性,而且也可以改进程序的 可维护性;可维护性; 充分利用已有的软件工具来帮助编码,以提高编码的充分利用已有的软件工具来帮助编码,以提高编码的 效率和减少程序中的错误。效率和减少程序中的错误。(4)(4)测试测试 保证软件可靠性的主要手段保证软件可靠性的主要手段, ,尽可能的发现程序的错误尽可能的发现程序的错误, ,但绝不但绝不能证明程序的正确性能证明程序的正确性 软件生命周期软件生命周期3.软件维护期软件维护期 为纠正使用中出现的错误而进行的为纠正使用中出现的错误而进行的改正性维护;改正性维护; 为适

10、应环境变化而进行的为适应环境变化而进行的适应性维护适应性维护; 为改进原有软件而进行的为改进原有软件而进行的完善性维护完善性维护; 为将来的可维护和可靠而进行的为将来的可维护和可靠而进行的预防性维护预防性维护。 软件维护不仅是程序代码的维护还包括文档资料的维护软件维护不仅是程序代码的维护还包括文档资料的维护软件生命周期软件生命周期瀑布模型瀑布模型(Waterfall Model) :维维 护护开开发发定定义义DefinitionFeasibility StudyRequirements AnalysisProgram DesignCoding & Module TestingInteg

11、ration & System TestingDelivery & MaintenanceSystem Design特点特点 顺序性、依赖性顺序性、依赖性 推迟程序的物理实现推迟程序的物理实现 质量保证的观点质量保证的观点 阶段文档与评审的要阶段文档与评审的要求,利于尽早发现错求,利于尽早发现错误。误。软件支持环境是指在宿主硬件和宿主软件的基础上软件支持环境是指在宿主硬件和宿主软件的基础上,用于辅助、支持用于辅助、支持其它软件的研制和维护的一组软件。其它软件的研制和维护的一组软件。软件支持环境对改进软件质量、软件支持环境对改进软件质量、提高软件生产效率有很重要的作用提高软件生产

12、效率有很重要的作用 一个完备的软件支持环境应有功能:一个完备的软件支持环境应有功能: (1)能够支持软件生命的全周期。能够支持软件生命的全周期。 (2)能够支持大型软件工程项目。能够支持大型软件工程项目。 (3)能够支持软件配置管理。能够支持软件配置管理。 一般的软件支持环境由以下几部分组成。一般的软件支持环境由以下几部分组成。 (1)环境数据库环境数据库(必要的信息)(必要的信息) (2)接口软件接口软件(要求具有统一性)(要求具有统一性) (3)工具组工具组 (研制、维护和配置工具)(研制、维护和配置工具)软件支持环境软件支持环境算法描述工具(软件详细设计的表达)算法描述工具(软件详细设计

13、的表达)程序流程图中常用的图形符号程序流程图中常用的图形符号程序流程图的主要缺点:程序流程图的主要缺点:(1) 程序流程图本质上不是逐步求精的好工具,它会使程程序流程图本质上不是逐步求精的好工具,它会使程序员过早地考虑程序的控制流程,而不去考虑程序的序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。全局结构。(2) 程序流程图不易表示层次结构。程序流程图不易表示层次结构。(3) 程序流程图不易表示数据结构和模块调用关系等重要程序流程图不易表示数据结构和模块调用关系等重要信息。信息。(4) 程序流程图中用箭头代表控制流,因此,程序员不受程序流程图中用箭头代表控制流,因此,程序员不受任何约束

14、,可以完全不顾结构程序设计的思想,随意任何约束,可以完全不顾结构程序设计的思想,随意进行转移控制。进行转移控制。算法描述工具(软件详细设计的表达)算法描述工具(软件详细设计的表达)图图NSNS图是一种不允许破坏结构化原则的图形算法描述工具图是一种不允许破坏结构化原则的图形算法描述工具, ,又称盒图又称盒图 NSNS图基本特点:图基本特点: (1)(1)功能域比较明确,可以从框图中直接反映出来。功能域比较明确,可以从框图中直接反映出来。 (2)(2)不可能任意转移控制,符合结构化原则。不可能任意转移控制,符合结构化原则。 (3)(3)很容易确定局部和全程数据的作用域。很容易确定局部和全程数据的作

15、用域。 (4)(4)很容易表示嵌套关系,也可以表示模块的层次结构。很容易表示嵌套关系,也可以表示模块的层次结构。顺序结构顺序结构选择结构选择结构两路分支结构两路分支结构多路分支结构多路分支结构1)1)当型循环结构当型循环结构2)直到型循环结构直到型循环结构问题分析图问题分析图PAD PAD PAD图是用结构化程序设计思想来表示程序逻辑结构的一种图形工具图是用结构化程序设计思想来表示程序逻辑结构的一种图形工具 PADPAD图的五种基本控制结构图的五种基本控制结构判定表判定表当算法中包含多重嵌套的条件选择当算法中包含多重嵌套的条件选择, ,用程序流程图、用程序流程图、NSNS图都不易清楚图都不易清

16、楚地描述,而判定表能清楚地描述复杂的条件组合与各功能之间的地描述,而判定表能清楚地描述复杂的条件组合与各功能之间的对应关系对应关系 一张判定表由以下四部分组成:一张判定表由以下四部分组成: 左上部列出所有条件;左上部列出所有条件; 左下部是所有可能的动作;左下部是所有可能的动作; 右上部是表示各种条件组合的一个矩阵;右上部是表示各种条件组合的一个矩阵; 右下部是和每种条件组合相对应的动作。右下部是和每种条件组合相对应的动作。 判定表右半部的每一列实际上就是一个规则,规定了与特定的判定表右半部的每一列实际上就是一个规则,规定了与特定的条件组合相对应的动作。条件组合相对应的动作。 假设某大学要从学

17、生中挑选男子篮球队队员,基本条件是各门课程的平假设某大学要从学生中挑选男子篮球队队员,基本条件是各门课程的平均分在均分在7070分以上,身高超过分以上,身高超过1.801.80米,体重超过米,体重超过7575公斤。需要从学生登记表中公斤。需要从学生登记表中挑选出符合上述条件的男同学,并列出他们的姓名和住址,以便进一步选拔挑选出符合上述条件的男同学,并列出他们的姓名和住址,以便进一步选拔。 T表示条件成立表示条件成立 、 F表示条件不成立表示条件不成立; 表示做它左边的动作、空白表示不做它表示做它左边的动作、空白表示不做它左边的动作左边的动作. 由此可见,判定表能简洁而无歧义地描述处理规则由此可

18、见,判定表能简洁而无歧义地描述处理规则判定表判定表过程设计语言PDL过程设计语言过程设计语言PDLPDL又称为伪码或结构化语言又称为伪码或结构化语言,PDL,PDL有严格的关键有严格的关键字外部语法字外部语法, ,用于定义控制结构和数据结构用于定义控制结构和数据结构, ,一般来说一般来说PDLPDL是一种是一种“混合混合”语言语言, ,它用自然语言中的词汇和一种结构化程序设计语言它用自然语言中的词汇和一种结构化程序设计语言中的控制结构来描述算法中的控制结构来描述算法 PDLPDL特点:特点: (1)(1)关键字的固定语法,提供了结构化控制结构、数据说关键字的固定语法,提供了结构化控制结构、数据说 明和模块化的特点。明和模块化的特点。 (2)(2)用自然语言的自由语法来描述处理部分。用自然语言的自由语法来描述处理部分。 (3)(3)具有数据说明的手段。具有数据说明的手段。 (4)(4)具有模块定义和调用的机制,提供各种接口描述模式。具有模块定义和调用的机制,提供各种接口描述模式。PDLPDL优点:优点: (1)(1)可以作为注释直接插在源程序中间。

温馨提示

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

评论

0/150

提交评论