软件设计基础课件.ppt

上传人:石*** 文档编号:87290405 上传时间:2023-04-16 格式:PPT 页数:82 大小:3.91MB
返回 下载 相关 举报
软件设计基础课件.ppt_第1页
第1页 / 共82页
软件设计基础课件.ppt_第2页
第2页 / 共82页
点击查看更多>>
资源描述

《软件设计基础课件.ppt》由会员分享,可在线阅读,更多相关《软件设计基础课件.ppt(82页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、软件件设计基基础第1页,此课件共82页哦 是后续开发步骤及软件维护工作的基础。是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结如果没有设计,只能建立一个不稳定的系统结构构 软软 件件 设设 计:计:第2页,此课件共82页哦软软 件件 工工 程程第第第第 7 7 7 7 章章章章 软软软软 件件件件 设设设设 计计计计 基基基基 础础础础概概 念念基本概念基本概念基本概念基本概念设计设计设计设计过程过程过程过程设计设计设计设计工具工具工具工具说明说明与评审与评审第3页,此课件共82页哦7.1.1 7.1.1 软件设计过程软件设计过程TextText技技术术角角度度与与

2、管管理理角角度度详细设计详细设计概要设计概要设计过程设计过程设计数据设计数据设计结构设计结构设计概要设计概要设计概要设计概要设计根据需求确定软件和数据的总体根据需求确定软件和数据的总体框架框架详细设计详细设计详细设计详细设计将将“概设概设”结果进一步精化成结果进一步精化成算法表示和数据结构算法表示和数据结构结构设计结构设计结构设计结构设计确定程序各主要部件之间的关系确定程序各主要部件之间的关系数据设计数据设计数据设计数据设计把信息描述转换为实现软件所把信息描述转换为实现软件所要求的数据结构要求的数据结构过程设计过程设计过程设计过程设计完成每一部件的过程化描述完成每一部件的过程化描述第4页,此课

3、件共82页哦7.1.2 7.1.2 抽象与逐步求精抽象与逐步求精抽抽抽抽 象象象象抽出事务的本质特性而暂时不考虑它们抽出事务的本质特性而暂时不考虑它们的细节。是控制复杂性的基本策略的细节。是控制复杂性的基本策略。定义定义需求需求设计设计实现实现软件系统软件系统被描述为被描述为基于计算基于计算机的大系机的大系统的一个统的一个组成部分组成部分软件用问软件用问题域约定题域约定的习惯用的习惯用语表达语表达概要设计概要设计过渡到详过渡到详细设计时,细设计时,抽象级再抽象级再一次降低一次降低编码完成编码完成后达到了后达到了抽象的最抽象的最低级低级过程抽象过程抽象过程抽象过程抽象把完成一个特定功能的动作序列

4、抽象为把完成一个特定功能的动作序列抽象为一个过程名和参数表一个过程名和参数表数据抽象数据抽象数据抽象数据抽象把一个数据对象的定义(或描述)抽象把一个数据对象的定义(或描述)抽象为一个数据类型名为一个数据类型名第5页,此课件共82页哦抽象1:该CAD软件系统配有与绘图员进行可视化通信的图形界面,能用鼠标代替绘图工具画各种直线和曲线;能完成所有几何计算以及所有截面视图和辅助视图的设计。图形设计的结果保存在图形文件中,图形文件可以包含几何的、正文的和其他各种补充设计信息。例例7.1 7.1 考虑适用于低级考虑适用于低级CADCAD的图形软件包的图形软件包CAD软软件任务件任务创建二维创建二维图形图形

5、管理图形管理图形文件文件用户界用户界面面显示图形显示图形任务任务抽象抽象2:CAD软件任务;软件任务;用户界面子任务;用户界面子任务;创建二维图形子任务;创建二维图形子任务;显示图形子任务;显示图形子任务;管理图形文件子任务;管理图形文件子任务;end CAD.抽象抽象3(仅以(仅以“创建二维图形任务创建二维图形任务”为例)为例)PROCEDURE创建二维图形 REPEAT UNTIL END REPETITION;END PROCEDURE.;DO WHILE 数字仪接口任务;数字仪接口任务;判断作图请求;判断作图请求;线:画线任务;线:画线任务;圆:画圆任务;圆:画圆任务;END;DO W

6、HILE 键盘接口任务;键盘接口任务;选择分析或计算;选择分析或计算;辅助视图:辅助视图任务;辅助视图:辅助视图任务;截面视图:截面视图任务;截面视图:截面视图任务;END;第6页,此课件共82页哦数据对象:TYPE drawing IS STRUCTURE DEFINED number IS STRING LENTH(12);geometry DEFINED notes IS STRING LENTH(256);bom DEFINED END drawing TYPE;数据抽象数据抽象 blueprint IS INSTANCE OF drawing;或或 schematic IS INST

7、ANCE OF drawing;第7页,此课件共82页哦 逐步求精逐步求精逐步求精逐步求精逐步求精逐步求精为了能集中精力解决主要问题主要问题而尽量推迟对问题细节问题细节的考虑抽象求精第8页,此课件共82页哦7.1.3 7.1.3 模块化与信息隐藏模块化与信息隐藏模块模块理论理论依据依据理想的理想的属性属性大小大小I/O、功能,程序、数据、功能,程序、数据程序、程序段、子程序程序、程序段、子程序程序、程序段、子程序程序、程序段、子程序一个功能、易理解、独立一个功能、易理解、独立一个功能、易理解、独立一个功能、易理解、独立例:库存管理系统的模块划分例:库存管理系统的模块划分事务接收模块事务接收模块

8、事务接收模块事务接收模块更新库存清单更新库存清单订货处理订货处理生成报表生成报表生成报表生成报表例:人事管理系统例:人事管理系统输入职工档案职工档案管理系统生成职工档案报表系统最小成本最小成本区域区域MO软件总成本软件总成本用于接口的成本用于接口的成本每个模块成本之和每个模块成本之和模块总数模块总数成本或成本或工作量工作量信息隐藏信息隐藏内聚度内聚度耦合度耦合度分分 治治 法法:C(P1+P2)C(P1)+C(P2)C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2E(P1+P2)E(P1)+E(P2第9页,此课件共82页哦有人说,模块化是为了使一个复杂的大型程序能被人

9、的智力所管理,软件应该具备的唯一属性。如果一个大型程序仅由一个模块组成,它将很难被入所理解。下面根据人类解决问题的一般规律,论证上面的结论。设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量(时间)。对于两个问题Pl和P2,如果 C(P1)C(P2)即P1比P2复杂,显然 E(PI)E(P2)即问题越复杂,所需的工作量越大。根据人类解决一般问题的经验,另一个有趣的规律是 C(P1十P2)C(PI)十C(P2)也就是说,如果一个问题由Pl和P2两个问题组合而成那么它的复杂程序大于分别考虑每个问题时的复杂程度之和。综上所述,得到下面的不等式 E(Pl十P2)E(PI)十E(

10、P2)第10页,此课件共82页哦这个不等式导致“各个击破”的结论把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。由上面的不等式似乎还能得出下述结论:如果无限地分割软件,最后为了开发软件而需要的工作量也就小得可以忽略了。事实上,还有另一个因素在起作用,从而使得上述结论不能成立。参看上图,当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本(工作量)确实减少了;但是,随着模块数目增加,设计模块问接口所需要的工作量也将增加。根据这两个因素,得出了图中的总成本曲线。每个程序都相应地有一个最适当的模块数目M,使得系统的开发成本最小。虽然目前我们还不能精确地决

11、定M的数值,但是在考虑模块化的时候总成本曲线确实是有用的指南。第11页,此课件共82页哦信息隐藏信息隐藏模块内所含信息对那些不需要这些信息的模块模块内所含信息对那些不需要这些信息的模块不可访问不可访问,每个模块只完成每个模块只完成一个一个相对相对独立独立的特定的特定功能功能。应用模块化原理时,自然会产生的一个问题是:“为了得到最好的一组模块,应该怎样分解软件呢?”信息隐蔽原理指出:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。局部化的概念和信息隐蔽概念是密切相关的。所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用

12、局部数据元素是局部他的一个例子。显然,局部化有助于实现信息隐蔽。“隐蔽”意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。第12页,此课件共82页哦信息隐藏信息隐藏如果在测试期间和以后约软件维护期间需要修改软件,那么使用信息隐蔽原理作为模块化系统设计的标准就会带来极大好处。因为绝大多数数据和过程对于软件的其他部分而言是隐蔽的(也就是“看”不见的),在修改期间由于疏忽而引入的错误就很少可能传播到软件的其他部分。第13页,此课件共82页哦模块独立性模块独立性(Module independence)好设计的关键:每个模块完成一个相

13、对独立的子功能,一个相对独立的子功能,并且与其它模块间的接口简单模块间的接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。模块独立性模块独立性 第14页,此课件共82页哦为什么模块的独立性很重要呢?主要有两条理由:第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。第二,独立的模块比较容易测

14、试相维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“插入”模块。总之,模块独立是好设计的关键,而设计又是决定软件质量的关键环节。模块独立性模块独立性 第15页,此课件共82页哦独立性的度量:独立性的度量:耦合耦合(Coupling)&(Coupling)&内聚内聚(Cohesion)(Cohesion)模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。以下分别详细阐述。第16页,此课件共82页哦内聚标志一个模块内各个元素被此结合的紧密

15、程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。第17页,此课件共82页哦低级内聚度(低级内聚度(3个)个)一个模块内各成分为完成一组功能而组合在一一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散起,它们相互之间即使有关系,也很松散。1偶然偶然有时在写完一个程序之后,发现一组语句在两处或多处出现,于是把这些语句作为一个模块以节省内存,这样就出现了偶然内聚的模块 第18页,此课件共82页哦一个模块完成的诸任务逻辑上相关一个模

16、块完成的诸任务逻辑上相关 2逻辑逻辑读入分数平均/最高?计算平均分计算最高分输出结果例如一个计算全部同学平均分和最高分的模块。无论计算哪种分数,都要经过读入全班学生分数,进行计算,输出计算结果等步骤。实际上除中间的一步须按不同的方法计算外,前、后这两步都是相同的。把这两种在逻辑上相似的功能放在一个模块中,就可以省去程序中的重复部分。缺点是执行中要从模块外引入用作判断的开关键,从而增加了块间的耦合 第19页,此课件共82页哦如果一个模块包含的诸任务必须在同一时间段如果一个模块包含的诸任务必须在同一时间段内执行。内执行。例如一个初始化模块3时间时间A:Read inputsfrom diskfro

17、m tapefrom 第20页,此课件共82页哦在偶然内聚的模块中,各种元素之间没有实质性联系,很可能在一种应用场合需要修改这个模块,在另一种应用场合又不允许这种修改,从而陷入困境。事实上,偶然内聚的模块出现修改错误的概率比其他类型的模块高得多。在逻辑内聚的模块中,不同功能混在一起,合用部分程序代码,即使局部功能的修改有时也会影响全局。因此这类模块的修改也比较困难。时间关系在一定程度上反映了程序的某些实质,所以时间内聚比逻辑内聚好一些。这三种内聚为低内聚。第21页,此课件共82页哦中级内聚度(中级内聚度(2个)个)模块内成分彼此相关,并且必须模块内成分彼此相关,并且必须按特定的次序执行按特定的

18、次序执行4过程过程enter datacheck datamanipulate data循环体计算累积事务记录累积销售额累积订货量循环传送事务记录给计算累积模块,得到累积订货量之后,也得到了累积销售量。第22页,此课件共82页哦模块中各成分都将对数据结构的同一区域进行操作,即如果模块中各成分都将对数据结构的同一区域进行操作,即如果模块中所有元素都使用同一个输入数据和(或)产生同一个模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚。输出数据,则称为通信内聚。5通信通信模块模块A从文件从文件FILE读出数据读出数据1.由数据产生报表一由数据产生报表一2.由数据产生报表二

19、由数据产生报表二开领书单登记售书售书登记表领书单发票修改删除文件第23页,此课件共82页哦高级级内聚度(高级级内聚度(2个)个)模块内的各处理成分均与同一功能相关,且这些模块内的各处理成分均与同一功能相关,且这些处理必须顺序执行处理必须顺序执行6顺序顺序这类模块中的各组成部分是顺序执行的。在通常情况下,上一个处理框的输出就是下一个处理框的输入。建立方程组系数矩阵高斯消除法回代第24页,此课件共82页哦模块内所有成分形成一个整体,模块内所有成分形成一个整体,完成单个功能完成单个功能7功能功能1.输入系数输入系数2.求方程的根求方程的根3.打印方程的根打印方程的根求一元二次方程求一元二次方程根的模

20、块根的模块第25页,此课件共82页哦七种七种“内聚内聚模块模块”的性能比较的性能比较形式形式评价评价可修改可修改性性可读性可读性黑箱程度黑箱程度通用性通用性偶然偶然最坏最坏最坏最坏最坏最坏黑箱黑箱好好逻辑逻辑最坏最坏最坏最坏不好不好不完全黑不完全黑好好时间时间不好不好不好不好中中不完全黑不完全黑中中过程过程中中中中中中半透明半透明不好不好通信通信中中中中中中半透明半透明不好不好顺序顺序好好好好好好透明透明最坏最坏功能功能好好好好好好透明透明最坏最坏第26页,此课件共82页哦 耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接

21、口的数据。在软件设计中应该追求尽可能松散耦合的系统。在这样的系统中可以研究、测试或维护任何一个模块,而不需要对系统的其他模块有很多了解。此外,由于模块间联系简单,发生在一处的错误传播到整个系统的可能性就很小。因此,模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。Great deal of dependenceIndependentHighly coupled Loosely coupledUncoupled 第27页,此课件共82页哦模块间的耦合模块间的耦合 耦合:耦合:表示一个软件结构内各个模块之间的互连程度,尽量选用松散耦合的系统1.非直接耦合:非直接耦合:两个模块中任

22、一个,都不依赖于对方能独立工作。如果两个模块中的两个模块中任一个,都不依赖于对方能独立工作。如果两个模块中的每一个都能独立地工作而不需要另一个模块的存在,那么它们彼此每一个都能独立地工作而不需要另一个模块的存在,那么它们彼此完全独立,这意味着模块间无任何连接,耦合程度最低,模块的独完全独立,这意味着模块间无任何连接,耦合程度最低,模块的独立性最高。见图中的模块立性最高。见图中的模块1和模块和模块2的关系。它们之间是同级模块,的关系。它们之间是同级模块,互相之间没有信息的传统。但是,在一个软件系统中不可能所有互相之间没有信息的传统。但是,在一个软件系统中不可能所有模块之间都没有任何连接。模块之间

23、都没有任何连接。1.1.非直接耦合非直接耦合 -2.-2.数据耦合数据耦合模块1模块2非直接耦合模块3第28页,此课件共82页哦模块间的耦合模块间的耦合1.1.非直接耦合非直接耦合 -2.-2.数据耦合数据耦合2.数据耦合数据耦合两个模块间通过参数交换信息,两个模块间通过参数交换信息,而信息仅限于数据而信息仅限于数据开发货单开发货单开发货单开发货单计算金额计算金额计算金额计算金额单价单价单价单价数量数量数量数量金额金额金额金额第29页,此课件共82页哦3.3.特征耦合特征耦合计算水费和电费计算水费和电费计算水费计算水费计算电费计算电费住户详情住户详情水费水费住户详情住户详情电费电费计算水量和电

24、费计算水量和电费计算水费计算水费计算电费计算电费水费水费电费电费电费电费本月用水量本月用水量本月用电量本月用电量 住户详情数据结构中包括:住户详情数据结构中包括:“本月用水量本月用水量”、“本月用电量本月用电量”。“特征特征耦合耦合”图可改进图可改进“数据数据耦合耦合”图图如果两个模块都与同一个数据结构有关,则为特征耦合。第30页,此课件共82页哦4.当模块当模块A向模块向模块B所传递的信息控制了所传递的信息控制了B的内部的内部逻辑。逻辑。4 4.控制控制耦合耦合读入分数平均/最高?计算平均分计算最高分输出结果当调用这一模块时,调用模块必须先把一个控制信号(平均分/最高分)传递给它,以便选择所

25、需操作。因此必须知道被控模块的的内部结构,从而增加了模块间的相互依赖。第31页,此课件共82页哦5.5.外部耦合外部耦合5.若干模块均与同一个外部环境关联。若干模块均与同一个外部环境关联。如:I/O、格式、通信协议。一组模块都访问同一全局变量而不是同一全局数据结构就是外部耦合。第32页,此课件共82页哦 6.6.公共公共耦合耦合-7.-7.内容内容耦合耦合(病态病态耦合耦合)6.如果两个模块都和同一个公共数据域有关,即如果两个模块都和同一个公共数据域有关,即一组模块都访问同一全局数据结构就是公共耦合ABC公用数据第33页,此课件共82页哦7.7.一个模块和另一个模块的内部属性有一个模块和另一个

26、模块的内部属性有关关 (运行程序和内部数据运行程序和内部数据)。如:一个模块使用另一个模块内部的数据或控制信息;一个模块直接转移到另一个模块。模块模块A中中TRC:模块模块B中中GO TO TRC第34页,此课件共82页哦设计模块时,应以数据设计模块时,应以数据设计模块时,应以数据设计模块时,应以数据耦合耦合为主,辅以特征为主,辅以特征为主,辅以特征为主,辅以特征耦合耦合与控制与控制与控制与控制耦合耦合,消除公共消除公共消除公共消除公共耦合耦合和内容和内容和内容和内容耦合耦合。七种七种“耦合模块耦合模块”的性能比较的性能比较耦合方式耦合方式对连锁反对连锁反应的影响应的影响可修改性可修改性可读性

27、可读性通用性通用性非直接非直接弱弱好好好好好好数据数据弱弱好好好好好好特征特征弱弱中中中中中中控制控制中中不好不好不好不好不好不好外部外部中中不好不好不好不好不好不好公共公共强强不好不好最坏最坏最坏最坏内容内容最强最强最坏最坏最坏最坏最坏最坏第35页,此课件共82页哦耦合、内聚与模块独立性的关系耦合、内聚与模块独立性的关系第36页,此课件共82页哦7.1.4 软件总体结构设计(software architecture)目标:模块化的程序结构、明确各模块之间的控制目标:模块化的程序结构、明确各模块之间的控制关系、说明程序的输入输出数据流、进一步协调程关系、说明程序的输入输出数据流、进一步协调程

28、序结构和数据结构。序结构和数据结构。软件软件结构组成结构组成系统中所有系统中所有过程性部件过程性部件(即模块即模块)构成的构成的层次结构层次结构(即程序结构即程序结构)对应于对应于程序结构的程序结构的输入输出输入输出数据结构数据结构第37页,此课件共82页哦结构设计原则第38页,此课件共82页哦结构设计原则2.模块规模适中:过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。1.提高模块独立性提高模块独立性 争取低耦合、高内聚(增加内聚争取低耦合、高内聚(增加内聚 减少耦合)减少耦合)第39页,此课件共82页哦 深度=分层的层数。过大表示分工过细。宽度=同一层上模块数的最大值。过

29、大表示系统复杂度大。3.选择适当的深度、宽度、扇出和扇入选择适当的深度、宽度、扇出和扇入 第40页,此课件共82页哦 扇出=一个模块直接调用控制的模块数。3 fan-out 9AA的扇出的扇出AA的扇入的扇入 扇入扇入=直接调用该模块直接调用该模块的模块数的模块数在不破坏独立性的前提下,在不破坏独立性的前提下,fan-in 大的比较好。大的比较好。第41页,此课件共82页哦4 作用域在控制域内MACB例如:例如:M的控制域为的控制域为 M,A,B,C 模块模块控制域:模块本身和其下级模块(即可供它调用控制域:模块本身和其下级模块(即可供它调用的模块)的模块)模块模块作用域:受这个模块中判定所影

30、响的模块。作用域:受这个模块中判定所影响的模块。本规则的含义是:本规则的含义是:(1)作用域不要超出控制域的范围)作用域不要超出控制域的范围(2)软件系统的判定,其位置离受它控制的模块越近)软件系统的判定,其位置离受它控制的模块越近越好越好第42页,此课件共82页哦A:if then goto B1 B:B1:作用域在控制域内作用域在控制域内A:if then goto M1 M:M1:goto C1 作用域超出了控制域作用域超出了控制域上例右边中上例右边中A的作用超出了控制域。改进方法之一,可以把的作用超出了控制域。改进方法之一,可以把A中的中的 if 移到移到M中;方法之二,可以把中;方法

