导图社区 详细设计
这是一篇关于软件工程的思维导图,主要内容有目的、任务、结构化程序设计、详细设计工具。
一篇关于数据结构思维导图,数据结构的基本概念、算法与算法评价等。希望对你有所帮助!
这是一篇关于运算符和表达式思维导图,包含C语言运算符、基本算数运算、逻辑运算、自增自减运算等。感兴趣的小伙伴可以关注点赞收藏哦~~
这是一篇关于数据的表现形式及其运算的思维导图,数据的表现形式和运算方式是计算机科学中的重要概念,它们是计算机进行数据处理和计算的基础。
社区模板帮助中心,点此进入>>
互联网9大思维
产品立项报告
组织架构-单商户商城webAPP 思维导图。
域控上线
产品经理如何做好项目管理
python思维导图
经验分享:产品经理必懂的产品思维
产品诞生过程
产品周期图
css
详细设计
目的
确定应该怎样具体实现所要求的系统
任务
设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的代码
结构化程序设计
结构程序设计是实现详细设计目标的关键技术,也是详细设计的逻辑基础
定义
如果一个程序的代码仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的
控制结构
顺序结构
选择结构
循环结构
详细设计工具
过程设计的工具
1.程序流程图(程序框图)
优点
对控制流程的描述很直观,便于初学者掌握
缺点
(1)没遵循逐步求精的原则,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构
(2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以随意转移控制
(3)程序流程图不易表示数据结构
2.盒图(N-S图)
特点
(1)功能域明确
(2)不可能任意转移控制
(3)很容易确定局部和全程数据的作用域
(4)很容易表示嵌套关系,也可以表示模块的层次结构
(1)盒图没有箭头,因此不允许随意转移控制
(2)盒图可以使程序员逐步养成用结构化的方式思考问题和解决问题的习惯
3.PAD图(问题分析图)
PAD图用二维树形结构的图来表示程序的控制流
(1)PAD图符号设计出来的程序必然是结构化程序
(2)PAD图所描述的程序结构非常简单
(3)用PAD图表现程序逻辑,易读、易懂、易记
(4)容易使用软件工具将PAD图自动转换成高级语言源程序,提高了软件的可靠性和软件生产率
(5)即可用于表示程序逻辑,也可用于描述数据结构
(6)PAD图支持自顶向下,逐步求精方法的使用
4.判定表
适用性
算法中包含多重嵌套的条件选择时使用判定表
组成
(1)左上部列出所有条件
(2)左下部是所有可能做的动作
(3)右上部是表示各种条件组合的一个矩阵
(4)右下部是和每种组合相对应的动作
5.判定树
判定树是判定表的变种,也能够表示复杂的条件组合与应做的动作之间的对应关系
形式简单,不需要任何说明,一眼就可以看出其中含义
不如判定表简洁
6.过程设计语言
过程设计语言(PDL),即伪码,它是用正文形式表示数据和处理过程的设计工具
描述
(1)PDL具有严格的关键字外部语法,用于定义控制结构和数据结构
(2)PDL表示实际操作和条件的内部语法通常又是灵活自由的,可以适应各种工程项目的需要
(1)关键字的固定语法,它提供了结构化控制结构、数据说明和模块化特点
(2)自然语言的自由语法,它描述处理特点
(3)数据说明的手段
(4)模块定义和调用的技术,应该提供各种接口描述模式
(1)可作为注释直接插在源程序中,有助于保持文档和程序的一致性,提高文档的质量
(2)可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作
(3)已经有自动处理PDL的程序存在,且可以自动由PDL生成程序代码
不如图形工具形象直观,不如判定表清晰简单
面向数据结构的设计方法
1.Jackson图
分类
Jackson图根据程序中数据元素彼此间的逻辑关系可以分为顺序结构、选择结构和重复结构3类
(1)便于表示层次结构,而且是对结构进行自顶向下分解的有力工具
(2)形象直观可读性好
(3)既能表示数据结构也能表示程序结构
程序复杂程度的定量度量
1.McCabe方法
流图
流图实质上是“退化了的”程序流程图
映射
(1)程序流程图中的一个顺序的处理框序列和一个菱形判定框,可以映射成一个结点
(2)流图中的箭头线称为边
(3)由边和结点围成的面积称为区域
环形复杂度
McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度
计算方法
(1)V(G)=区域数等于环形复杂度
(2)V(G)=E-N+2
(3)V(G)=P+1
2.Halstead方法
Halstead方法是根据程序在运算符和操作数的总数来度量程序的复杂程度