chap程序开发和软件工程.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap程序开发和软件工程.ppt

第四章 程序开发与软件工程 软件危机 硬件生产率大幅提高;软件规模越来越大;软件生产率很低;硬、软件供需失衡 软件危机的具体体现 软件开发进度难以预测 软件开发成本难以控制 用户对产品功能难以满足 软件产品质量无法保证 软件缺少适当的文档资料 软件危机(续) 最典型失败系统的例子 IBM公司开发OS/360系统,共有4000多个模块,约100万条指令,投入5000人年,耗资数亿美元,结果还是延期交付。在交付使用后的系统中仍发现大量(2000个以上)的错误 软件危机(续) 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。为了研究、解决软件危机,诞生了一门新兴学科——软件工程学。它把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机 4.1 程序设计过程 程序设计(Programming) 需求分析 程序设计 编码 测试与排错 一 需求分析 程序的形式是程序语言描述的程序正文 程序的内容就是对需要解决的问题的描述 建模是计算机解题中的难点,也是计算机解题成败的关键 建立计算机可以实现的计算模型。就是解题的数学模型 通过数值分析将计算模型化为等价的计算机可接受的方程 非数值问题更要依赖模型 需求分析(续) 程序的规格说明(specification) 规格说明是程序设计必须遵从的“宪法” 没有模型就难于写出准确的规格说明 一个程序(软件)经过分析可以分解为若干个子部分,除了总的规格说明之外,各子部分也要写规格说明。它们也是这些子部分开发、测试、验收的依据 需求分析(续) 一般子模块规格说明的内容 名称(名称最好有较强的概括性,如矩阵二次型) 开发者/日期: 输入: 算法模型:数学模型写公式,图模型画图 功能特征: 输出: 性能约束: 需求分析(续) 整个应用程序的规格说明的内容应包括: 名称: 开发者/日期: 功能特征: 程序结构:列出子部分名称、规格(特征) 使用资源: 软件型号、规格 软件平台型号、版本 数据库型号、版本 输入: 输出: 性能约束: 其它:必威体育官网网址级别、口令等 需求分析(续) 规格说明一般写在源程序头部的注释行中,这种风格流传至今 也可单独写规格说明文档(从软件工程的角度来说,应当这样。后面将讨论这个问题),对于大的源程序(千句以上)这种重复是必要的 二 程序设计 流程图 流程图可清楚地看出执行逻辑。画流程图是作设计。设计先于编码 程序设计包括程序的控制流设计(算法设计)和数据设计 只要数据结构定下来,算法的设计就比较容易。对大多数问题来说,两者并重 算法和数据结构设计应满足功能要求,还要满足规格说明对性能的要求 程序设计还应该保证软件的质量 可靠性,安全性,可维护性,可移植性,适应性,可测试性等 程序设计准则 模块化 较小的模块;降低程序的复杂性;避免数据耦合 少用全局变量,少通过嵌套作用域来传递参数 结构化 每个模块内程序控制应是结构化的,即只有三种基本控制结构并层层嵌套;不用或少用GoTo语句 数据隐藏 凡与其它模块无关的数据尽可能作为局部量放在自己的模块内 程序设计准则(续) 可测试性 一致性 行文风格一致(排列对齐,空行、边框、关键字都出现在同样位置) 表达方法尽量一致(同样的数据、控制结构同样表达,如用链表都链表,用数组都数组) 设计方法 需求分析定义的规格说明是在一个核心的、大致的解题模型之上,设计时要具体刻画出来,具体到能一一对应编码为宜 程序开发是从抽象到具体的过程。两种典型方法: 自顶向下逐步求精 面向对象设计:面向对象编程是典型的由底向上设计;对象建模的关键是找出对象 三 编码 编码(Coding)是正式地编写某种程序语言的源程序,还包括以下工作: 模块最后重组 一致性完善 源程序级的程序优化: 尽可能用符号常量 减少重复计算 将循环次数多的作内循环 减少不必要的计算 除了时间优化而外,还有空间优化即少占存储 四 测试与排错 软件测试是为了发现程序中的错误而进行的一系列工作过程。它有以下特征: 测试的挑剔性 完全测试的不可能性 程序的可靠性定义为“在给定的时间和给定的环境下

文档评论(0)

只做精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档