31、之二,可以把C移到移到A下面。下面。第43页,此课件共82页哦5、降低接口的复杂程度:接口复杂可能表明模块的独立性差。6、单出单入,避免内容耦合。7、模块功能可预测 相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导致不可预测。第44页,此课件共82页哦7.2 软件过程设计技术和工具结构化结构化结构化结构化结构化结构化程序设计程序设计程序设计程序设计程序设计程序设计是程序设计技术,它采用自顶向下逐步求精是程序设计技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。的设计方法和单入口单出口的控制构件。结结结结构构构构化化化化设设设设计计计计图图图图形形形形表表表表示

32、示示示法法法法盒图盒图盒图盒图流程图流程图流程图流程图判定树判定树判定表判定表7.2.1 结构化程序设计结构化程序设计第45页,此课件共82页哦7.2.2 图形表示法1流程图(也称为程序框图)是最常用的一种表示法,“顺序”、“分支”和“循环”三个基本控制构件用流程图表达的形式如图8-2-1所示。F第二个任务第二个任务顺序结构顺序结构then部分部分else部分部分do while循环循环第一个任务第一个任务T分支条件分支条件If then else结构结构循环条件循环条件循环体循环体TF图图8-2-1 流程图构件流程图构件 第46页,此课件共82页哦7.2.2 图形表示法2盒图也称为N-S图或

