《软件工程课件分析与设计.ppt》由会员分享,可在线阅读,更多相关《软件工程课件分析与设计.ppt(69页珍藏版)》请在三一文库上搜索。
1、软件开发详细设计,内 容 提 纲,结构化方法 基本任务 过程设计的工具 面向数据结构的设计方法 程序复杂度的度量,内 容 提 纲,面向对象方法 基本任务 方法建模 属性建模 状态建模 关系建模 详细设计的评审 用户界面的设计,结构化方法基本任务,对系统中每个模块的内部过程进行设计和描述。 结构化程序设计技术即保证了每个模块功能的正确实现,也让设计出的处理过程简明易懂。,过程设计的工具,程序流程图 盒图(N-S图) PAD图(Problem Analysis Diagram) PDL语言(Process Design Language),举例:指出所有的基本程序结构,程序流程图的缺点,由于流程线
2、随心所欲地使用,容易与结构化程序设计思想相违背 难以描述逐步求精的过程 难以表示系统中的数据结构,N-S图,举例:请描述程序的运行过程,练习,S1; if (x5) then S2 else S3; while (y0 then S6; while (k5) S7; S8;,N-S图的特点,功能域明确 不可能任意转移控制 很容易确定局部和全局数据的作用域 很容易表示嵌套关系,也可以表示模块的层次结构,PAD图,PAD图,S1; if (x5) then S2 else S3; while (y0 then S6; while (k5) S7; S8;,举例:将下列伪代码转换成PAD表示,练习:
3、用选择排序法对数组X1n进 行降序排列,思考: 选择排序法的程序基本结构? 答:双重循环 内层、外层循环任务分别是什么? 答:内层循环将Xi和Xj比较,取大 外层循环将Xi取值不断变化 内层、外层循环的初值、终值? 答:内层i+1n-1 外层0n-2,答案:选择排序的PAD图,细化“交换xi和xj”,等价带入:,面向数据结构的设计方法,出现原因 数据结构对于程序的结构和运行过程存在影响 层次的数据结构和层次模块结构存在相似性 面向数据结构的设计方法 Jackson方法 Warnier方法,Jackson图描述数据结构,顺序结构 由一个或多个数据元素组成,每个元素按确定次序出现一次。,选择结构,
4、由两个或多个数据元素组成,每次使用这个数据时按一定条件从这些数据元素中选择一个。,重复结构,根据使用时的条件由一个数据元素出现零次或多次构成。,改进的Jackson图,Jackson结构程序设计方法,分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。 找出输入数据结构和输出数据结构中有对应关系的数据单元 将数据结构图转换为程序结构图 列出所有操作和条件,将它们分配到程序结构图的适当位置 用伪码列出程序,举例,一个正文文件由若干个记录组成,每个记录是 个字符串。 要求: 统计每个记录中空格字符的个数 文件中空格字符的总个数 输出数据格式是,每复制一行输入字符串之后,另
5、起一行印出这个字符串中的空格数,最后印出文件中空格的总个数。,输入/输出数据结构对应的Jackson图,数据结构图的转化,输入/输出数据结构图的合并 合并图的整理,罗列所有操作和条件,插入,(l)停止(2)打开文件(3)关闭文件(4)印出字符串 (5)印出空格数目 (6)印出空格总数 (7)sum:= sum + 1 (8)totalsum:= totalsum十sum (9)读入字符串 (10)sum:= 0 (11)totalsum:= 0 (12)pointer:= 1 (13)pointer:= pointer + 1 I(1)文件结束 I(2)字符串结束 S(3)字符是空格,程序结构
6、图的最终形态,程序复杂程度的度量,用途 把程序的复杂程度乘以适当常数可估算出软件中错误的数量 估算软件开发需要用的工作量 比较两个不同的设计或两个不同算法的优劣 度量方法 McCabe方法 Halstead方法,McCabe方法,基本步骤 将程序流程图简化为流图 计算环形复杂度 方法1:流图中区域数等于环形复杂度 方法2:流图环形复杂度V(G)=E-N+2 (E是流图中边的条数,N是结点数) 方法3:流图环形复杂度V(G)=P+1 (P是流图中判定结点的数目),Halstead方法,简介 利用程序中的运算符和操作数总数来度量程序的复杂程度。 基本公式 假设,完成详细设计之后,n1为估计不同运算
7、符个数,n2为不同操作数个数。 Halstead给出预测程序长度的公式: N=n1 log2 n1+n2 log2 n2 Halstead给出预测程序包含错误的个数的公式: E=N log2 (n1+n2)/3000,内 容 提 纲,面向对象方法 基本任务 方法建模 属性建模 状态建模 关系建模 详细设计的评审 用户界面的设计,面向对象方法详细设计,定义 细化分析和体系结构设计所产生的模型,消除问题域与实现域之间的差距 基于类,由单个开发人员实现 主要任务 精化类的属性和操作,即明确属性的类型和可见性、操作的参数和基本内部逻辑 明确类之间的关系 整理和优化设计模型,类的设计,边界类 用户界面:
8、考虑界面开发的工具和所创建界面数量。 外部系统接口 实体类 考虑性能对实体对象的影响 控制类 是否需要?是否需要继续细分? 考虑复杂性、变化适应性、分布性和性能、事务处理等需求。,操作的设计,定义操作的过程 定义满足基本功能要求的操作; 补充必要的辅助操作,例如:初始化类的实例、局部变量等; 完整地描述操作,即确定操作名称、参数、返回值、可见性等; 简要说明操作实现的内部逻辑,举例:BorrowerInfo的类操作,属性的设计,定义属性 具体说明属性名称、类型、缺省值、可见性等 基本原则 将所有属性可见性设置为private; 仅通过set、get方法更新、访问属性; 在set方法中引入简单的
9、有效性验证。(如果验证逻辑过于复杂,则需建立独立的验证方法),举例:BorrowerInfo的类,状态建模,一般只发生在依赖状态展示不同行为的类上 举例:MiniLibrary系统的书籍类,New Book,Available,Delete,Reserve,Borrowed,Borrow,Return,Borrow,Reserve,Time Out,Cancle,关系建模,针对类,需要进一步确定详细的关联关系、依赖关系和聚合关系等。(如果关系具有属性,则需建立关联类) 不同对象之间的可能连接 全局(Global) 参数(Parameter) 局部(Local) 域(Field),OO模型在RD
10、BMS中的实现,一对一关联,多对多关联,OO模型在RDBMS中的实现,一对多关联,OO模型在RDBMS中的实现,泛化关系,OO模型在RDBMS中的实现,关联类,应用设计模式,定义 解决特定问题的经验,实质就是软件的复用。 描述 模式名称描述模式的问题、解决方案和效果。 面临问题模式使用的场合。 解决方案模式中组成成分、职责和协作方式。 模式效果模式使用的效果和应该权衡的问题。,应用设计模式,常用设计模式 创建型设计模式:描述对象创建的具体细节。 结构型设计模式:描述对象之间通过组织形成新结 构,实现新的功能。 行为型设计模式:描述算法与对象之间任务分配和 通讯模式。 作用和研究意义 优化的设计
11、经验。 极高的复用性。 丰富的表达能力。 极低的耦合度。,内 容 提 纲,面向对象方法 基本任务 方法建模 属性建模 状态建模 关系建模 详细设计的评审 用户界面的设计,详细设计的评审,选择适用于设计阶段的度量指标,例如时间开销、错误类型和严重性等; 检查每个系统模块是否被详细设计; 检查每个详细设计是否属于系统结构的一部分; 检查设计的完整性; 检查设计是否可测试; 检查详细设计的以下方面 简单性、通用型、有效性 可扩展性、可移植性,内 容 提 纲,面向对象方法 基本任务 方法建模 属性建模 状态建模 关系建模 详细设计的评审 用户界面的设计,界面设计过程,从用户需求出发,不断迭代的过程,用
12、户界面的设计原则,系统响应时间 时间长度 时间易变 用户帮助设施 在用户与系统交互期间,是否能随时获取系统任何功能的帮助信息 用户怎么请求帮助? 怎么显示帮助信息? 用户如何返回正常的交互方式? 怎么组织帮助信息?,用户界面的设计原则,出错信息处理 提示错误的语言简洁易懂。 能提供从错误中恢复的建设性意见。 指明错误可能导致的负面后果。 应伴随听觉、视觉上的提示。 不能带有指责色彩。 命令交互 每个菜单项是否都有对应的命令? 命令的形式? 命令记忆难度? 用户能否定制命令?,用户界面的设计原则,审美和可用性 界面色彩搭配,布局合理 可用性指用户在使用过程中的方便性、简单性、有效性、可靠性和快捷
13、性等。,用户界面的评价,一般说,针对界面可用性进行评价。 可用性属性,作业评讲:Page132-7,判定表:下面哪种写法正确?,作业评讲:Page132-7,判定树:下面哪种写法正确? 判定树1 判定树2,界面颜色搭配方案,返回,美观与性能,返回,结构程序设计,程序代码仅仅通过顺序、选择和循环三种基本控制结构进行连接 代码块单一入口、出口 尽可能少用GOTO语句,举例:判断下列是否满足SP,返回,A seq B C D A end,顺序数据结构,选择数据结构,A select cond1 B A or cond2 C A or cond3 D A end,循环数据结构,A iter until(或while) cond B A end,返回,McCabe的流图,定义 仅仅描绘程序的控制流程 基本符号 圆:代表一条或多条语句 箭头线:边 区域:由边和圆围成的面积 基本原则 合并原则:顺序处理框和菱形判定框,可以映射成 流图中的一个结点 分解原则:复合条件分解为若干个简单条件,每个 简单条件对应流图中一个结点,举例:给下图绘制对应的流图,返回,Abstract Factory设计模式,返回,Adapter模式,适配器模式可以将某个类的接口转换成客户希望的另外一个类的接口。,返回,Interpreter模式,返回,
链接地址:https://www.31doc.com/p-2161019.html