软件工程教案-4(计算机0301-0304).ppt
《软件工程教案-4(计算机0301-0304).ppt》由会员分享,可在线阅读,更多相关《软件工程教案-4(计算机0301-0304).ppt(172页珍藏版)》请在三一办公上搜索。
1、第四章 系统设计和实现,4.1 设计概述 4.2 模块和模块化4.3 软件结构设计的图形工具 4.4 结构化的设计方法(面向数据流的设计方法)(P65 3.7)4.5 系统人机界面设计 4.6 过程设计和结构化程序设计 4.7 详细设计工具 4.8 面向数据结构的设计方法4.9 程序复杂程度的度量,4.1 设计概述,4.1.1 结构化设计(补充)4.1.2 概要设计步骤(P43),4.1.1 结构化设计(补充),概要设计(总体设计):具体是确定系统的设计方案,进行数据文件设计、软件结构设计、系统接口设计详细设计:进行过程设计,数据字典,数据文件设计,ER图,软件结构设计,DFD图,处理规格说明
2、,系统接口设计,状态转换图,过程设计,结构化分析(SA),结构化设计(SD),4.1.2 概要设计步骤(1),1确定设计方案 2软件结构设计和接口设计3数据文件设计4测试方案设计5编写总体设计文档6审查和复审,4.1.2 概要设计步骤(2),1确定设计方案1)设想供选择的方案 2)选取合理的方案 3)推荐最佳方案,4.1.2 概要设计步骤(3),例如:假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CR
3、T终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,采购员员,定货报表,事务,1处理事务,2产生报表,仓库管理员,D2 定货信息,D1 库存清单,4.1.2 概要设计步骤(4),分解,4.1.2 概要设计步骤(5),方案1:,采购员,定货报表,事务,1.1接收事务,2产生报表,仓库管理员,D2 定货信息,D1 库存清单,1.2更新库存清单,1.3处理定货,库存信息,D3 事务,4.1.2 概要设计步骤(6),方案2,4.1.2 概要设计步骤(7),2软件结构设计和接口设计3数据文件设计4测试方案设计,4.1.2 概要设计步骤(8),5.编写总体设计文档总体设计说
4、明书(包括系统实现方案和软件模块结构);测试计划(包括测试策略、测试方案、预测的测试结果、测试进度计划等);用户手册(根据总体设计阶段的结果,修改初步的用户操作手册);详细的实现计划;数据库设计结果。6审查和复审,4.2 模块和模块化,4.2.1 模块和模块化概念 4.2.2 模块化可产生的效果 4.2.3 模块分割的评价标准 4.2.4 模块设计准则(P50),4.2.1 模块和模块化概念,模块(P45):又称构件,是能够单独命名并独立地完成一定功能,独立地设计、编制、调试、查错、修改和维护的程序语句的集合。例如高级语言中的过程、函数、子程序等都可作为模块。模块化(P45):把系统按照一定的
5、规则分割成分割成能完成独立功能的模块,明确规定各模块及其输入输出规格,使模块的界面不会产生混乱。,4.2.2 模块化可产生的效果(1),1.降低复杂度,4.2.2 模块化可产生的效果(2),2提高软件的可靠性3提高可维护性4有助于软件开发工程的组织管理5有助于信息隐藏和局部化,4.2.3 模块分割的评价标准(1),评价模块分割的标准有以下几个方面:模块的大小模块之间的联系程度(耦合)模块内的联系程度(内聚)模块信息的隐藏程度。,4.2.3 模块分割的评价标准(2),模块的大小:模块的大小以模块的功能意义、复杂程度、易于理解、便于控制为标准。,4.2.3 模块分割的评价标准(3),耦合(coup
6、ling):软件结构中各个模块之间相互依赖的程度的度量。,4.2.3 模块分割的评价标准(4),常见的耦合:通过信息连接模块数据耦合 标记耦合控制耦合 通过公用信息连接模块外部耦合公共耦合 内容耦合,4.2.3 模块分割的评价标准(5),数据耦合:一模块调用另一模块时,被调用模块的输入、输出都是简单的数据。属松散耦合。,4.2.3 模块分割的评价标准(6),标记耦合:如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,4.2.3 模块分割的评价标准(7),控制耦合:如果一个模块通过开关量、标志、名字等控制信息,明显地控制另一模块的功能,4.2.3 模
7、块分割的评价标准(8),外部耦合:一组模块访问同一单一类型全局变量或全局数组。,4.2.3 模块分割的评价标准(9),公共耦合:两个模块都能够存取同一公共数据环境。,慎用公共数据区和全程变量!,4.2.3 模块分割的评价标准(10),内容耦合:一个模块直接引用另一个模块的内容(数据、语句、标号等)。一般出现在用低级语言编写的程序中。,4.2.3 模块分割的评价标准(11),为降低模块间的耦合程度的设计原则 在传递信息时应尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。模块之间相互调用时,传递的参数最好只有1个,最多不超过4个。降低模块接口的复杂程度:,4.2.3 模块分割
8、的评价标准(12),内聚(cohesion):一个模块内各个元素彼此结合的紧密程度。偶然内聚(concidental cohesion)逻辑内聚(logical cohesion):时间内聚(temporal cohesion)通信内聚(communicational cohesion)顺序内聚(sequential cohesion)功能内聚(functional cohesion),4.2.3 模块分割的评价标准(13),偶然内聚(concidental cohesion):一个模块完成多个完全不相关的功能。,4.2.3 模块分割的评价标准(14),逻辑内聚(logical cohesio
9、n):一个模块完成的任务在逻辑上属于相同或相似的一类任务。,4.2.3 模块分割的评价标准(15),4.2.3 模块分割的评价标准(16),时间内聚(temporal cohesion):一个模块完成多个具有时间相关性的功能。,4.2.3 模块分割的评价标准(17),通信内聚(communicational cohesion):一个模块内包含需多个功能,并且这些功能的完成都依赖于相同的公用数据。各个成分合用同一个数据,或者产生同一个输出数据。,4.2.3 模块分割的评价标准(18),顺序内聚(sequential cohesion):一个模块完成多个功能,而每一个功能都有各自的入口点和独立的代
10、码,但功能都依赖于同样的数据结构。各成分顺序执行,前一个成分的输出是后一个成分的输入。功能内聚(functional cohesion):所有成分共同完成一个单一的功能。容易维护。,4.2.3 模块分割的评价标准(19),设计目标:力争强内聚、弱耦合。,4.2.3 模块分割的评价标准(20),模块的信息隐藏 首先列出将来可能发生变化的因素;在划分模块时将这些可能发生变化的因素隐藏在某几个模块内。例如:某程序要求输入K进行合理性检验,然后进行计算,将计算结果存入存储器中。分析可变因素并进行模块划分,画出软件结构图。分析可变因素:1)数据K格式可能变化;2)对K做合理性检验的规则可能变化;3)计算
11、数据的存储设备可能变化。划分模块时将可变因素应分别隐藏在三个模块中,使得任一个变化仅需修改与之相关的一个模块。,4.2.4 模块设计准则(1),尽力提高模块独立性注意模块的可靠性、通用性、可维护性、简单性模块的大小应适中规模模块的深度、宽度、扇出和扇入应适当,4.2.4 模块设计准则(2),深度:指软件结构中模块的层数。宽度:指软件结构内同一层次的模块数的最大值。扇出:指一个模块所调用的模块数。扇入:指有多少上级模块调用它,4.2.4 模块设计准则(3),通常设计得较好的软件结构,顶层扇出高,中间扇出较少,下层调用公用模块。,4.3 软件结构设计的图形工具,4.3.1 层次图和HPIO图 4.
12、3.2 结构图(Structured Chart,SC),4.3.1 层次图和HPIO图(1),IBM公司发明的HIPO图:层次图+输入/处理/输出图(H图)+(IPO图)(Hierachy Input Process Output),4.3.1 层次图和HPIO图(2),层次图,4.3.1 层次图和HPIO图(3),带编号的层次图(H图),4.3.1 层次图和HPIO图(4),HPIO图H图中每一方框(模块)均有一张IPO图对应。,4.3.2 结构图(SC)(1),SD方法在概要设计中的主要表达工具约定,编辑学生记录,读学生记录,学生数据,无此学生,学号,不加区分的数据,数据信息,控制信息,
13、4.3.2 结构图(SC)(2),SC中的简单调用,B,A,C,x,y,z,z,4.3.2 结构图(SC)(3),SC中的选择调用,A,C,B,D,A根据内部判断决定是否调用B,A按另一判定结果选择调用C或D,4.3.2 结构图(SC)(4),SC中的循环调用,A,B,C,A根据内在的循环重复调用B、C等模块,4.3.2 结构图(SC)(5),结构图(SC)举例见P52招干考试成绩管理系统的结构图。,4.4 结构化的设计方法(面向数据流的设计方法)(P65 3.7),4.4.1 基本概念 4.4.2 变换分析设计方法 4.4.3 事务分析设计方法 4.4.4 设计优化(补充),4.4.1 基本
14、概念(1),结构化设计方法(SD)是国际上应用最广,技术上比较完善的系统设计方法。结构化设计方法(SD)是以数据流图为基础的,它定义了把数据流图变换成软件结构的不同映射方法,所以这种方法也称为面向数据流的设计方法。,4.4.1 基本概念(2),面向数据流的设计要解决的任务:,4.4.1 基本概念(3),1、数据流图的分类 变换型数据流图事务型数据流图。,4.4.1 基本概念(4),1)变换型数据流图具有明确的输入、变换(或称主加工)和输出界面的DFD。,4.4.1 基本概念(5),2)事务型数据流图特征:具有在多种事物中选择执行某类事物的能力。,事务中心,接受路径,动作路径,4.4.1 基本概
15、念(6),大型系统DFD中,变换型和事务型结构往往共存:,4.4.1 基本概念(7),2、面向数据流设计方法的设计步骤(P66),4.4.2 变换分析设计方法(1),变换结构由输入、输出和变换中心三个部分组成。变换中心的任务:把系统的逻辑输入加工为系统的逻辑输出。逻辑输入:指距离物理输入端(输入始端)最远的但仍可以被视为系统输入的那些数据流。逻辑输出:指距离物理输出端(输出末端)最远的但仍可以被视为系统输出的那些数据流。,4.4.2 变换分析设计方法(2),具体的设计步骤如下:1、确定输入流和输出流的边界,从而孤立出变换中心,并在数据流图上划分出他们的边界线。,4.4.2 变换分析设计方法(3
16、),2、进行“第一级分解”(设计顶层和第一层模块),4.4.2 变换分析设计方法(4),4.4.2 变换分析设计方法(5),3、进行“第二级分解”(分解SC各分支,自顶向下分解,设计出每个分支的中、下层模块),4.4.2 变换分析设计方法(6),1)输入分支的分解(1),输入分支的分解(2),4.4.2 变换分析设计方法(7),2)输出分支的分解(1),输出分支的分解(2),ME,f8,f9,W,U,f8,f9,V,f10,4.4.2 变换分析设计方法(8),3)中心加工分支的分解,4.4.3 事务分析设计方法(1),事务分析的设计步骤1、在DFD上确定事务中心、接收部分和发送部分。2、画出S
17、C框架,把DFD上的三部分分别映射为事务控制模块、接收模块和处理模块。3、分解细化接收分支和处理分支,完成初始SC,4.4.3 事务分析设计方法(2),练习,对于一个大系统,常常把变换分析和事务分析应用到同一个数据流图的不同部分,由此得到的子结构形成“构件”,可以利用它们构造完整的软件结构。练习:用DFD用变换分析和事务型分析导出初始SC,练习1:招干考试系统的DFD导出初始SC,1登记考生情况,2考前处理,考生,4计算考生成绩总分,6各专业考生按总分排序,7录用,8输出录用通知单,5输出考生成绩单,3输入考生成绩,考生,考生,考生情况文件,9考后考生情况统计,考生,练习2:用DFD用变换分析
18、和事务型分析导出初始SC,C1,C3,D,G,E,J,F,K,L,c1,b1,b2,c3,d,g,f,j,h,e,k,l,m,B1,B2,C2,c2,4.4.4 设计优化(补充)(1),将初始SC根据模块独立性原则进行精化,对模块进行合并、分解、修改、调整,得到高内聚、低耦合模块,得到易于实现、易于测试和易于维护的软件结构,产生设计文档的最终SC。,4.4.4 设计优化(2),改进软件结构设计的指导原则:(1)模块功能的完善化(2)消除重复功能(3)作用范围应在控制范围内(4)减少高扇出争取高扇入(5)模块大小适中(6)降低模块接口的复杂性(7)模块功能可预测,4.4.4 设计优化(3),模块
19、功能的完善化,完整的模块应包括三部分:(1)执行规定功能部分(2)出错处理部分(3)需返回给调用者数据时,返回是否正确结束标志。,4.4.4 设计优化(4),消除重复功能,C,A,C,B,A,B,C,改进前,改进后,4.4.4 设计优化(5),作用范围应在控制范围内 模块的控制范围(控制域):包括模块本身和其下属模块的集合。模块的作用范围(作用域):指受该模块内一个条件判定影响的所有模块的集合。,4.4.4 设计优化(6),模块A的控制域为A、B、C、D、E,当A做出的判断影响到B或C时,最符合规则要求。但A的判定影响到D或E时,增加了A、B、D和A、B、E各组模块之间的控制耦合。A的判定影响
20、到G,使判定影响传递路径更长,这样就增加了许多模块间的耦合,效率更低,需要修改。,4.4.4 设计优化(7),修改方法1:A合并到M中,AM,F,B,C,D,E,G,M,A,F,B,C,D,E,G,修改方法2:F、G下移到A控制域内,4.4.4 设计优化(8),减少高扇出争取高扇入,深度,扇出,扇入,(一个模块 直接调用 的模块数),(调用一个给定模 块的模块个数),4.4.4 设计优化(9),模块大小适中模块过大:可理解程度下降模块过小:开销大于有效操作,系统接口复杂,4.4.4 设计优化(10),降低模块接口的复杂性 接口传递信息应简单且和模块功能一致。,4.4.4 设计优化(11),例:
21、求一元二次方程的根设求根模块调用形式为:(1)QUADROOT(TBL,X)传递系数的数组 存放根的数组(2)QUADROOT(A,B,C,ROOT1,ROOT2)A,B,C为方程系数 ROOT1,ROOT2是两个根,4.4.4 设计优化(12),模块功能可预测 模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。,4.5 系统人机界面设计,按照以用户中心主义的观点,软件设计应该以使用软件的人为中心,应该是这个软件能够为用户提供什么样的功能和怎样提供这些功能。人机界面设计是接口设计的一个重要的组成部分。,4.5.1 用户界面应
22、具有的特性 4.5.2 用户界面的基本类型4.5.3 用户界面的设计过程(P54)4.5.4 界面设计指南(P54),4.5.1 用户界面应具有的特性(1),使用软件的用户特点 用户是懒惰的用户是笨的用户是容易出错的用户是健忘的。用户的注意力很容易涣散用户的脾气不好。,4.5.1 用户界面应具有的特性(2),用户界面应具有的特性 1、可使用性使用简单、具有HELP功能。用户界面中所用术语的标准化和一致性。快速的系统响应和低的系统成本。具有容错能力。2、灵活性考虑用户的特点、能力、知识水平。提供不同的系统响应信息。提供根据用户需求制定和修改界面。3、界面的复杂性与可靠性,4.5.1 用户界面应具
23、有的特性(3),用户界面存在的问题1.系统响应时间:长度、易变性2.用户帮助设施:集成和附加 集成的帮助设施从一开始就设计在软件里面,通常它对用户的工作内容是敏感的,因此用户可以从与刚刚完成的操作有关的主题中选择一个请求帮助。附加的帮助设施是在系统建成后再添加到软件中的,在多数情况下,它实际上是一种查询能力有限的联机用户手册。,4.5.1 用户界面应具有的特性(4),3.出错信息处理:出错信息设计得不好,将向用户提供无用的或误导的信息,反而增加了用户的挫折感。信息应该以用户可以理解的术语描述问题。信息应该提供有助于从错误中恢复的建设性意见。信息应该指出错误可能导致哪些负面后果(例如,破坏数据文
24、件),以便用户检查是否出现了这些问题,并在确实出现问题时予以改正。信息应该伴随着听觉上或视觉上的提示,也就是说,在显示信息时应该同时发出警告声,或者信息用闪烁方式显示,或者信息用明显表示出错的颜色显示。信息不能带有指责色彩,也就是说,不能责怪用户。,4.5.1 用户界面应具有的特性(5),4.命令交互每个菜单都应有对应的命令;命令形式用控制序列(如Ctrl+P)、功能键、键入命令;便于学习和简化记忆命令的难度,给出忘记了命令采取的办法;用户是否可以定制或缩写命令;命令宏代表一个常用的命令序列;所有应用软件都应有一致的命令使用方法。,4.5.2 用户界面的基本类型(1),1、菜单(menu)按照
25、显示方式:正文菜单、图标菜单、正文和图标混合菜单,如“开始”菜单。按屏幕位置和操作风格:固定位置、浮动位置(弹出)、下拉式、嵌入式,4.5.2 用户界面的基本类型(2),2、图 像在用户界面中,加入丰富多彩的画面,将能够更加形象地为用户提供有用的信息,以达到可视化的目的。主要的处理操作有:图像的隐蔽和再现、屏幕滚动和图案显示、动画等。,4.5.2 用户界面的基本类型(3),3、对话框有三种对话形式:必须回答式无需回答式 警告式,必须回答式对话框,无需回答式对话框,警告式对话框,4.5.2 用户界面的基本类型(4),4、窗口(window),标题区,图标区,大小区,退出区,菜单区,滚动区,菜单,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 教案 计算机 0301 0304
链接地址:https://www.31ppt.com/p-5387076.html