33、Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。第一个任务第一个任务第二个任务第二个任务第三个任务第三个任务顺序结构顺序结构else部分部分then部分部分条件条件FTif-then-else结构结构do-while部分部分循环条件循环条件循环结构循环结构图图8-2-3 盒图的构件盒图的构件第47页,此课件共82页哦3PAD图 问题分析图(Problem Anslysis Diagram,简称PAD图),是由日本日立公司的二村良彦等人于1973年提出的,它用二维树图形表示程序流程,是一种改进的图形描述方式,完全支持SP方法。近年来在软件开发中得到了广泛使用,并

34、且越来越受到人们的赞赏。PAD因的基本符号见下图。第48页,此课件共82页哦第49页,此课件共82页哦 与其它的详细设计描述工具相比,问题分标图具有以下优点:(1)用PAD图表达的程序过程呈树形结构,这种图容易翻译成程序代码。(2)用PAD图描绘的程序结构清晰。图中最左边的竖线是程序的主线,表示第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。(3)用PAD图表达程序逻辑,易读、易懂、易记。PAD图是二维树形结构,从图中最左边的竖线上端的结点开始,自上而下、自左至右顺序执行,遍历所有的结点。第50页,此课件共82

35、页哦(4)PAD图既可描述程序,又可描绘数据结构。(5)PAD图完全支持自顶向下、逐步求精的结构化方法。开始设计时设计者可以定义一个抽象的程序,随着设计工作的深入,通过使用定义符号(def)逐步增加细节,直到完成详细设计。(6)沿着PAD的外边轮廓机械地走一遍,俗称“走树”,可以方便地实现编程。这步工作可由人工完成,也可以利用PAD自动生成程序完成。PAD图为COBOL、FORTRAN和PASCAL等高级语言都提供了一套相应的图形符号,每种控制语句都有一个图形符号与之对应。所以,很容易将PAD图转换成高级语言源程序。这是PAD图的最大的优点之一。第51页,此课件共82页哦7.2.3 判定表与判

