第十章传统的软件开发方法内容摘要:
内聚性问题的讨论 从使用角度分析,能否用一个短句完整地描述该模块做什么;若这个短句是复合句,或有若干个动词,则该模块是非功能性模块。 在设计时,尽量采用功能性模块。 第 50 页 概要设计 概要设计是为软件系统定义一个逻辑上一致的结构:进行模块划分,建立模块层次结构、调用关系,设计全局数据结构及数据库,设计系统接口及人机界面等。 概要设计的方法有许多种: – 在早期有模块化方法、功能分解方法,这都是人们一般常用的方法; – 在 60年代后期提出了面向数据流的设计方法、面向数据结构的设计方法; – 近年来又提出面向对象的设计方法等。 第 51 页 概要设计主要步骤 1)精细化数据流程图,确定数据流程图的类型; 2)指出各种信息流的流界; 3)将数据流程图映射为软件结构; 4)精细化软件结构; 5)开发接口描述和全程数据描述。 第 52 页 数据流程图分类 变换流 加工 中心 输入 加工 输出 加工 输入 输出 内部 结果 内部 数据 输入流 输出流 变换流 加工结果 第 53 页 事物流 事物 中心 T 数据流 事物中心 t1 t2 t3 t4 事物路径 事物流 一个数据流经过某个加工后,有若干个平行的数据流 流出,将这种变换称为事物流。 •当事物流中的 事物流到事物 中心后,事物 中心分析每个 事物,确定其 类型;并根据 事物类型选择 一个事物路径 继续进行处理。 第 54 页 变换分析技术 变换分析技术是从典型的变换型数据流程图( DFD)中推导出相应的结构图。 变换分析是一组设计步骤,可把 DFD映射为一种标准结构。 有了标准结构,再根据软件结构度量、模块化度量、模块独立性度量来精细改善结构图,从而得到良好的软件结构。 第 55 页 变换分析的步骤 确定 DFD及其类型 确定输入流、中心加工、输出流的流界; 第一级分解;设计上层模块; 第二级分解,设计中、下层模块; 进一步精细化。 第 56 页 事务分析技术 事务分析技术也是将相应的数据流程图( DFD)映射为对应的的软件结构图。 事务分析的组设计步骤同变换分析: –确定数据流图的类型 –确定流界 –第 1级分解 –第 2级分解 –设计后处理 第 57 页 详细设计方法 详细设计是根据每个模块的功能设计其逻辑描述、实现其法以及实现这些算法的逻辑控制流程,并设计这些模块所需的局部数据结构。 详细设计的方法主要是用结构程序设计SP方法,详细设计的表示工具有图形工具和语言工具。 图形工具有程序流程图、PAD图、 NS图,语言工具有伪码和 PDL等。 第 58 页 SP中的基本结构 顺序结构 选择结构 – IF THEN ELSE 结构 – IF THEN 结构 – IF OR IF ELSE 结构 – CASE 结构 重复结构 – 当型结构 – 直到型结构 出口结构 第 59 页 SP中的优点 自顶向下,逐步求精方法符合人们解决复杂问题的普遍规律。 用先全局后局部,先整体后细节,先抽象后具体的逐步求精过程开发的程序有清晰的层次结构,容易理解和阅读。 不使用 GOTO语句,使程序静态结构和程序动态执行情况一致,容易理解和阅读,开发出的程序容易修改和维护。 程序只采用三种基本结构,有确定的逻辑结构,可读性好。 共用模块可重用。 第 60 页 SP中的缺点 SP方法是面向过程的设计方法,对于非数值应用问题,明显地“力不从心”。 SP方法对大问题的描述有很大的局限性。 SP方法的模块化设计的子程序、函数的可重用性很小。 数据和过程的分离。 程序员在编程时必须随时考虑要处理的数据的格式 第 61 页 四、程序编码 程序设计语言的特点 选择语言 写程序的风格 程序设计方法论 第 62 页 程序设计语言的特点 软件工程师应该了解程序设计语言各方面的特点,以及这些特点对软件质量的影响,以便在一个特定的开发项目选择语言时,能够作出合理的选择。 程序设计语言的特点是: – 名字说明 – 类型说明 – 初始化 – 程序对象的局部性 – 程序模块 – 循环控制结构 – 分支控制结构 – 异常处理 – 独立编译 第 63 页 选择语言 根据实际情况选择使用的程序设计语言。 程序设计语言分“汇编语言”和“高级语言”;汇编语言的程序执行效率高,但生产效率低;高级语言的程序执行效率不如汇编语言,但编程效率则要高得多,同时还有可读性、可维护性好等优点。 选择语言时,不仅要考虑理论上的标准,还必须同时考虑使用方面的各种限制。 第 64 页 写程序的风格 指程序员在编程时所表现出来的特点、逻辑思路、结构等。 可以体现在下列各个方面: –源代码文件(程序内部的文档) –数据说明 –语句构造 –输入 |输出 –提高程序质量的技巧 –效率 第 65 页 源代码文件(程序内部的文档) 包括程序中使用的标识符,适当的注释以及程序的视觉组织。 标识符 命名要有一定的规则;用拼音或英文字符。 注释行 通常在源程序中用大量篇幅(最多占到1/3)加入注释行,在开发者和读者间进行钩通,说明程序的功能、标识符的含义、主要算法等。 特别在维护阶段,对理解程序提供了指导。 程序书写格式 各控制结构的层次应呈锯齿形,同一层次对齐,下一层退缩几格。 第 66 页 数据说明 为使数据定义更容易看懂、更容易维护,要建立一些指导原则: –数据说明顺序标准化,最好按照类型说明、公用变量、局部变量、文件说明的顺序; –一个语句说明若干个变量时,名字最好按字典排序; –对复杂的 DS,要加注释,说明固有特性。 第 67 页 语句构造 语句构造的原则是: –简单直接 不应追求效率而使代码复杂化; –为了便于阅读和理解,不要一行写多个语句,不同层次的语句应呈锯齿形; –不用复杂的测试条件,不用或少用“非条件”; –避免使用大量嵌套循环及条件循环; –使用条件来简化表达式。 第 68 页 输入 /输出 在编码时要考虑下列 I/O风格的规则: – 对所有的输入数据进行检验 – 检查重要的输入项组合的合法性 – 保持输入格式的简单 – 使用数据结束标记,不要要求用户指定数据的数目 – 明确提示交互式输入的请求,详细说明可用的选择或边界数值; – 当程序设计语言对格式有严格要求时,保持输入格式一致 – 设计良好的输出报表 – 给所有的输出加标志 第 69 页 提高程序质量的技巧 –避免使用过于相似的变量名 –变量名中尽量不含数字 –同一变量名不要具有多种意义 –显式说明所有变量 –注意浮点运算的误差 –注意整数运算的特点 –避免不必要的 GOTO语句 –尽量少用语句标号 第 70 页 效率 程序运行时间 源程序的效率由算法的效率决定,但写程序的风格也能对程序的执行速度和存储器要求产生影响,可应用下述规则: –写程序前先简化算术和逻辑表达式 –尽量避免使用多维数组,尽量避免使用指针和复杂的表 –使用时间短的算术运算 –不要混合使用不同的数据类型 –尽量使用整数运算和布尔表达式 第 71 页 程序设计方法论 通常有两种方法:自顶向下和自底向上 –自顶向下(特点): • 程序可读性好 • 可靠性较高 –自底向上(特点) • 程序。第十章传统的软件开发方法
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
匀变速直线运动位移和时间的关系
t t/s o 对于匀变速直线运动,它的位移与它的 vt图象,是否也有类似的关系呢。 v v0 o t t v o t v o v t o v v0 o t 上面的理论推导中用到了 无限分割,逐渐逼
第十四章polya计数法141置换群于对称群
1......1......21......1......21nkknknknkn 当反时针旋转 (360/n)度 后 ,我们就有: 更一般地有: 从而 是置换群 , 也是 循环群。 11 nnn 1, . . .. .2,1,0。 )( 1 nkknnkn 对于)}, . . . . .,({ 1210 nnnnn 24 例 (二面体群 )
第十章面向对象分析object-orientedanalysis
信 柜员输入事务 事务修改账户 ATM与中央计算机通信 在 ATM上输入事务 中央计算机确定事务与分行的对应关系 167。 Object Model 第 3步:完善 ① 正名:分行提供分行计算机和柜员终端 = 分行拥有分行计算机 + 分行拥有柜员终端 ② 分解:适当分解前面确定的 classamp。 objects ,使其适用于不同的关联 事务 = 远程事务 + 柜员事务 ③