版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机学院计算机学院 软件工程课程组软件工程课程组n 概要设计和详细设计阶段的任务是什么?概要设计和详细设计阶段的任务是什么?n 什么是结构化设计方法?什么是结构化设计方法?n 结构化设计与结构化分析的关系?结构化设计与结构化分析的关系?n 什么是面向数据结构的设计方法?什么是面向数据结构的设计方法?n 什么是结构化程序设计?什么是结构化程序设计?n 常用的过程设计工具?常用的过程设计工具?n 两个阶段两个阶段q 概要设计概要设计q 详细设计详细设计n SE核心过程核心过程 数据词典 数 据 流 图 实实 体 关 系 图 状态转换图 加 工 控 制 规 规 格 格 说 说 明 明 数 据 对
2、象 描 述 过程设计 接口设计 体系结构设计 数据设计 1、提高模块独立性、提高模块独立性q 松耦合,高内聚松耦合,高内聚q 增加内聚增加内聚 减少耦合减少耦合n 水平划分水平划分n 垂直划分垂直划分n 按主要功能定义模块结构的各分支按主要功能定义模块结构的各分支n 顶层控制模块,下层输入、处理、输出三个分支顶层控制模块,下层输入、处理、输出三个分支n 优点:功能分离,易修改扩充优点:功能分离,易修改扩充n 缺点:模块接口传递数据多,信息流的整体控制复杂化缺点:模块接口传递数据多,信息流的整体控制复杂化Vertical Partitioning: Factoringn 自顶向下逐层分布工作自顶
3、向下逐层分布工作n 顶层模块控制,低层模块实际处理顶层模块控制,低层模块实际处理n 优点:对低层模块的修改不易引起副作用优点:对低层模块的修改不易引起副作用n 便于将来的维护便于将来的维护2、模块规模适中、模块规模适中q 过大不易理解,分解不充分过大不易理解,分解不充分q 太小则接口开销过大太小则接口开销过大q 注意分解后不应降低模块的独立性注意分解后不应降低模块的独立性optimal numberof modulescost ofsoftwarenumber of modulesmoduleintegrationcostmodule development cost 3、深度、宽度、扇入、扇
4、出适当、深度、宽度、扇入、扇出适当q 深度深度 = 层数层数n 过大表示分工过细过大表示分工过细n 管理模块过分简单,适当管理模块过分简单,适当合并合并q 宽度宽度 = 跨度数的最大值跨度数的最大值n 过大表示系统复杂过大表示系统复杂q扇出扇出 = 模块直接调用模块直接调用/控制的模块数控制的模块数n fan-out 5q扇入扇入 = 直接调用该模直接调用该模块的上级模块数块的上级模块数nfan-in 5AA的扇出的扇出AA的扇入的扇入4、作用域在控制域内、作用域在控制域内q 控制域控制域F 模块本身以及所有直接或间接从属于它的模块模块本身以及所有直接或间接从属于它的模块的集合的集合 q 作用
5、域作用域F 受该模块内一个判定影响的所有模块的集合受该模块内一个判定影响的所有模块的集合MACBABCIf flagThen BElse CM的控制域的控制域= M, A, B, CA的作用域的作用域=B, Cn修改软件结构修改软件结构q判断点上移判断点上移把把A中的中的 if 移到移到M中中q受影响块下移受影响块下移把把C移到移到A下面下面A: if then goto B1 B: B1: A作用域在控制域内作用域在控制域内MACBA的控制域的控制域= A, BA: if then goto M M: M1: goto C A作用域超出了控制域作用域超出了控制域C: 5、降低接口的复杂程度、
6、降低接口的复杂程度q 接口复杂可能表明模块的独立性差接口复杂可能表明模块的独立性差q 接口复杂或不一致(看起来传递的数据接口复杂或不一致(看起来传递的数据间无联系),是紧耦合或低内聚的征兆间无联系),是紧耦合或低内聚的征兆解法解法1Var a,b,c, x1, x2 :real;Begin read(a,b,c); ; write(x1,x2)End., , bbacxa2 21 21 24 42 2解法解法2Type TA=array1.3 of real; TB=array1.2 of real;Var A: TA; B:TB;Begin read(A1, A2, A3); ; write
7、 (B1, B2)End. AAAABA2 2 2 2 2 2 4 4 1 1 3 3 1 1, ,2 2 2 2 1 1 解法解法3Var a,b,c, x1, x2 :real;Begin read(a,b,c); ; write(x1,x2)End. bbacxa2 21,21,24 42 26、单出单入,避免内容耦合、单出单入,避免内容耦合7、模块功能可预测、模块功能可预测q 相同输入必产生相同输出相同输入必产生相同输出q 模块中使用全局变量可能导致不可预测模块中使用全局变量可能导致不可预测A:entry 1:entry 2:n 层次图和层次图和HIPO图图n 结构图结构图n层次图(层
8、次图(Hierarchy Diagram)正文加工系统正文加工系统编辑编辑3.0加标题加标题4.0输出输出2.0存储存储5.0插入插入3.3删除删除3.2追加追加3.1修改修改3.4合并合并3.5列表列表3.6改写改写3.4.1输入输入1.0检索检索6.0编目录编目录7.0格式化格式化8.0n 描述软件结构,而非数据结构描述软件结构,而非数据结构n 矩形框:模块矩形框:模块n 连线:调用关系,而非组成关系连线:调用关系,而非组成关系模块模块a模块模块bn H图图 + IPO图图(Input-process-output Diagram)n 对每个模块附一张对每个模块附一张IPO图图n 每个每个
9、IPO图中应明确标出对应模块的编号图中应明确标出对应模块的编号旧的主文件旧的主文件事务文件事务文件1.校验主记录校验主记录2. 校验校验事务记录事务记录3. 更新更新主记录主记录有效的主记录有效的主记录有效的有效的事务记录事务记录更新后的更新后的主文件主文件被调用:被调用: 调用:调用: 输入:输入: 输出:输出: 处理:处理: 局部数据元素:局部数据元素: 注释:注释:系统:系统:作者:作者:模块:模块:日期:日期:编号:编号:数据传递数据传递控制信息控制信息或或循环循环BAMM1M2M3CD产生最佳解产生最佳解得到输入得到输入计算最佳解计算最佳解输出结果输出结果读输入读输入编辑输入编辑输入
10、结果格式化结果格式化显示结果显示结果输入输入原始输入原始输入原始输原始输入入编辑结果编辑结果解解输输入入解解解解格式化的解格式化的解格式化的格式化的解解n 面向数据流面向数据流(DFD)的设计方法的设计方法n 面向数据结构的设计方法面向数据结构的设计方法n 原型法原型法n基于模块化、自顶向下求精、结构化程序基于模块化、自顶向下求精、结构化程序设计技术基础上发展起来设计技术基础上发展起来n面向数据流的设计方法面向数据流的设计方法n数据流图映射到软件结构数据流图映射到软件结构n用启发式规则对结构进行细化用启发式规则对结构进行细化n DFD的类型决定了映射的方法的类型决定了映射的方法q 变换流变换流
11、q 事务流事务流q 混合型混合型n 所有信息流都可归结为变换流所有信息流都可归结为变换流Internal representationInformationTransform flowOutgoingflowIncomingflowExternal representationTimen当信息流具有明显当信息流具有明显的的“事务事务中心中心”时,时,可归结为事务流可归结为事务流 TTransactionrequest Action paths T = Call one of the several subroutines depending on the type of the incomin
12、g transaction request.n 两种两种DFD的混合体的混合体“变换变换”“事务事务”精化数据流图精化数据流图流类型流类型区分事务中心和区分事务中心和数据接收通路数据接收通路区分输入和区分输入和输出分支输出分支映射成事务结构映射成事务结构映射成变换结构映射成变换结构用启发式设计规用启发式设计规则精化软件结构则精化软件结构导出接口描述和导出接口描述和全程数据结构全程数据结构复查复查详细设计详细设计n 变换设计变换设计n 事务设计事务设计n 综合设计法综合设计法MPIOInternal representationInformationTransform flowOutgoingf
13、lowIncomingflowExternal representationTime功能:功能: 通过模通过模 - 数转换实现传感器和微处理机接口;数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据;在发光二极管面板上显示数据; 指示每小时英里数指示每小时英里数(mph),行驶的里程,每加仑油行驶的里程,每加仑油行驶的英里数行驶的英里数(mpg)等等;等等; 指示加速或减速;指示加速或减速; 如果车速超过如果车速超过55mph ,则发出警告铃声。则发出警告铃声。燃料流燃料流 传感器信号传感器信号SPS旋转信号旋转信号读读旋转旋转信号信号收集收集和求和求平均平均确定确定加加/ /减减速
14、速转换转换成成转转/ /分分计算计算里程里程计算计算mph,超超速值速值产生产生加加/ /减减速显示速显示计算计算燃料燃料消耗消耗计算计算gph读和读和校核校核产生产生mpg显示显示产生产生mph显示显示发出发出铃声铃声产生产生里程里程显示显示SPS SPS箭头指示箭头指示燃烧流燃烧流上箭头上箭头水平线水平线下箭头下箭头rpmrpmgphmphmpgmph超速值超速值英里英里显示显示铃声铃声mph显示显示mpg显示显示MIO燃料流燃料流 传感器信号传感器信号SPS旋转信号旋转信号读读旋转旋转信号信号收集收集和求和求平均平均确定确定加加/ /减减速速转换转换成成转转/ /分分计算计算里程里程计算
15、计算mph,超超速值速值产生产生加加/ /减减速显示速显示计算计算燃料燃料消耗消耗计算计算gph读和读和校核校核产生产生mpg显示显示产生产生mph显示显示发出发出铃声铃声产生产生里程里程显示显示SPS SPS箭头指示箭头指示燃烧流燃烧流上箭头上箭头水平线水平线下箭头下箭头rpmrpmgphmphmpgmph超速值超速值英里英里显示显示铃声铃声mph显示显示mpg显示显示数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号输入控输入控制制输出控输出控制制ADCBMI每个加工映射成受每个加工映射成受P 控制的一个下层模块控制的一个下层模块P由边界向
16、外移动,将由边界向外移动,将每个遇到的加工映射每个遇到的加工映射成成 I 控制下的一个低控制下的一个低层模块层模块I沿输出通路向外移动沿输出通路向外移动,将每个加工映射成直将每个加工映射成直接或间接受接或间接受O控制的控制的低层模块低层模块O数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号计算计算gph转换成转换成rpm读燃料流读燃料流收集收集sps读旋转信号读旋转信号确定确定加加/ /减速减速计算计算mph计算计算mpg计算计算里程里程加加/ /减速减速显示显示显示显示mph显示显示mpg显示显示里程里程发出发出铃声铃声发光二极管发光二极管
17、显示显示转换成转换成rpm数字仪表板数字仪表板控制控制数据转换数据转换控制控制驱动仪表板驱动仪表板接收传感器接收传感器信号信号计算计算gph读燃料流读燃料流读旋转信号读旋转信号确定确定加加/ /减速减速计算计算mph计算计算mpg计算计算里程里程加加/ /减速减速显示显示显示显示mph显示显示mpg显示显示里程里程发出发出铃声铃声发光二极管发光二极管显示显示转换成转换成rpmn为每个模块附一个简要说明为每个模块附一个简要说明 / IPO表表q 进出该模块的信息(接口描述)进出该模块的信息(接口描述)q 模块内部的信息模块内部的信息q 过程陈述,包括主要判定点及任务等过程陈述,包括主要判定点及任
18、务等q 对约束和特殊特点的简短讨论对约束和特殊特点的简短讨论T TTransactionrequest A c t i o n paths IIIBACMIIITABCIIITBACn 变换设计变换设计n 事务设计事务设计n 优化优化q 控制模块的合并控制模块的合并q 控制模块的分解控制模块的分解 n 优点优点q 自顶向下,逐步求精自顶向下,逐步求精q 各模块可单独设计、编码、测试、修改各模块可单独设计、编码、测试、修改n 缺点缺点q 纸上设计,长时间偏离软件实体纸上设计,长时间偏离软件实体q 开发周期长开发周期长q 剥离了数据剥离了数据/功能的关系功能的关系q 顶在何方?下到何处?顶在何方?
19、下到何处?n Jackson方法方法(Jackson System Development, JSD)n Warnier方法方法n 顺序结构顺序结构n 选择结构选择结构n 重复结构重复结构 A B C D A B C D A B* A B C D A B C D A B A B* n 画出一输入、输出数据结构的画出一输入、输出数据结构的Jackson图图n 找输入找输入输出数据结构的对应关系输出数据结构的对应关系n 以输出数据结构为基础导出程序结构以输出数据结构为基础导出程序结构q 有关系的数据单元有关系的数据单元 合画一个处理框合画一个处理框q 输入数据结构中余下的数据单元输入数据结构中余下
20、的数据单元 各画一个各画一个q 输出数据结构中余下的数据单元输出数据结构中余下的数据单元 各画一个各画一个n 列出所有操作、条件列出所有操作、条件n 伪码表示程序伪码表示程序n一个一个正文文件正文文件由若干个记录组成,每个记录是一由若干个记录组成,每个记录是一个个字符串字符串。要求统计每个记录中。要求统计每个记录中空格字符空格字符的个数,的个数,以及文件中空格字符的总个数。以及文件中空格字符的总个数。n要求的输出数据格式是:每复制一行要求的输出数据格式是:每复制一行输入字符串输入字符串之后,另起一行印出这个之后,另起一行印出这个字符串中的空格数字符串中的空格数,最,最后印出文件中后印出文件中空
21、格的总个数空格的总个数。 正文文件正文文件 字符串字符串* 字符字符* 空格空格 非空格非空格 分析字符分析字符* 处理空格处理空格 处理非空格处理非空格 正文文件正文文件 字符串字符串* 字符字符* 空格空格 非空格非空格 分析字符串分析字符串 分析字符分析字符* 处理空格处理空格 处理非空格处理非空格 统计空格统计空格seq 打开文件打开文件 读入字符串读入字符串 totalsum:0程序体程序体iter until 文件结束文件结束 处理字符串处理字符串seq 印字符串印字符串seq 印出字符串印出字符串 印字符串印字符串end sum:= 0 pointer: l 分析字符串分析字符串
22、 iter until 字符串结束字符串结束 分析字符分析字符select 字符是空格字符是空格 处理空格处理空格seq sum:sum+1 pointer: pointer +1 处理空格处理空格end 分析字符分析字符or 字符不是空格字符不是空格 处理非空格处理非空格seq pointer:= pointer +1 处理非空格处理非空格end 分析字符分析字符end 分析字符串分析字符串end 印空格数印空格数Seq 印出空格数目印出空格数目 印空格数印空格数end totalsum: totalsum + sum 读入字符串读入字符串 处理字符串处理字符串end 程序体程序体end 印
23、总数印总数seq 印出空格总数印出空格总数 印总数印总数end 关闭文件关闭文件 停止停止 统计空格统计空格endn 优点优点q 面向数据的方法面向数据的方法q 适合于以数据为主,计算较简单的事务型处理系统适合于以数据为主,计算较简单的事务型处理系统q 简化数据处理部分的设计简化数据处理部分的设计n 缺点缺点q 模块与独立性原则没有给予应有重视模块与独立性原则没有给予应有重视q 未提供对复杂系统设计过程的支持未提供对复杂系统设计过程的支持q 不适合于大型实时系统,非数据处理系统的开发不适合于大型实时系统,非数据处理系统的开发l 原型法又称为原型法又称为“快速弱功能快速弱功能”法法l 其核心思想
24、是快速建立一个实现了系统若干功能的其核心思想是快速建立一个实现了系统若干功能的( (不要求全不要求全) )可执行原型,来启发、揭示并能不断完善,直到满足用户全部要求为可执行原型,来启发、揭示并能不断完善,直到满足用户全部要求为止止 l 建立规范模型的步骤建立规范模型的步骤 1.1.弄清用户设计者的基本信息需求弄清用户设计者的基本信息需求2.2.开发初始原型系统开发初始原型系统 3.3.用原型系统完善用户设计者的需求用原型系统完善用户设计者的需求4.4.修改和完善原型系统修改和完善原型系统需求报告开发原型满意完善业务系统interfacedesignarchitecturaldesigndata
25、designTHE DESIGN MODELproceduraldesignn详细设计的任务详细设计的任务n详细设计的常用工具详细设计的常用工具n详细设计的过程详细设计的过程n详细设计复审详细设计复审n详细设计文档详细设计文档n详细设计的总体目标是确定每个单元的具体详细设计的总体目标是确定每个单元的具体实现算法,即对软件结构图中的每个模块进行分实现算法,即对软件结构图中的每个模块进行分析、设计出全部必要的过程细节,并给予清晰的析、设计出全部必要的过程细节,并给予清晰的表达,表达, 从而在编码阶段可以把这个描述直接翻译从而在编码阶段可以把这个描述直接翻译成某种程序设计语言书写的程序。成某种程序设
26、计语言书写的程序。n详细设计也叫做过程设计或程序设计,它不详细设计也叫做过程设计或程序设计,它不同于编码或编程。在过程设计阶段,要决定各个同于编码或编程。在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。为此模块的实现算法,并精确地表达这些算法。为此应提供详细设计的表达工具。应提供详细设计的表达工具。l流程图流程图 lPDA PDA l伪码伪码nPDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。有多种不同的形式。n伪码的语法规则分为“外语法”和“内语法”。nPDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时它又有灵活、自由的表示实际操作和条件的内语法Declare intDeclare int array A array AGet(ArrayGet(Array A) A)MAX=A(1)MAX=A(1)For i=2 To NFor i=2 To N If MAXA(i If MAXA(i) ) Set MAX=A(i Set MAX=A(i) ) EndIf EndIfEndForEndForPut(MAXPut(MAX) )n为每个模块确定采用的算法,并用适当的工具表为每个模块确定采用的算法,并用适当的工具表达算法的过程,给出详细的描述。达算法的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁省2025秋九年级英语全册Unit7Teenagersshouldbeallowedtochoosetheirownclothes易错考点专练课件新版人教新目标版
- 2025年秘鲁玛卡项目建议书
- PPH术后活动量控制
- 女性运动与健身指导
- 急诊PCI术后患者康复护理措施
- 吸烟危害的课件
- 产后抑郁的饮食调理与营养支持
- 听课件浪费时间
- 大脑隐球菌病的护理
- 胃癌患者的临终关怀与护理
- 危重患者的容量管理
- 2025秋四年级上册劳动技术期末测试卷(人教版)及答案(三套)
- 2025年应急物资准备安全培训试卷及答案:物资管理人员应急物资使用测试
- 电商售后客服主管述职报告
- 2025昆明市呈贡区城市投资集团有限公司及下属子公司第一批招聘(12人)笔试考试参考试题及答案解析
- 受控文件管理流程
- GB/T 30341-2025机动车驾驶员培训教练场技术要求
- 2025年黑龙江省哈尔滨市中考数学真题含解析
- 2026年湖南现代物流职业技术学院单招职业技能考试题库附答案
- 河北省2025年职业院校嵌入式系统应用开发赛项(高职组)技能大赛参考试题库(含答案)
- 2025译林版新教材初中英语八年级上册单词表(复习必背)
评论
0/150
提交评论