36、定树判定表由四部分组成:判定表由四部分组成:左上部列出所有条件左下部列出所有可能的动作右上部所有可能的条件组合(矩阵)右下部条件组合与动作之间的对应关系用于:条件复杂,根据这些条件的组合选择动作用于:条件复杂,根据这些条件的组合选择动作判定表的每一列可解释为一条处理规则判定表的每一列可解释为一条处理规则第52页,此课件共82页哦7.2.3 判定表与判定树【例7.2】问题处理描述:耗电记费系统可以采用固定价格收费、浮动价格收费和其他方式收费三种方式。若采用固定价格方式收费,对每月耗电100kWh以下的用户只征收最低标准费,超过100kWh的用户按价格A收费;若采用浮动价格方式收费,则每月耗电10

37、0kWh以下的用户按价格A收费,超过100kWh的用户按价格B收费。第53页,此课件共82页哦表71 判定表规 则12345 固定价格方式 浮动价格方式 耗电100kW.h 耗电100kW.h TFTFTFFTFTTFFTFTFF 收取最低标准费 按价格A收费 按价格B收费 其他处理 条件条件动作动作第54页,此课件共82页哦【例7.2】判定树 耗电100kWh 收取最低标准费 固定方式 耗电100kWh 按价格A收费 耗电100kWh 按价格A收费耗电收费 浮动方式 耗电100kWh 按价格表B收费 其他方式 其他处理图8-2-5 用判定树表示计算耗电收费的算法 第55页,此课件共82页哦7

