导图社区 813软件工程-详细设计
用于考研813软件工程或期末串知识点,确定应该怎么具体地实现所要求的系统,详细设计的结果基本决定了最终的程序代码的质量。
用于813软件工程和期末复习串知识点,可行性研究是进行了一次大大简化了的系统分析和设计的过程,也是在较高层次上以较为抽象的方式进行的系统分析和设计的过程。
用于813软件工程和期末复习串知识点,对象是封装了数据结构以及可以被施加在这些数据结构上的操作的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务。
用于813软件工程和期末复习串知识点,软件工程是一门指导软件开发和维护的工程型学科,它采用了工科的概念、技术、原理、方法,把经历时间考验的的管理技术和当前能用到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效的维护它。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
详细设计
根本目标
确定应该怎么具体地实现所要求的系统
这个阶段应该设计出程序的“蓝图”,以后程序员根据这个蓝图写出实际的代码。
详细设计的结果基本决定了最终的程序代码的质量
结构程序设计
分类
顺序
选择
循环
定义:如果一个程序仅仅通过顺序、选择、循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,那说明这个程序是程序化的。
人机界面设计
人机交互的四个问题
1、系统响应时间
指用户完成某个控制操作一直到系统响应之间的这段时间
两个属性
长度
易变形
2、用户帮助设施
让用户不离开用户界面就解决问题
集成
附加
3、出错信息处理
出错信息和警告信息是出现问题时交互系统给出的“坏消息”
属性
信息应该用用户可以理解的术语
信息应该提供有助于从错误中恢复的建设性意见
信息应该指出错误可能导致的严重后果
信息应该伴随着视觉和听觉上的提示
信息不能有指责色彩,不能责怪用户
4、命令交互
理想情况下,所有的软件都应该有一致的命令使用方法。
设计过程
迭代的过程
程序复杂程度的定量度量
程序复杂程度乘以适当常数就可以估算出软件中错误的数量以及软件开发需要的任务量,定量度量的结果可以用来比较两个不同设计和两个不同算法的优劣。定量度量的复杂程度可以作为模块规模的精确限度
McCabe方法
度量出的结果是环形复杂度
通常用流图,也就是退化了的程序流程图,只描述控制流程
圆表示结点,箭头表示边,边和结点围成的面积称为区域
在遇到OR/AND/NAND/NOR的时候要注意画法
计算环形复杂度的方法
线性无关区域的个数
V(G)=E-N+2,其中E是流图中边的条数,N是节点数
V(G)=p+1,p是流图中判定节点的个数
V(G)=封闭区域+1
环形复杂度的用途
它是一种测试难度的度量,对软件最终的可靠性做出某种预测
V(G)=<10为适宜,10为模块规模的上限
过程设计的工具
图形
程序流程图(程序框图)
优点
对控制流程的描绘直观,便于初学者掌握。
缺点
程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构。
程序流程图中的箭头代表控制流,因此程序员可以不受控制,不顾程序设计的精神,随意转移控制。
程序流程图不易表示数据结构
盒图(N-S图)
功能域明确
不可能任意转移控制
很容易确定局部和全程数据的作用域
很容易表现嵌套关系,也可以表示模块的层次结构
PAD图
是问题分析图(problem analysis diagram)由日本日立公司发明。
1、设计出的程序必然是结构化程序
2、描绘的程序结构十分清晰
3、易读、易记、易懂
4、容易将PAD图转换成高级语言源程序,省事儿,提高软件可靠性和生产率
5、既可以表示成功程序逻辑,也可以描绘数据结构。
6、PAD 的符号支持自顶向下,逐步求精方法的使用
表格
判定表
算法中包含多重嵌套的条件选择时使用
判定表能清晰地表示复杂的条件组合与应做的动作之间的对应关系。
简洁、无歧义地描述处理规则
不适用于作为一种通用的设计工具,没有一种简单的方法能使他同时清晰的表示循序和重复等处理特性。
判定树
判定树时判定表的变种,能清晰的表现出复杂条件组合和应作工作之间的对应关系
形式简单到不需要任何说明,一眼就能看出其含义
简洁性不如判定表
语言
过程设计语言(PDL)伪码
用正文的形式表示数据和处理过程的设计工具
特点
1、关键字固定的语法,结构化控制、数据说明、模块化的特点
2、自然语言的自由语法
3、数据说明的手段
可以作为注释直接插在源程序之间
使用普通的正文编辑程序或文字处理系统,可以方便的完成PDL 的书写和编辑
已经有自动处理PDL的程序存在,而且可以自动的由PDL生成程序代码
不如图形工具形象直观,描述复杂的条件组合和动作之间的对应关系时,不如判定表清晰简单
面向数据结构的设计方法
Jackson图
便于表示层次结构
形象直观,可读性好
便于表示数据结构
表示选择、重复结构时,不能直接在图上表达出来
不易于把图翻译成程序
框线间的连线为斜线,不易在行式打印机上输出
Jackson图表示的是组成关系
步骤
1、分析并确定输入数据和输出数据的逻辑结构,并用Jackson如描绘这些结构
2、找出输入结构和输出结构中有对应关系的数据单元
3、从描绘数据结构的Jackson图中导出描绘程序结构的Jackson图
4、列出所有操作和条件,并且把他们分配到程序结构图的适当位置
5、用伪码表示程序