38、.2.3 判定表与判定树判定树的优点:形式简单,直观明了,易于掌握。判定树的缺点:存在着数据冗余的问题,相同的数据元素往往要重复多次,而且越接近树的叶端重复的次数越多。判定树要求对条件进行层次划分,若条件所处层次不对,可能会导致增加判定树的复杂性。第56页,此课件共82页哦7.2.4 过程设计语言(PDL)PDL(Procedure Design Language)也称为结构英语或伪码,是所有正文形式的过程设计工具的统称。PDL经常表现为一种“混杂”的形式,允许自然语言(如英语)的词汇与某种结构化程序设计语言(如Pascal、C、Ada等)的语法结构交织在一起第57页,此课件共82页哦7.2.

39、4 过程设计语言(PDL)PDL应具有下述特点:1关键字采用固定语法并支持结构化构件、数据说明机制和模块化;2处理部分采用自然语言描述;3允许说明简单(标量、数组等)和复杂(链表、树等)的数据结构;4子程序的定义与调用规则不受具体接口方式的影响。第58页,此课件共82页哦7.2.4 过程设计语言(PDL)考察一个PDL的原型,它可以建立在任意一个通用的结构化程序设计语言之上。基本成分包括:子程序定义、界面描述、数据说明、块结构、分支结构、循环结构和I/O结构。数据说明的形式为:TYPE IS 其中:局部变量或全局变量;某个特定关键字(例如,SCALAR,ARRAY,LIST,STRING,ST

40、RUTURE等);说明此处定义的变量在该过程或整个程序中应如何使用。第59页,此课件共82页哦7.2.4 过程设计语言(PDL)可进行抽象数据类型的定义,例如:TYPE table_1 IS INSTACE OF symbol_table 而symbol_table在另一处已定义如下:TYPE symbol_table IS STRUCTURE DEFINED第60页,此课件共82页哦7.2.4 过程设计语言(PDL)该PDL的块结构描述一个过程元素,即一个块内的所有语句将作为一个整体执行,形式为 BEGIN END该PDL的分支结构有if-then-else和case两种形式,分别为 IF

41、THEN ELSE ENDIF第61页,此课件共82页哦7.2.4 过程设计语言(PDL)CASE OF WHEN SELECT WHEN SELECT WHEN SELECT DEFAULT:ENDCASE第62页,此课件共82页哦7.2.4 过程设计语言(PDL)循环结构包括三类,表达形式分别为:DO WHILE ENDWHILEREPEAT UNTIL ENDREPEATDOFOR =ENDFOR第63页,此课件共82页哦7.2.4 过程设计语言(PDL)此PDL还提供了NEXT和EXIT两种语句:EXIT语句,退出本层循环;NEXT语句强迫本次循环结束,新一轮循环开始。在该PDL中,子

42、程序说明为:PROCEDURE INTERFACE END 其中属性表指明该子程序的引用特性(比如,是INTERNAL还是EXTERNAL模式)和其他依赖于实现(即程序设计语言)的特性。第64页,此课件共82页哦7.2.4 过程设计语言(PDL)输入/输出说明部分常用的形式有 READ/WRITE TO 或 ASK ANSWER 后一种形式多用于人机交互部分的设计。第65页,此课件共82页哦7.3 设计规格说明与评审软件设计阶段的输出主要是设计规格说明书:第一节:描述与设计活动有关的各个方面,该节中许多信息取自系统规格说明书和系统定义阶段产生的其他文档。第二节:具体指明引用信息的出处。第三节:

43、设计描述,是概要设计的产物,此时设计由信息驱动,即软件总体结构主要受数据流程、数据结构的影响,需求分析时产生的DFD或其他某种形式的数据表示将在这一节中进一步精化,用于确定软件结构。当信息流程确定后,界面亦可作为整个软件的一部分进行描述。第66页,此课件共82页哦7.3 设计规格说明与评审第四、五两节是概要设计向详细设计过渡后形成的。第四节:模块指软件中可单独编址的部件,如函数和过程,最初用自然语言描述它们的功能,随后采用某种过程设计工具将这些自然语言描述转换为结构化描述。第五节:主要描述数据组织结构,包括辅存的文件结构、全局数据(例如FORTRAN公共区)的赋值以及这些文件与全局数据的交叉访

44、问关系。第67页,此课件共82页哦7.3 设计规格说明与评审第六节:是与需求规格说明书的交叉访问表,根据交叉访问表可断定设计是否满足所有需求,这对于完成某个具体需求的模块来说十分重要。第七节:是测试的初步计划。一旦软件结构和模块间界面确定下来之后,即可制定模块单元测试和联调的计划。某些场合,要求同时开发测试规格说明书与设计规格说明书,此时第七节可从设计规格说明书中删去。第八节:将逐条说明各种限制和造成的影响。第九、十两节:包括若干辅助数据,如从其他文档中节选的算法描述、候选的过程、表格化数据和其他相关信息,这些信息是对设计的一种特殊注释最后开发一基本操作规格说明或安装手册作为附录。第68页,此

45、课件共82页哦设计规格说明书示例.作用范围 A.系统目标 B.硬件、软件和人机界面 C.主要的系统功能 D.外部数据库定义 E.主要的设计约束和限制.文档 A.现有的软件文档 B.系统文档 C.卖主(硬件的和软件的)的有关文档 D.技术参考书第69页,此课件共82页哦设计规格说明书示例.设计描述 A.数据描述 1.数据流复审 2.数据结构复审 B.导出的程序结构 C.结构之间的界面第70页,此课件共82页哦设计规格说明书示例.模块描述;针对每个模块给出 A.处理过程陈述 B.接口描述 C.设计语言(或其他形式)描述 D.引用的模块 E.数据组织 F.注释第71页,此课件共82页哦设计规格说明书

46、示例.文件结构及全局数据 A.外部文件结构 1.逻辑结构 2.逻辑记录描述 3.访问方式 B.全局数据 C.文件与数据的交叉访问表.需求交叉访问矩阵第72页,此课件共82页哦设计规格说明书示例.测试准备 A.测试指南 B.集成策略 C.特殊考虑.装配 A.特殊的程序覆盖要求 B.转换方面的考虑.特别注释.附录第73页,此课件共82页哦概要设计阶段的文件主要是概要设计说明书,又称为系统设计说明书。编写本说明的目的,是说明对程序系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织机构、功能分配、模块划分、接口设计、运行设计、数据结构设计和出错处理设计等,为系统的详细设计打下基础。概要设计说明

47、书是概要设计阶段结束时提交的技术文档。除了概要设计说明书之外,还有用户手册、测试计划等文件。见下表第74页,此课件共82页哦概要设计说明书1 引言11目的12背景13定义14参考资料2 概要设计 21 需求规定 22 运行规定 23 基本设计原则与处理流程 24 结构 25 功能需求与程序关系 26 人工处理过程 27 未解决问题3 接口设计 31 用户接口(用户界面)32 内部接口(模块间)33 外部接口(软硬件间)4 运行设计 41 运行模块组合 42 运行控制 43 运行时间5 数据结构设计 51 逻辑结构设计 52 物理结构设计 53 设计结构与程序的关系6 出错处理设计 61 出错输

48、出信息 62 出错处理621 后备技术622 恢复技术623 再启动技术624 性能降级技术7 安全保密设计第75页,此课件共82页哦用户手册1 引言11目的12背景13定义14参考资料2 软件概述 21 目标 22 功能 23 性能3 运行环境 31 硬件 32 支撑软件4 使用说明 41安装与初始化 42 输入 43 输出 44 出错与恢复 45 查询5 运行说明 51运行表 52 运行步骤521 运行控制522 操作信息523 输入、输出文件524 启动与恢复过程6 非常规操作过程7 操作命令一览表8程序文件9 用户操作举例第76页,此课件共82页哦测试计划1 引言11目的12背景13定

49、义14参考资料2 任务概述 21 目标 22 环境 23 需求概述 24 条件与限制3 计划 31 测试方案 32 测试项目 33 测试准备 34 测试组织4 测试项目说明41测试项目及内容42 测试用例 421 输入 422 输出423 步骤424 允许偏差 43 进度 44 条件 45 资料5 评价 51范围 52 准则第77页,此课件共82页哦详细设计阶段应交付的文件有:1)详细设计说明书;2)初步的模块开发卷宗。模块开发卷宗是在模块开发过程中逐步编写出来的,每完成一个模块或一组密切相关的模块的复审时编写一份,应该把所有的模块开发卷宗汇集在一起。编写的目的是记录和汇总低层次开发的进度和结

50、果,以便于对整个模块开发工作的管理和复审,并为将来的维护提供非常有用的技术信息。第78页,此课件共82页哦第79页,此课件共82页哦第80页,此课件共82页哦设计规格说明的评审为了确保文档的质量,还必须对设计文档进行评审。评审的目的在于及早发现设计中的缺陷和错误。评审包括软件总体结构、数据结构、结构之间的界面以及模块过程细节四个方面,重点考虑:软件结构能否满足需求?结构的形态是否合理?层次是否清晰?模块的划分是否遵循模块化和信息隐蔽的思想?系统的人机界面、各模块的接口以及出错处理是否恰当?模块的设计能否满足功能与性能要求?选择的算法与数据结构是否合理,能否适应编程语言,等等。第81页,此课件共

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com