课件软件工程SoftwareEngineering

上传人:大米 文档编号:567914931 上传时间:2024-07-22 格式:PPT 页数:81 大小:1.17MB
返回 下载 相关 举报
课件软件工程SoftwareEngineering_第1页
第1页 / 共81页
课件软件工程SoftwareEngineering_第2页
第2页 / 共81页
课件软件工程SoftwareEngineering_第3页
第3页 / 共81页
课件软件工程SoftwareEngineering_第4页
第4页 / 共81页
课件软件工程SoftwareEngineering_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《课件软件工程SoftwareEngineering》由会员分享,可在线阅读,更多相关《课件软件工程SoftwareEngineering(81页珍藏版)》请在金锄头文库上搜索。

1、 软件工程软件工程 Software Engineering国防科技大学计算机学院国防科技大学计算机学院 2004.07齐治昌齐治昌齐治昌齐治昌 教授,教授,教授,教授, 谭庆平谭庆平谭庆平谭庆平 教授,教授,教授,教授, 宁洪宁洪宁洪宁洪 教授,教授,教授,教授, 董威董威董威董威 博士博士博士博士练从覆祝趟目隧丈硼煤魂澳匝缺稿雹勒业维习亩璃凶画晚擂奏芜圭柔祈玄课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/20241国防科技大学计算机学院第八章第八章 软件设计基础软件设计基础o软件设计是软件工程的重要阶段。软件设计是软件工程的重

2、要阶段。o软软件件设设计计过过程程是是对对程程序序结结构构、数数据据结结构构和和过过程程细细节节逐步求精、复审并编制文档的过程逐步求精、复审并编制文档的过程。o经经过过软软件件工工程程师师们们多多年年的的努努力力形形成成了了一一些些软软件件设设计计技技术术、质质量量评评估估标标准准和和设设计计表表示示法法并并用用于于软软件件工工程程实实践。践。o本本章章讨讨论论与与软软件件设设计计有有关关的的主主要要概概念念, , 介介绍绍几几个个具具体的软件设计方法。体的软件设计方法。艇婶欢施忌豪闻桐裔写室肌献宜猩晃翅贼呈胞擅矽悼绩枚鹰雁坏哇炽境后课件软件工程SoftwareEngineering课件软件工

3、程SoftwareEngineering7/22/20242国防科技大学计算机学院8.18.1软件设计过程软件设计过程软软件件开开发发阶阶段段由由设设计计、编编码码和和测测试试三三个个基基本本活活动动组组成成, ,其其中中“设设计计活活动动”是是 获获取取高高质质量量、低低耗耗费费、易易维维护护软软件最重要的一个环节。件最重要的一个环节。需需求求分分析析阶阶段段获获得得的的需需求求规规格格说说明明书书包包括括对对欲欲实实现现系系统统的的信信息息、功功能能和和行行为为方方面面的的描描述述, 这这是是软软件件设设计计的的基基础础。对对此此采采用用任任一一种种软软件件设设计计方方法法都都将将产产生生

4、系系统统的的总总体体结结构构设设计计(archite (archite ctural ctural design)design)、系系统统的的数数据据 设设 计计 (data (data design)design)和和 系系 统统 的的 过过 程程 设设 计计 (procedural (procedural design)design)( ( 图图8 81)1)。第八章第八章 软件设计基础软件设计基础谬抗雪字仓碟达冯炉圃歪铭识懒拘掩钞毋鞭蘸磋箔虞宿牛残赏奠盟琴受乖课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/20243国防科技大

5、学计算机学院软件设计过程软件设计过程o不同的软件设计方法会产生不同的设计形式。不同的软件设计方法会产生不同的设计形式。o数数据据设设计计把把信信息息描描述述转转换换为为实实现现软软件件所所要要求求的的数数据据结构结构。o总体结构设计旨在确定程序各主要部件之间的关系总体结构设计旨在确定程序各主要部件之间的关系。 o过程设计过程设计要要完成每一部件的过程化描述。完成每一部件的过程化描述。o根据设计结果编制代码。根据设计结果编制代码。o设设计计阶阶段段做做的的决决策策直直接接影影响响软软件件质质量量, ,没没有有良良好好的的设设计就没有稳定的系统计就没有稳定的系统, ,也不会有易维护的软件。也不会有

6、易维护的软件。o统统计计表表明明:设设计计、编编码码和和测测试试这这三三个个活活动动一一般般占占用用整个软件开发费用整个软件开发费用( (不包括维护阶段不包括维护阶段) )的的75%75%以上。以上。8.1软件设计过程软件设计过程姿沁泽乞填温蔗斌粉哲扁晒撑悔裁婴始距疏垃磊脊己默你卉魄泻丫蒲曲峡课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/20244国防科技大学计算机学院图图8 8. .1 1 开发阶段的信息流开发阶段的信息流8.1软件设计过程软件设计过程恤庸爹恳掀艾锈短趟邢床讳胆嘛冲汲案湛催类睁辨珊巳竖恭爸亿缺处略力课件软件工程S

7、oftwareEngineering课件软件工程SoftwareEngineering7/22/20245国防科技大学计算机学院软件设计过程软件设计过程o软软件件设设计计也也可可看看作作将将需需求求规规格格说说明明逐逐步步转转换换为为软软件件源代码的过程。源代码的过程。o从从工工程程管管理理的的角角度度看看,软软件件设设计计可可分分为为概概要要设设计计和和详细设计两大步骤。详细设计两大步骤。o概要设计是根据需求确定软件和数据的总体框架概要设计是根据需求确定软件和数据的总体框架o详详细细设设计计是是将将其其进进一一步步精精化化成成软软件件的的算算法法表表示示和和数数据结构。据结构。o概概要要设设

8、计计和和详详细细设设计计由由若若干干活活动动组组成成,除除总总体体结结构构设设计计、数数据据结结构构设设计计和和过过程程设设计计外外,许许多多现现代代应应用用软软件,还包括一个独立的界面设计活动。件,还包括一个独立的界面设计活动。8.1软件设计过程软件设计过程陀尹餐戊讣傈陕并盆辛晾棕作缸怖俏男烂香千汗焕北董孔馋氧撑欧转翰汪课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/20246国防科技大学计算机学院8.28.2软件设计基本概念软件设计基本概念o软件设计基本概念是过去三十年里陆续提出的。软件设计基本概念是过去三十年里陆续提出的。o软

9、件设计者根据这组概念进行设计决策软件设计者根据这组概念进行设计决策, ,如如: :划分子部件划分子部件的的标准标准; ;从软件的概念表示中分离出功能和数据结构的细节从软件的概念表示中分离出功能和数据结构的细节; ;以统一的标准衡量软件设计质量等等。以统一的标准衡量软件设计质量等等。第八章第八章 软件设计基础软件设计基础丸嘲酪肯灸绿兵胁贿泅脊犊裤网框漏疗虹吵承咒戮溃喉靶课谗赐情香咸聪课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/20247国防科技大学计算机学院8.2.18.2.1抽象与逐步求精抽象与逐步求精抽象是管理、控制复杂性的基

10、本策略抽象是管理、控制复杂性的基本策略 。“抽抽象象”是是心心理理学学概概念念, ,它它要要求求人人们们将将注注意意力力集集中中在在某某一一层层次次上上考虑问题考虑问题, ,而忽略那些低层次的细节。而忽略那些低层次的细节。使使用用抽抽象象技技术术便便于于人人们们用用“问问题题域域”的的概概念念和和术术语语描描述述问问题题, ,而而无须过早地转换为那些不熟悉的结构。无须过早地转换为那些不熟悉的结构。软件设计过程是软件设计过程是,在不同抽象级别在不同抽象级别上上考虑、处理问题的过程。考虑、处理问题的过程。()在在最最高高抽抽象象级级别别上上, ,用用面面向向问问题题域域的的语语言言叙叙述述“问问题

11、题”, ,概括概括“问题解问题解”的形式的形式。()()不断地具体化不断地具体化, ,不断地用面向过程的语言描述问题不断地用面向过程的语言描述问题。()在在最最低低的的抽抽象象级级别别上上给给出出可可直直接接实实现现的的“问问题题解解”,即即程序。程序。8.2软件设计基本概念软件设计基本概念月败失唱屁召叙粤瞒泽谬币混犊琅滔塞困摆耳阑札窒淑沂候贫镑枷津蚤瞬课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/20248国防科技大学计算机学院抽象与逐步求精抽象与逐步求精软软件件工工程程过过程程的的每每一一步步都都是是对对较较高高一一级级抽抽象

12、象的的解解作作一一次较具体化的描述。次较具体化的描述。o在在系系统统定定义义阶阶段段, , 软软件件系系统统被被描描述述为为基基于于计计算算机机的的大系统的一个组成部分大系统的一个组成部分; ;o在在软软件件规规划划和和需需求求分分析析阶阶段段, ,软软件件用用问问题题域域约约定定的的习习惯用语表达惯用语表达; ;o从概要设计过渡到详细设计时从概要设计过渡到详细设计时, ,抽象级再一次降低抽象级再一次降低; ;o编码完成后编码完成后,达到了抽象的最低级。达到了抽象的最低级。8.2软件设计基本概念软件设计基本概念她札可见烦住碘拎蔡侧秤蚀负暴弛郑系民鞋毕巷胀隶仇揩戚拨帛笺潍蓝易课件软件工程Soft

13、wareEngineering课件软件工程SoftwareEngineering7/22/20249国防科技大学计算机学院抽象与逐步求精抽象与逐步求精在在由由高高级级抽抽象象到到低低级级抽抽象象的的转转换换过过程程中中, ,伴伴随随着着一一连连串串的过程抽象和数据抽象。的过程抽象和数据抽象。o过过程程抽抽象象把把完完成成一一个个特特定定功功能能的的动动作作序序列列抽抽象象为为一一个个过过程程名名和和参参数数表表,通通过过指指定定过过程程名名和和实实际际参参数数调调用用此过程此过程; ;o数数据据抽抽象象把把一一个个数数据据对对象象的的定定义义( (或或描描述述 ) )抽抽象象为为一一个个数数据

14、据类类型型名名,用用此此类类型型名名可可定定义义多多个个具具有有相相同同性性质质的数据对象。的数据对象。8.2软件设计基本概念软件设计基本概念真誊济溉疙甘磕疹颖趁撤赂茅蚜孵盘悬甲企席抿羚访犹剧汕疑广禾刀朋附课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202410国防科技大学计算机学院例例8.1 8.1 不同抽象级别的软件形式不同抽象级别的软件形式例例8 81 1考虑适用于低级考虑适用于低级CADCAD的图形软件包。的图形软件包。抽象抽象1 1该该CADCAD软件系统配有能与作图员进行可视化通讯的图形界面。软件系统配有能与作图员进

15、行可视化通讯的图形界面。能用鼠标替代作图板和直尺画各种直线和曲线。能用鼠标替代作图板和直尺画各种直线和曲线。能完成所有几何计算及所有截面视图和辅助视图的设计。能完成所有几何计算及所有截面视图和辅助视图的设计。图形设计的结果存在图形文件中图形设计的结果存在图形文件中, ,图形文件可包含几何的、正文图形文件可包含几何的、正文的和其他各种补充设计信息。的和其他各种补充设计信息。在这一抽象级别上在这一抽象级别上, ,问题的解用问题域本身的术语描述。问题的解用问题域本身的术语描述。8.2软件设计基本概念软件设计基本概念果给坟养乐怨炔伟凡烃本宙独努绝吃至刮询伸很感峨骗遮盏捏坯巴务插窍课件软件工程Softw

16、areEngineering课件软件工程SoftwareEngineering7/22/202411国防科技大学计算机学院不同抽象级别软件的形式不同抽象级别软件的形式抽象抽象2 2CADCAD软件任务软件任务; ;用户界面任务用户界面任务; ;创建二维图形任务创建二维图形任务; ;显示图形任务显示图形任务; ;管理图形文件任务管理图形文件任务; ; end CAD.end CAD.在在这这一一抽抽象象级级别别上上, ,给给出出了了组组成成CADCAD软软件件任任务务的的所所有有子子任任务务, ,术语与问题域有所不同术语与问题域有所不同, ,但仍然不是实现用的语言。但仍然不是实现用的语言。8.2

17、软件设计基本概念软件设计基本概念舅嘴溜斤晰碌肠烹灯咙雕漳治脱患避清梢捻激慈迟侮压赵脱戒蚕嫩欲稠莆课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202412国防科技大学计算机学院不同抽象级别软件的形式不同抽象级别软件的形式抽象抽象3 3例例“创建二维图形任务创建二维图形任务” PROCEDURE PROCEDURE 创建二维图形创建二维图形REPEATREPEATUNTILUNTIL DODOWHILEWHILE 数字仪接口任务数字仪接口任务; ;判断作图请求判断作图请求: :线线: :画线任务画线任务; ;圆圆: :画圆任务画圆任

18、务; ; END;END;8.2软件设计基本概念软件设计基本概念燥闪粒痪城毅卫缺晌棋埔简尸绑章栈亿锁断痒呵瘤崖捅般劫癸耘溺私扒挎课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202413国防科技大学计算机学院不同抽象级别软件的形式不同抽象级别软件的形式DODOWHILEWHILE 键盘接口任务键盘接口任务;选择分析或计算选择分析或计算: :辅助视图辅助视图: :辅助视图任务辅助视图任务;截面视图截面视图: :截面视图任务截面视图任务; ENDEND;END REPETITIONEND REPETITION;END PROCEDUR

19、EEND PROCEDURE在在这这一一抽抽象象级级别别上上, ,给给出出了了初初步步的的过过程程性性表表示示, ,此此时时所所有有术术语语都都是是面面向向软软件件( (比比如如采采用用do do whilewhile结结构构) )并并且且模模块块结结构构也也开开始始明明朗。求精过程还可继续下去朗。求精过程还可继续下去, ,直至产生源代码。直至产生源代码。8.2软件设计基本概念软件设计基本概念虹热裁骸盔拥袖铂该炙涵桥唾吉讨少涩檬退俐幂冰牛釉溃鞍蚤碑斗怂帛豁课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202414国防科技大学计算机

20、学院不同抽象级别软件的形式不同抽象级别软件的形式数数据据抽抽象象与与过过程程抽抽象象一一样样, ,能能使使设设计计者者按按不不同同的的详详细细程程度度表表示数据对象。示数据对象。例例为为CADCAD软件定义软件定义drawing(drawing(图图) )的数据对象的数据对象: :TYPE TYPE drawing drawing IS STRUCTURE DEFINEDIS STRUCTURE DEFINEDnumber number IS STRING LENGTH(12);IS STRING LENGTH(12);geometry geometry DEFINEDDEFINEDnotes

21、 notes IS STRING LENGTH(256);IS STRING LENGTH(256);bom bom DEFINEDDEFINEDEND drawing TYPE;END drawing TYPE;drawingdrawing被被表表示示为为一一种种结结构构, ,各各组组成成部部件件又又可可为为某某种种数数据据抽象抽象, ,如如geometry geometry 和和bombom。8.2软件设计基本概念软件设计基本概念伦询舌碍瘦炉称熬筐业傲保思榔幸责扳梁淖爬顺召鹃滑兔园虐态彭铝黑籍课件软件工程SoftwareEngineering课件软件工程SoftwareEngineerin

22、g7/22/202415国防科技大学计算机学院不同抽象级别软件的形式不同抽象级别软件的形式抽抽象象数数据据类类型型drawingdrawing定定义义完完毕毕, ,即即可可用用类类型型名名直直接接说说明明数数据据对对象象, ,而而不不必必涉涉及及其其内内部部构构造造的的细细节节, ,如如, ,可可用用语句语句blueprint blueprint IS INSTANCE OF drawing;IS INSTANCE OF drawing;或或schematic schematic IS INSTANCE OF drawing;IS INSTANCE OF drawing;说明说明bluepri

23、ntblueprint和和schematicschematic具有具有drawingdrawing的特性。的特性。8.2软件设计基本概念软件设计基本概念哇灯骤许加念郎索谆适辱拣捉题幢波屿渝甚饵篇隐婶太翟军阵劈蓟累鲍谁课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202416国防科技大学计算机学院不同抽象级别软件的形式不同抽象级别软件的形式o在在抽抽象象数数据据类类型型的的定定义义中中可可以以附附加加一一组组操操作作的的定定义义, ,用以确定在此类数据对象上可进行的操作。用以确定在此类数据对象上可进行的操作。o以以抽抽象象数数据据类

24、类型型drawingdrawing为为例例, ,可可以以定定义义擦擦除除(erase)(erase)、存存储储(save)(save)、分分类类(catalog)(catalog)和和拷拷贝贝(copy)(copy)等等操操作作。o若若干干程程序序设设计计语语言言( (如如Ada,Modula,CLU)Ada,Modula,CLU)都都提提供供了了对对抽抽象象数数据据类类型型的的支支持持,Ada,Ada的的程程序序包包机机制制是是对对数数据据抽抽象象和过程抽象的双重支持。和过程抽象的双重支持。8.2软件设计基本概念软件设计基本概念技轻官胯贮舟摧毅涕蒜盘蓑忱恍晰绽敬煞链检使辐猩毖魁图伦猴茹弱简注

25、课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202417国防科技大学计算机学院不同抽象级别软件的形式不同抽象级别软件的形式o由由N.WirthN.Wirth提提出出的的“逐逐步步求求精精”概概念念, ,与与“抽抽象象”密密切切相相关关, ,是是早期的自顶向下设计策略早期的自顶向下设计策略。o“逐逐步步求求精精”的的主主要要思思想想是是, ,针针对对某某个个功功能能的的宏宏观观描描述述用用逐逐步步求求精精的的方方法法不不断断地地分分解解, ,逐逐步步确确立立过过程程细细节节, ,直直至至该该功功能能用用程程序序语言描述的算法实现为

26、止语言描述的算法实现为止。o求求精精的的每每一一步步都都是是用用更更为为详详细细的的描描述述替替代代上上一一层层次次的的抽抽象象描描述述, ,在在整整个个设设计计过过程程中中产产生生的的,具具有有不不同同详详细细程程度度的的各各种种描描述述组成系统的层次结构。组成系统的层次结构。o层次结构的上一层是下一层的抽象层次结构的上一层是下一层的抽象, ,下一层是上一层的求精。下一层是上一层的求精。o在在过过程程求求精精的的同同时时,伴伴随随着着数数据据求求精精, ,无无论论是是过过程程还还是是数数据据, ,每每个个求求精精步步都都蕴蕴含含着着某某些些设设计计决决策策, ,设设计计人人员员必必须须掌掌握

27、握一一些些基基本的准则和各种可能的候选方法。本的准则和各种可能的候选方法。8.2软件设计基本概念软件设计基本概念躲寝挝群枝匙碉蔓弛假枣诊罐沿肝耗蚤脯痕等彦拙肚缄罗帆请采湘莲散参课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202418国防科技大学计算机学院8.2.28.2.2模块化与信息隐藏模块化与信息隐藏o模块化的概念模块化的概念把把软软件件划划分分为为可可独独立立命命名名和和编编址址的的部部件件,每每个个部部件件称称为为一一个个模模块块, ,当当把把所所有有模模块块组组装装到到一一起起时时则则获获得得满满足足问问题题需需要要的

28、的一一个解。个解。o软件总体结构体现了模块化思想软件总体结构体现了模块化思想。o“模模块块化化是是软软件件唯唯一一能能使使程程序序获获得得智智能能化化管管理理的的一一个个属属性性”,没没有有模模块块的的程程序序控控制制路路径径错错综综复复杂杂, ,变变量量被被远远距距离离引引用用等等难难于被人掌握。于被人掌握。8.2软件设计基本概念软件设计基本概念香拭闪烫卖伪唾隧溅翟集犀涕叫筏项市攀旺惮珍赦斌吮槽献友盾杂黍壮喝课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202419国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏求解问题的

29、过程求解问题的过程假设假设函数函数C(X)C(X)定义了问题定义了问题X X已被觉察到的复杂性已被觉察到的复杂性, ,函函数数E(X)E(X)定定义义了了求求解解问问题题X X所所要要求求的的工工作作量量( (按按时时间间计计) ), 对于问题对于问题P1P1和和P2,P2,如果如果C(P1)C(P1)C(P2)C(P2)(8(81a)1a)则则E(P1)E(P1)E(P2)E(P2)(8(81b)1b)C(P1+P2)C(P1+P2)C(P1)+C(P2)C(P1)+C(P2)(8(82)2)E(P1+P2)E(P1+P2)E(P1)+E(P2)E(P1)+E(P2)(8(83)3)o解决一

30、个复杂问题解决一个复杂问题,比解决一个简单问题耗费多。比解决一个简单问题耗费多。o由由P1P1、P2P2组组合合而而成成的的问问题题复复杂杂性性,比比单单个个问问题题复复杂杂性性的的和和更更大。大。8.2软件设计基本概念软件设计基本概念率遮迄哗粹有跃俯融浦血怠忽懒迷账冷懦斋瞥汗迅祝病晨叭骗济践睫霹茸课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202420国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏“分治法分治法”一一个个复复杂杂问问题题分分割割成成若若干干个个可可管管理理的的小小问问题题后后更更易易于求解。于求解。o当

31、当模模块块总总数数增增加加时时, ,每每个个模模块块的的成成本本减减少少了了, ,但但模模块块接口所需代价随之增加。接口所需代价随之增加。o如如果果模模块块数数为为M M时时将将获获得得最最小小开开发发成成本本, ,那那么么模模块块数数在在M M附近选择附近选择, ,就能避免模块分割过度和不足。就能避免模块分割过度和不足。这些问题涉及信息隐藏、内聚度与藕合度的概念。这些问题涉及信息隐藏、内聚度与藕合度的概念。8.2软件设计基本概念软件设计基本概念紊床稀迪猜贾后胺亚喊难雍腊印析士屎闹泽抚堆境焰慈诈鞋适捕棚馅串童课件软件工程SoftwareEngineering课件软件工程SoftwareEngi

32、neering7/22/202421国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏o怎样保证模块数怎样保证模块数“在在M M附近附近”? ?o依据什么标准划分模块依据什么标准划分模块? ?8.2软件设计基本概念软件设计基本概念馒蜕社冈颜烦镜孙赏垃迫陕流玉疯佯窄钉殉教矽吻案勾豌谱犀哎寄颁衣京课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202422国防科技大学计算机学院1 1信息隐藏信息隐藏模块独立的概念模块独立的概念o模模块块应应该该设设计计得得使使其其所所含含信信息息( (过过程程和和数数据据) )对对于于那那些不需要这

33、些信息的模块不可访问些不需要这些信息的模块不可访问; ;o每个模块只完成一个相对独立的特定功能每个模块只完成一个相对独立的特定功能; ;o模模块块之之间间仅仅仅仅交交换换那那些些为为完完成成系系统统功功能能必必须须交交换换的的信息信息,即模块应该独立。即模块应该独立。采用信息隐藏原理指导模块设计采用信息隐藏原理指导模块设计优点优点:o支持模块的并行开发支持模块的并行开发o减少减少软件软件测试和测试和软件软件维护的工作量。维护的工作量。8.2软件设计基本概念软件设计基本概念带姆卜材浴蓉莫筹潮林捍债仅拇换垫炼仟舅搭破属宰搭骂享吴鄂澳盈恬耻课件软件工程SoftwareEngineering课件软件工

34、程SoftwareEngineering7/22/202423国防科技大学计算机学院2 2内聚度内聚度内聚度内聚度模块内部各成分彼此结合的紧密程度。模块内部各成分彼此结合的紧密程度。内聚度按其高低程度可分为七级内聚度按其高低程度可分为七级, ,内聚度越高越好。内聚度越高越好。低级内聚度低级内聚度()()偶然性内聚偶然性内聚(Coincidental Cohesion)(Coincidental Cohesion)。模模块块内内各各成成分分为为完完成成一一组组功功能能而而组组合合在在一一起起, ,它它们们相相互互之之间即使有关系间即使有关系, ,也很松散。也很松散。()()逻辑性内聚逻辑性内聚(

35、Logical Cohesion)(Logical Cohesion)模模块块完完成成的的诸诸任任务务逻逻辑辑上上相相关关,如如, ,一一个个模模块块产产生生所所有有与与类型无关的输出。类型无关的输出。()()时间性内聚时间性内聚(Temporal Cohesion)(Temporal Cohesion)模模块块包包含含的的诸诸任任务务必必须须在在同同一一时时间间段段内内执执行行,如如一一个个初初始化模块。始化模块。8.2软件设计基本概念软件设计基本概念殷痘狞蜜糙膀扭硅香瓮镁昼测袋弃粹激挨溜纪奖童思钧诞尽蹿墩郧疙有铂课件软件工程SoftwareEngineering课件软件工程Software

36、Engineering7/22/202424国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏中级内聚度中级内聚度()()过程性内聚过程性内聚(Procedural Cohesion)(Procedural Cohesion) 模模块块具具有有过过程程性性内内聚聚度度指指,模模块块内内成成分分彼彼此此相相关关, ,并且必须按特定的次序执行并且必须按特定的次序执行; ; ()()通信性内聚通信性内聚(Communicational Cohesion) (Communicational Cohesion) 模模块块中中各各成成份份都都将将对对数数据据结结构构的的同同一一区区域域进进行行操操作作

37、, ,以达到通信的目的。以达到通信的目的。8.2软件设计基本概念软件设计基本概念每判背禁亢到祈查疆腥谦倾犹担认蕊篡事婉怔衅阮灭砖剿缅溯排惋戎步觉课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202425国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏高级内聚度高级内聚度()()顺序性内聚顺序性内聚(Sequential Cohesion)(Sequential Cohesion) 模模块块内内的的各各处处理理成成份份均均与与同同一一功功能能相相关关, ,且且这这些些处理必须顺序执行处理必须顺序执行, ,则称顺序内聚则称顺序内

38、聚。 ()()功能性内聚功能性内聚(Functional Cohesion)(Functional Cohesion)模模块块内内所所有有成成分分形形成成一一个个整整体体, ,完完成成单单个个功功能能。设设计计软软件件时时, ,应应该该能能够够识识别别内内聚聚度度的的高高低低,并并通通过过修修改改设设计计尽尽可可能能提提高高模模块块内内聚聚度度, ,从从而而获获得得较较高高的的模模块块独立性独立性8.2软件设计基本概念软件设计基本概念晕蘸哇干汰复高测酉砸糊巨悬割磅满岛分栽焉作舜抢饲快拿聪银导麻狼理课件软件工程SoftwareEngineering课件软件工程SoftwareEngineerin

39、g7/22/202426国防科技大学计算机学院3 3耦合度耦合度耦合度耦合度软件结构中模块间关联程度的一种度量。软件结构中模块间关联程度的一种度量。o耦耦合合的的强强弱弱取取决决于于模模块块间间接接口口的的复复杂杂性性、进进入入或或调调用用模模块块的的位置以及通过界面传送数据的多少等。位置以及通过界面传送数据的多少等。o设计软件应追求尽可能松散耦合的系统。设计软件应追求尽可能松散耦合的系统。o松散耦合系统中松散耦合系统中,任一模块的设计、测试和维护任一模块的设计、测试和维护都都相对独立。相对独立。o松松散散耦耦合合系系统统模模块块间间联联系系较较少少, ,错错误误在在模模块块间间传传播播的的可

40、可能能性性随随之变小。之变小。o模模块块间间的的耦耦合合程程度度直直接接影影响响系系统统的的可可理理解解性性、可可测测试试性性、可可靠性和可维护性。靠性和可维护性。8.2软件设计基本概念软件设计基本概念始幅躲巴蛤炔瞄袱陇睡膀锻澈肾姑友变恫圣折立捻崩欲蓉尝瘸屿靛洋倡癸课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202427国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏耦合度也分为七级耦合度也分为七级: :()()非直接耦合非直接耦合(Nodirect Coupling)(Nodirect Coupling)两两模模块块中中

41、任任一一个个都都不不依依赖赖对对方方能能独独立立工工作作, , 这这类类耦耦合合度度最最低。低。()()数据耦合数据耦合(Data Coupling)(Data Coupling)两模块通过参数交换信息两模块通过参数交换信息, ,信息仅限于数据信息仅限于数据。()()控制耦合控制耦合(Control Coupling)(Control Coupling)传传递递的的信信息息含含有有控控制制信信息息。控控制制耦耦合合通通常常会会增增加加系系统统的的复复杂性杂性, ,适当分解模块可望消除控制耦合。适当分解模块可望消除控制耦合。()()特征耦合特征耦合(Stamp Coupling)(Stamp C

42、oupling)。介于数据耦合与控制耦合之间介于数据耦合与控制耦合之间8.2软件设计基本概念软件设计基本概念砖甸趣可处烃嚼凌窟惠或羽崖兵甫趴吾漾番咀高栽迈蚂花那匈偏芳展咨攻课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202428国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏()()外部耦合外部耦合(External Coupling)(External Coupling)当当若若干干模模块块均均与与同同一一个个外外部部环环境境关关联联,如如,I/O,I/O处处理理使使所所有有I/OI/O模块与特定的设备、格式和通信协议相

43、关联模块与特定的设备、格式和通信协议相关联。外部耦合尽管需要外部耦合尽管需要, ,但应限制在少数几个模块上。但应限制在少数几个模块上。()()公共耦合公共耦合(Common Coupling)(Common Coupling)若若干干模模块块通通过过全全局局的的数数据据环环境境相相互互作作用用, , 全全局局数数据据环环境境中中可可能能含含有有全全局局变变量量、公公用用区区、内内存存公公共共复复盖盖区区、任任何何存存储储介介质质上的文件、物理设备等。上的文件、物理设备等。()()内容耦合内容耦合(Content Coupling)(Content Coupling)一一个个模模块块使使用用另另

44、 一一模模块块内内部部的的数数据据或或控控制制信信息息;一一个个模模块块直接转移到另一模块内部等等。直接转移到另一模块内部等等。设设计计软软件件时时应应尽尽量量使使用用数数据据耦耦合合, ,减减少少控控制制耦耦合合, ,限限制制外外部部环境耦合和公共数据耦合环境耦合和公共数据耦合, ,杜绝内容耦合。杜绝内容耦合。8.2软件设计基本概念软件设计基本概念钠皋奈聘笺邻至岿臃涩骗谋村熙珐晴馏抱熟柬墓唱耳娥浴剧蝎门豫抨瓦捕课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202429国防科技大学计算机学院模块化与信息隐藏模块化与信息隐藏模模块块

45、化化设设计计的的思思想想适适用用于于任任何何软软件件系系统统的的设设计计。当当某某些些软软件件系系统统,如如实实时时软软件件和和部部分分微微处处理理机机软软件件, ,因因不不能能容容忍忍子子程程序序调调用用引引起起的的时时间间开开销销而而必必须须以以整整块块软软件件的的形形式式出出现现时时, ,软软件件设设计计仍仍然然应应该该以以模模块块化化设设计计的的思思想想为为指指导导, ,直直至至编编码码时时再再改改用用代代入入式式(in(inline)line)方方法法。这这样样, ,源源程程序序中中虽虽不不含含明明显显的的模模块块, ,但但模模块块化化设设计所带来的大部分益处却已被系统获得。计所带来

46、的大部分益处却已被系统获得。8.2软件设计基本概念软件设计基本概念脆定季憨枕燃逼氨砌妆宛湛枯钝阂仇夫滋熄炮秃小某拘甭割梭没宛诉递讶课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202430国防科技大学计算机学院8.2.38.2.3软件总体结构设计软件总体结构设计软软件件总总体体结结构构(software (software architecture)architecture)应应该该包包括括两两方方面内容面内容()由由系系统统中中所所有有过过程程性性部部件件( (即即模模块块) )构构成成的的层层次次结构结构, , 亦称为程序结构

47、亦称为程序结构; ;()()输入输出数据结构。输入输出数据结构。软软件件总总体体结结构构设设计计的的目目标标是是产产生生一一个个模模块块化化的的程程序序结结构构并并明明确确各各模模块块之之间间的的控控制制关关系系, ,此此外外还还要要通通过过定定义义界界面面, ,说说明明程程序序的的输输入入输输出出数数据据流流, ,进进一一步步协协调调程程序结构和数据结构。序结构和数据结构。8.2软件设计基本概念软件设计基本概念贴连蔗癸锋巢鞭祈效肺秽售愧性臀效钠色亭枫降桐婿紧石疾肮龋豁跳裔粹课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/20243

48、1国防科技大学计算机学院软件总体结构设计软件总体结构设计程序结构程序结构、数据结构是逐步求精、分而治之的结果。数据结构是逐步求精、分而治之的结果。软软件件设设计计从从需需求求定定义义开开始始, ,逐逐步步分分层层导导出出程程序序结结构构和和数数据据结结构构, ,当当需需求求定定义义中中所所述述的的每每个个部部分分最最终终都都能能由由一一个个或或几几个个软软件元素实现时件元素实现时, ,整个求解过程即告结束。整个求解过程即告结束。8.2软件设计基本概念软件设计基本概念铝还只迹捧腿乘悄掀锋绑暴芯旅侩我卞膘募忿祸塑惮姓优厕起觅匠凛宣社课件软件工程SoftwareEngineering课件软件工程So

49、ftwareEngineering7/22/202432国防科技大学计算机学院软件总体结构设计软件总体结构设计o依据任何一种软件设计方法总能推导出一个软件结构。依据任何一种软件设计方法总能推导出一个软件结构。o模块内聚度和耦合度是判断结构好坏的主要标准模块内聚度和耦合度是判断结构好坏的主要标准 。8.2软件设计基本概念软件设计基本概念党久狸蚁秆俩菲这闽隆泰壮股媒矣牙基铭退但闹沥科励烘吊蜜哎赴谍贾舌课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202433国防科技大学计算机学院软件总体结构设计软件总体结构设计表示程序结构的工具表示程

50、序结构的工具类树图类树图(Tree(Treelike diagram)like diagram)WarnierWarnierOrrOrr图图Jackson Jackson 图等图等8.2软件设计基本概念软件设计基本概念尉寅沥亥综潜胆河炔攫条末共采战氟水塑肪仇伐记驻刹达信涝民须谭纂粹课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202434国防科技大学计算机学院程序结构的术语程序结构的术语o软软件件的的深深度度(Depth)(Depth)和和宽宽度度(Width)(Width)分分别别说说明明控控制制的的层层数和跨度数和跨度。o模模

51、块块的的“扇扇出出率率”(Fan(Fanout)out)指指,该该模模块块直直接接控控制制的的其他模块数其他模块数。o模模块块的的“扇扇入入 率率”(Fan(Fanin)in)指指,能能直直接接控控制制该该模模块块的模块数。的模块数。8.2软件设计基本概念软件设计基本概念诗泄轧证温卯竖叙痹鲍岿堰陨妥桨轩砧净钳肮溪淡刁亢净骤挠诲函酵好藤课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202435国防科技大学计算机学院程序结构的术语程序结构的术语o如如果果一一个个模模块块控控制制另另一一模模块块, ,称称前前者者为为“主主控控”模模块块

52、, ,后后者者为为“从属从属”模块。模块。o软件结构软件结构的的可见域和连通域。可见域和连通域。模块的可见域指,该模块可直接或间接引用的一组模块模块的可见域指,该模块可直接或间接引用的一组模块; ;模块的连通域指,模块可直接引用的模块。模块的连通域指,模块可直接引用的模块。 o软件的总体结构应该在考虑每个模块的细节前就确定下来。软件的总体结构应该在考虑每个模块的细节前就确定下来。o软软件件设设计计方方法法鼓鼓励励人人们们首首先先致致力力于于软软件件总总体体结结构构的的设设计计, ,而而后后再进行详细设计。再进行详细设计。o每一种方法导出总体结构的具体方式不尽相同。每一种方法导出总体结构的具体方

53、式不尽相同。8.2软件设计基本概念软件设计基本概念论谩扣炯囱蔬仟创乞吉渺暖署哑蕊依遮章栖形醚霍禹恒讼爽摹粪部接销撕课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202436国防科技大学计算机学院8.2.48.2.4数据结构设计数据结构设计数数据据结结构构描描述述各各数数据据分分量量之之间间的的逻逻辑辑关关系系, ,数数据据结结构构一一经经确确定定, ,数数据据的的组组织织形形式式、访访问问方方法法、组组合合程程度度及及处处理理策策略略基基本本上上随随之之确确定定, ,所所以以数数据据结结构构是是影影响响软软件件总总体体结结构构的的

54、重重要要因因素素, ,对对数数据据结结构构的的完完整整讨讨论论超超出出本本书书的的范范围围, ,但但掌掌握握标标量量、数数组组、链链表表和和树树等等典典型型的的数数据据表表示示方方法法, ,并并能能根根据据实实际际需需要要灵灵活活应应用用十十分分必要。必要。数数据据结结构构与与程程序序结结构构一一样样, ,也也可可以以在在不不同同的的抽抽象象级级别别上上表表示示。以以栈栈为为例例, ,作作为为一一个个抽抽象象数数据据类类型型, ,在在概概念念级级上上只只关关心心“先先进进后后出出”特特性性, ,而而在在实实现现级级上上则则要要考考虑虑物物理理表表示示及及内内部部工工作作的的细细节节, ,比如比

55、如, ,用向量实现用向量实现, ,或用链表实现等等。或用链表实现等等。8.2软件设计基本概念软件设计基本概念士听剁树诧赛霓吼谦太垫续篮环缓擞癣拐郴气验侧康度毙轴怪傣碾启虑呻课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202437国防科技大学计算机学院数据结构设计数据结构设计o数数据据结结构构对对程程序序结结构构和和过过程程复复杂杂性性有有直直接接的的影影响响, ,数数据结构设计据结构设计很很重要重要, ,在很大程度上决定软件的质量。在很大程度上决定软件的质量。o无无论论采采用用哪哪一一种种软软件件设设计计技技术术, ,没没有有良

56、良好好的的数数据据结结构构,不可能导出良好的程序结构。不可能导出良好的程序结构。o数数据据设设计计是是为为在在需需求求规规格格说说明明中中定定义义的的那那些些数数据据对对象象选选择择合合适适的的逻逻辑辑表表示示, ,并并确确定定可可能能作作用用在在这这些些逻逻辑辑结构上的所有操作结构上的所有操作( (包括选用已存在的程序包包括选用已存在的程序包) )。o数据抽象和信息隐藏两个概念是数据设计的基础。数据抽象和信息隐藏两个概念是数据设计的基础。o数数据据设设计计方方案案不不是是唯唯一一的的, ,有有时时需需进进行行算算法法复复杂杂性性分分析后才能从多种候选中找出最佳者。析后才能从多种候选中找出最佳

57、者。8.2软件设计基本概念软件设计基本概念订迪楞徒齐好水懦打逢件己涌步踢律岛慕尺拙无词肩孤姑钨葛茂向醛适酋课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202438国防科技大学计算机学院8.2.58.2.5软件过程设计软件过程设计o程程序序结结构构仅仅考考虑虑软软件件总总体体结结构构中中模模块块之之间间的的控控制制分分层关系层关系, ,而不关心模块内各处理元素和判断元素的顺序而不关心模块内各处理元素和判断元素的顺序。o过过程程设设计计紧紧跟跟在在数数据据结结构构设设计计和和程程序序结结构构设设计计之之后后, ,基本任务是描述这方面

58、的信息基本任务是描述这方面的信息。o过过程程包包括括有有关关处处理理的的精精确确说说明明, ,如如事事件件的的顺顺序序、确确切切的判断位置、循环操作以及数据的组成等等。的判断位置、循环操作以及数据的组成等等。o程程序序结结构构与与软软件件过过程程相相互互关关联联,程程序序结结构构中中任任个个模模块块的的所所有有从从属属模模块块必必将将被被引引用用出出现现在在该该模模块块的的过过程程说说明中。明中。8.2软件设计基本概念软件设计基本概念斤骨雀此荫稗域之斥擦域讣厦牡馋司驳赐蓬威壕兔杨祸蕴柞糠咨渗裙汪葵课件软件工程SoftwareEngineering课件软件工程SoftwareEngineerin

59、g7/22/202439国防科技大学计算机学院图图8 8. .6 6 模块模块A A的内部结构的内部结构8.2软件设计基本概念软件设计基本概念圃隔且后烹蓟袖扭碧攻弗榔萝吧性灼坑秦市祟皑瑰浮哉冉领颠啃搭历念昌课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202440国防科技大学计算机学院图图8 8. .7 7 过程的层次结构过程的层次结构8.2软件设计基本概念软件设计基本概念搭醋勿茎杯拼对搀骏番枚肥揪贴怕改曼深丢熟瘸彬总娄撤噬揪乞蛇杆慈眠课件软件工程SoftwareEngineering课件软件工程SoftwareEngineeri

60、ng7/22/202441国防科技大学计算机学院8.38.3过程设计技术和工具过程设计技术和工具8.3.18.3.1结构化程序设计结构化程序设计过过程程设设计计的的任任务务是是描描述述算算法法的的细细节节,下下面面讨讨论论过过程程设设计计的的技术和工具。技术和工具。o结构化程序设计结构化程序设计E.W.DijkstraE.W.Dijkstra提出提出, ,理由是理由是GOTOGOTO语句对程序的可读性、可测试语句对程序的可读性、可测试性和可维护性带来极大的危害性和可维护性带来极大的危害, ,应该用更可维护的控制结构替应该用更可维护的控制结构替代它。代它。BohmBohm和和JacopiniJa

61、copini证证明明了了仅仅用用“顺顺序序”、“分分枝枝”和和“循循环环”三三种种基基本本的的控控制制构构件件即即能能构构造造任任何何单单入入口口单单出出口口程程序序, ,这这个个结结论奠定了结构程序设计的理论基础论奠定了结构程序设计的理论基础。第八章第八章 软件设计基础软件设计基础驯档譬鸟企胚铂渺垒夺禽钻嫁膝魏摘恼恒卖淘畦浩常乳鄙娘委静肪遇纪辰课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202442国防科技大学计算机学院过程设计技术和工具过程设计技术和工具o结构结构化化程序设计定义程序设计定义采采用用自自顶顶向向下下逐逐步步求

62、求精精的的设设计计方方法法和和单单入入口口单单出出口口的控制构件。的控制构件。o自自顶顶向向下下逐逐步步求求精精的的方方法法是是人人类类解解决决复复杂杂问问题题时时常常用用的的方方法法, ,采采用用这这种种先先整整体体后后局局部部, ,先先抽抽象象后后具具体体的的步步骤开发的软件具有较清晰的层次。骤开发的软件具有较清晰的层次。o仅仅使使用用单单入入口口单单出出口口的的控控制制构构件件,程程序序有有良良好好的的结结构构特特征征, ,能能降降低低程程序序的的复复杂杂性性, ,增增强强程程序序的的可可读读性性、可可维护性和可验证性维护性和可验证性, ,提高软件的生产率。提高软件的生产率。8.3过程设

63、计技术和工具过程设计技术和工具丈断谊揭遮殿控图雹袄为搅阀沫阻龚墅逻椰苑楚盈闭匈琴咏妈棚稠缄捍怒课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202443国防科技大学计算机学院过程设计技术和工具过程设计技术和工具o结结构构程程序序设设计计的的思思想想,应应该该在在软软件件设设计计中中体体现现出出来来, ,但但这这并并不不排排除除为为效效率率或或其其他他原原因因, ,对对结结构构程程序序设设计计作作一点修正。一点修正。o随随着着面面向向对对象象、软软件件重重用用等等新新的的软软件件开开发发方方法法和和技技术术的的发发展展, ,更更现现

64、实实、更更有有效效的的开开发发途途径径可可能能是是自自顶顶向向下和自底向上两种方法下和自底向上两种方法的的有机结合。有机结合。8.3过程设计技术和工具过程设计技术和工具茎登揣瘤搓硅覆架忽破赠慎累匹鞋煮妈淆榔醚饵粪年甚泥怕十干蓝淄媚滁课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202444国防科技大学计算机学院8.3.28.3.2图形表示法图形表示法流程图、盒图是描述过程细节的工具。流程图、盒图是描述过程细节的工具。流流程程图图( (也也称称为为程程序序框框图图) )是是最最常常用用的的一一种种表表示示法法, ,它它能能直直观观地

65、地描描述述过过程程的的控控制制流流程程, ,最最便便于于初初 学学者者掌掌握握。流流程程图图中中方方框框表表示示处处理理步步, ,菱菱形形框框表表示示判判断断步步, ,有有向向线线段段表示控制流。表示控制流。顺顺序序、分分枝枝、循循环环三三个个基基本本控控制制构构件件用用流流程程图图表达的形式如图表达的形式如图8 88 8所示。所示。8.3过程设计技术和工具过程设计技术和工具心际揽格沥给望儡纵怒勤妇帕票例半拥噎貌帽锣折曰怂新念邀看洱驭违了课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202445国防科技大学计算机学院图形表示法图形

66、表示法CaseCase结构是结构是ififthenthenelseelse结构的推广结构的推广, ,dodowhilewhile循循环环与与repeatrepeat循循环环的的区区别别仅仅在在于于测测试试循循环环条条件与执行循环体的先后次序。件与执行循环体的先后次序。嵌嵌套套使使用用这这些些控控制制结结构构能能逐逐步步形形成成更更复复杂杂的的控控制制流流程程描述。描述。如如果果对对流流程程图图中中每每一一构构件件用用“边边框框”圈圈起起来来, ,边边界界之之间间不不出出现现交交叉叉, ,则则说说明明所所有有构构件件都都为为单单入入口口单单出出口口, ,称称此此程序为结构化程序程序为结构化程序(

67、structured program)(structured program)。图图8 89 9为一个结构化程序的流程图。为一个结构化程序的流程图。8.3过程设计技术和工具过程设计技术和工具鄙惭春俄访索速栏尸睛貌主艳滋蝗燎刮窍贡菊丰赏凰恼禽儡四诛颅怂贿盆课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202446国防科技大学计算机学院图图8 8. .8 8 流程图构件流程图构件8.3过程设计技术和工具过程设计技术和工具粘筒愿碳磕幕肪裸疫丫碎爱胯废哟瞬棠侦院叼拿饼霞丝赶撬遣织焚席驳辣课件软件工程SoftwareEngineering课

68、件软件工程SoftwareEngineering7/22/202447国防科技大学计算机学院图图8 8. .9 9 结构化程序的流程图结构化程序的流程图8.3过程设计技术和工具过程设计技术和工具娘香膊逻踞给挎足庞志波贝促怔纫体藉血忿循赔盗斗揽褒谩畅墒兄翘盒别课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202448国防科技大学计算机学院过程设计技术和工具过程设计技术和工具由由NassiNassi和和SheidermanSheiderman提提出出的的盒盒图图, ,也也称称为为N NS S图图, ,它它强强迫迫程程序序员员以以结结构

69、构化化方方式式思思考考和和解解决决问问题题, ,三三种种基基本本控控制构件用盒图表达的形式如图制构件用盒图表达的形式如图8 81010所示。所示。图图8 81010盒图的构件盒图的构件图图8 89 9表示的过程用盒图表示形如图表示的过程用盒图表示形如图8 81111。图图8 81111盒图盒图盒盒图图的的功功能能域域( (指指分分枝枝和和循循环环结结构构的的边边界界) )比比流流程程图图更更清清晰晰, ,控控制制不不能能随随意意转转移移, ,并并且且数数据据的的作作用用域域容容易易确定。确定。8.3过程设计技术和工具过程设计技术和工具蘸顺蚌拔戊译葡膳等攒半甜蔫豹悯阂扼泞慰凄慎音谋稽眉简熙彤硼烁

70、遇最课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202449国防科技大学计算机学院图图8 8. .10 10 盒图的构件盒图的构件8.3过程设计技术和工具过程设计技术和工具死庆枯献毗峡停姜瞅黄鹊妊狸瓤谬辖煮惶挑照獭载枯怜横吵铡仆苔控碧吃课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202450国防科技大学计算机学院图图8 8. .11 11 盒图盒图8.3过程设计技术和工具过程设计技术和工具肝抉汪砍凿粟唬磋咎察宰葵柬娃昧殴阅况蛔聊霍捍践封哲怪考邵雌坯靛套课件软件工程

71、SoftwareEngineering课件软件工程SoftwareEngineering7/22/202451国防科技大学计算机学院8.3.38.3.3 判定表判定表o当当模模块块中中包包含含复复杂杂的的条条件件组组合合, ,并并要要根根据据这这些些条条件件选选择择动动作作时时, ,流流程程图图、盒盒图图及及8.3.48.3.4节节将将介介绍绍的的过过程程设设计计语语言言(PDL)(PDL)都都有有一一定定的的缺缺陷陷,判判定定表表能能清清晰晰地地表表示示出出复杂的条件组合与各种动作之间的对应关系。复杂的条件组合与各种动作之间的对应关系。o一一张张判判定定表表由由四四部部分分组组成成, ,左左

72、上上部部列列出出所所有有条条件件, ,左左下下部部列列出出所所有有可可能能的的动动作作, ,右右部部为为一一矩矩阵阵, ,说说明明条条件件与与动动作作之之间间的的对对应应关关系系, ,其其每每列列可可解解释释为为一一条条处处理理规规则则。8.3过程设计技术和工具过程设计技术和工具爬舍众伸业蔼疹嚼氓却瞧喂蹬瞒删箱政颈刨绑恃坝虞稿牧物奸画敲谱点墩课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202452国防科技大学计算机学院判定表判定表例例8 82 2简化的账单系统判定表简化的账单系统判定表问题描述:问题描述:耗耗电电记记费费系系统统

73、可可以以采采用用固固定定价价格格收收费费和和浮浮动动价价格格收收费费两种方式。两种方式。o若若采采用用固固定定价价格格方方式式收收费费, ,对对每每月月耗耗电电100100千千瓦瓦小小时时以以下下的的用用户户只只征征收收最最低低标标准准费费, ,超超过过100100千千瓦瓦小小时时的的用用户按价格表户按价格表A A收费收费; ;o若若采采用用浮浮动动价价格格方方式式收收费费, ,则则每每月月耗耗电电100100千千瓦瓦小小时时以以下下的的用用户户按按价价格格表表A A收收费费, ,超超过过100100千千瓦瓦小小时时的的用用户户按价格表按价格表B B收费。收费。8.3过程设计技术和工具过程设计

74、技术和工具粱儿炉象辨脓康疚舵澜披腊潭遣鄙旺剿蹿煤郝契现勾吐拽榔或疤隐狗瀑奄课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202453国防科技大学计算机学院判定表判定表采用下述步骤产生表采用下述步骤产生表8 8. .1 1所示判定表所示判定表: :列列出出与与该该过过程程( (或或模模块块) )有有关关的的动动作作( (共共四四项项, ,分分别别为为收收取取最最低低标标准准费费、按按价价格格表表A A收收费费、按按 价价格格表表B B收收费费, ,其他处理其他处理););列列出出所所有有独独立立条条件件( (共共四四条条, ,分分别

75、别为为固固定定价价格格方方式式、浮浮动动价价格格方方式式、每每月月耗耗电电少少于于100100千千瓦瓦 小小时时, ,每每月月耗耗电电超过超过100100千瓦小时千瓦小时););根根据据问问题题处处理理描描述述, ,把把条条件件组组合合与与特特定定的的动动作作联联系系起起来来, ,删去无意义的条件组合删去无意义的条件组合; ;定定义义处处理理规规则则( (共共5 5条条) ),即即指指明明什什么么情情况况下下做做什什么么动动作。作。8.3过程设计技术和工具过程设计技术和工具柏往磋遵忙洼恶障梅伏翱饰赁拖雹嚣膊戚渺憾承苑疵虎叉尉礼青辗乃跋姨课件软件工程SoftwareEngineering课件软件

76、工程SoftwareEngineering7/22/202454国防科技大学计算机学院表表8 8. .1 1 判定表判定表8.3过程设计技术和工具过程设计技术和工具飞索纱瞄贬蘑急赡嗓恬贷役顽恤毙钢封磅垢辨短陪羡鉴萎猾梆碌僻孵控鸵课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202455国防科技大学计算机学院判定表判定表o尽尽管管判判定定表表能能够够简简洁洁无无歧歧义义地地描描述述处处理理规规则则, ,但但却却不不能清晰地表示顺序和循环结构。能清晰地表示顺序和循环结构。o判判定定表表常常作作为为一一种种辅辅助助设设计计工工具具与与其

77、其他他过过程程设设计计工工具结合使用。具结合使用。8.3过程设计技术和工具过程设计技术和工具红驱患班做友狼睛句两和诺润谭混缸伤捉暇涕台剿支貉铀辰舱鸽好咳情坎课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202456国防科技大学计算机学院8.3.48.3.4过程设计语言过程设计语言(PDL)(PDL)oPDL(Procedure PDL(Procedure Design Design Language)Language)也也称称为为结结构构英英语语或或伪伪码码, ,是是所所有有正正文文形形式式的的过过程程设设计计工工具具的的统统称称

78、, ,目目前前有多种有多种PDLPDL。oPDLPDL经经常常表表现现为为一一种种“混混杂杂”的的形形式式, ,允允许许自自然然语语言言( (如如英英语语) )的的词词汇汇与与某某种种结结构构化化程程序序设设计计语语言言( (如如PascalPascal、AdaAda等等) )的的语语法法结结构构交交织织在在一一起起,目目前前大大多多数数PDLPDL描述不能直接编译。描述不能直接编译。8.3过程设计技术和工具过程设计技术和工具铡瘦彼宠油郸照邢束抑汾哺腺痒礁艳搐鹅光业秤加翟充暗胡杏目杖疑砂淋课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/2

79、2/202457国防科技大学计算机学院过程设计语言过程设计语言(PDL) (PDL) 关关键键字字采采用用固固定定语语法法并并支支持持结结构构化化构构件件、数数据据说说明明机制和模块化机制和模块化; ;处理部分采用自然语言描述处理部分采用自然语言描述; ;允允许许说说明明简简单单( (标标量量、数数组组等等) )和和复复杂杂( (链链表表、树树等等) )的数据结构的数据结构; ;子子程程序序的的定定义义与与调调用用规规则则不不受受具具体体接接口口方方式式的的影影响响。现现今今大大多多数数PDLPDL都都以以某某种种流流行行的的高高级级程程序序设设计计语语言言作作为为基基础础, ,例例如如Ada

80、AdaPDLPDL是是AdaAda团团体体中中广广为为使使用用的的设设计计工具。工具。8.3过程设计技术和工具过程设计技术和工具赏嘱馈狐厕幂加炊墨垣尊阎棚翼焉泅脆愚潜肌旨影彬扒卉匝嚎社膳孔凳递课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202458国防科技大学计算机学院过程设计语言过程设计语言(PDL)(PDL)o考察建立在通用结构化程序设计语言上的考察建立在通用结构化程序设计语言上的PDLPDL原型。原型。o基本成分基本成分子程序定义界面描述子程序定义界面描述数据说明块结构数据说明块结构分枝结构循环结构分枝结构循环结构I/OI

81、/O结构结构8.3过程设计技术和工具过程设计技术和工具斯产滦狭饰偶集参混链鲸演拦邻肠必乞目烘煮氨疼种牲更泌殖临廊懦脖关课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202459国防科技大学计算机学院过程设计语言过程设计语言(PDL) (PDL) 数据说明的常用形式数据说明的常用形式TYPETYPE ISIS 1 2此此处处 既既可可为为过过程程的的某某个个局局部部变变量量, ,亦亦可可为为多多个个过程共过程共用的全局变量用的全局变量; ; 1为为 某某 个个 特特 定定 关关 键键 字字 ( (例例 如如,SCALAR,ARRAY

82、,LIST,SCALAR,ARRAY,LIST,STRING,STRUCTURESTRING,STRUCTURE等等);); 2说说明明此此处处定定义义的的变变量量在在该该过过程程或或整整个个程程序序中中应如何使用。应如何使用。8.3过程设计技术和工具过程设计技术和工具藏跑赏闪硝垛班倪刑某抹砷碑按湘倚抖此寂晤滓搪耳望忆梧曾谍臻俏律僻课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202460国防科技大学计算机学院过程设计语言过程设计语言(PDL) (PDL) PDLPDL允许定义面向具体问题的抽象数据类型。允许定义面向具体问题的抽象

83、数据类型。如如, ,在某编译器的模块设计时可能使用下面的数据说明在某编译器的模块设计时可能使用下面的数据说明: :TYPETYPEtabletableISISINSTANCEINSTANCEOFOFsymbolablesymbolable假定假定symboltablesymboltable是在另一处定义的抽象数据类型是在另一处定义的抽象数据类型: :TYPETYPEsymboltablesymboltableISISSTRUCTURESTRUCTUREDEFINEDDEFINED 该该PDLPDL的的块块结结构构描描述述一一个个过过程程元元素素, ,即即一一个个块块内内的的所所有有语语句句将作

84、为一个整体执行将作为一个整体执行形式为形式为BEGINBEGIN块名块名语句序列语句序列ENDEND8.3过程设计技术和工具过程设计技术和工具陛抨痞饺蒜耕炯醛捆建殖嵌船恼匣局稗家利宽苛状桶绒缎财惩筹簿适抨绕课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202461国防科技大学计算机学院过程设计语言过程设计语言(PDL)(PDL)该该PDLPDL的分枝结构有的分枝结构有ifthenelseifthenelse和和casecase两两种种形形式式IFIF条件描述条件描述THENTHEN块结构或语句块结构或语句ELSEELSE块结构或语

85、句块结构或语句ENDIFENDIFCASEOFCASEOF情况变量名情况变量名WHENWHEN第第1 1种种情情况况SELECTSELECT块结构或语句块结构或语句; ;WHENWHEN第第2 2种种情情况况SELECTSELECT块结构或语句块结构或语句; ; WHENWHEN最最后后一一种种情情况况SELECTSELECT块结构或语句块结构或语句; ;DEFAULT:DEFAULT:块块结结构构或或语语句句; ;ENDCASEENDCASE8.3过程设计技术和工具过程设计技术和工具篷钎爹伴辖放邵孕闸敛扣檄配除娃库撩蛹谎季装垃拆胸驳颗诫碰菜那窑碍课件软件工程SoftwareEngineeri

86、ng课件软件工程SoftwareEngineering7/22/202462国防科技大学计算机学院过程设计语言过程设计语言(PDL)(PDL)循循环环结结构构包包括括前前测测试试循循环环、后后测测试试循循环环和和固固定定循循环环三三类类, ,表表达达形形式式分分别为别为DOWHILEDOWHILE条件描述条件描述块结构或语句块结构或语句ENDWHILEENDWHILEREPEATUNTILREPEATUNTIL条件描述条件描述块结构或语句块结构或语句ENDREPENDREPDOFORDOFOR循循环环变变量量= =循循环环变变量量取取值范围值范围, ,表达式或序列表达式或序列块结构或语句块结构

87、或语句ENDFORENDFOR除除标标准准循循环环构构件件外外, ,此此PDLPDL还还提提供供了了NEXTNEXT和和EXITEXIT两种语句两种语句, ,旨在支持旨在支持受受限限方方式式退退出出循循环环。EXITEXIT将将控控制制转转到到其其所所在在循循环环后后的的第第一一个个语语句句,NEXT,NEXT强迫本强迫本次次循循环环结结束束, ,新新一一轮轮循循环环开开始始。若若外外层层循循环环带带标标号号,EXIT,EXIT和和NEXTNEXT能能实实现现从多层从多层嵌嵌套套的的内内循循环环中中直直接接跳跳出出, ,而而不不必必逐逐层退出。层退出。在该在该PDLPDL中中, ,子程序说明为

88、子程序说明为PROCEDUREPROCEDURE子子程程序序名名属属性性表表INTERFACEINTERFACE参数表参数表块结构和块结构和/ /或语句序列或语句序列ENDEND8.3过程设计技术和工具过程设计技术和工具僧陨育间传永滋放磅拯隧出挑梁记铅苹俐樟鸥午缆整决肌狙奥俄昌汀钮棱课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202463国防科技大学计算机学院过程设计语言过程设计语言(PDL) (PDL) o属性表指明属性表指明子程序的引用特性子程序的引用特性如如,INTERNAL,INTERNAL、EXTERNALEXTERN

89、AL模式模式o依赖于程序设计语言的实现依赖于程序设计语言的实现o输入输入/ /输出说明部分的形式输出说明部分的形式READ/WRITETOREAD/WRITETO设备设备I/OI/O表表或或ASKASK询问询问ANSWERANSWER响应选择项响应选择项后一形式多用于人机交互的设计。后一形式多用于人机交互的设计。8.3过程设计技术和工具过程设计技术和工具杰帚吱仕恃僳该鸣鸟炕更掠莆陋机嘿套萤个拴眼妥瓮舍墟蔗坷仿肚段戎躲课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202464国防科技大学计算机学院过程设计语言过程设计语言(PDL)(

90、PDL)PDLPDL扩充扩充多任务、并行处理、异常处理、进程同步等机制。多任务、并行处理、异常处理、进程同步等机制。使用某个使用某个PDLPDL进行过程设计进行过程设计, ,应充分了解全部内容。应充分了解全部内容。8.3过程设计技术和工具过程设计技术和工具邯攒闷特督霖刽唯谊辉白改坑造未潞立洁掐盖傲末迂椿骚蕊慧肃友郭明邀课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202465国防科技大学计算机学院8.3.58.3.5过程设计工具之比较过程设计工具之比较比比较较前前述述种种种种设设计计工工具具之之优优劣劣须须基基于于这这样样一一个个

91、前前提提, ,即即如如果果使使用用得得当当, ,任任一一种种工工具具都都将将对对过过程程设设计计提提供供宝宝贵贵的的支支持持, ,反反之之即即使使是是最最好好的的工工具具亦亦可可能能产产生生难难于于理理解解的设计。的设计。衡衡量量一一个个设设计计工工具具好好坏坏的的一一般般准准则则是是看看其其所所产产生生的的过过程程描描述述是是否否易易于于理理解解、复复审审和和维维护护, ,进进而而过过程程描描述述能能否自然地转换为代码并保证设计与代码完全一致。否自然地转换为代码并保证设计与代码完全一致。8.3过程设计技术和工具过程设计技术和工具甸骇吗吧蜀萍文姨魂重贫誓棱堤骄鞘臭夏卜溶甘奎叠旅诬磷贯荐大书淘陈

92、课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202466国防科技大学计算机学院设计工具属性设计工具属性(1)(1)模模块块化化(Modularity):(Modularity):支支持持模模块块化化软软件件的的开开发发并并提提供描述接口的机制供描述接口的机制( (例如直接表例如直接表 示子程序和块结构示子程序和块结构););(2)(2)整整体体简简洁洁性性(Overall (Overall Simplicity):Simplicity):设设计计表表示示相相对对易学、易用、易读易学、易用、易读; ;(3)(3)便便于于编编辑辑(

93、Ease (Ease of of Editing):Editing):支支持持后后续续设设计计、测测试试乃至维护阶段对过程设计进乃至维护阶段对过程设计进 行的修改;行的修改;(4)(4)机机器器可可读读性性(Machine (Machine Readability):Readability):计计算算机机辅辅助助软软件件工工程程(CASE)(CASE)环环境境已已被被广广泛泛接接受受, , 一一种种设设计计表表示示法法若若能直接输入并被能直接输入并被CASECASE工具识别将带来极大便利工具识别将带来极大便利; ;8.3过程设计技术和工具过程设计技术和工具厩浦刑肇揩唐踩白幸狡惯款转羡昨迹痞币璃

94、蔚坠籽肋既厢特壶赦卞卿司任课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202467国防科技大学计算机学院过程设计工具之比较过程设计工具之比较(5)5)可可维维护护性性(Maintainability):(Maintainability):过过程程设设计计表表示示应应支支持各种软件配置项的维护持各种软件配置项的维护; ;(6)(6)强强制制结结构构化化(Structure (Structure Enforcement):Enforcement):过过程程设设计计工工具具应应能能强强制制设设计计人人员员采采用用 结结构构化化构构件件

95、,有有助助于于产产生生好好的设计的设计; ;(7)(7)自自动动产产生生报报告告(Automatic (Automatic Processing):Processing):设设计计人人员员通通过过分分析析详详细细设设计计的的结结果果往往往往能能突突 发发灵灵感感, ,改改进进设设计计。若若存存在在自自动动处处理理器器, ,能能产产生生有有关关设设计计的的分分析析报报告告必必将将增增强设计人员在这强设计人员在这 方面的能力方面的能力; ;8.3过程设计技术和工具过程设计技术和工具厢癣鞠电维利署谰厦鸭告屋懒免忙胚恃弯丫布披旬尼辈己站每沪詹龋兹衡课件软件工程SoftwareEngineering课件

96、软件工程SoftwareEngineering7/22/202468国防科技大学计算机学院过程设计工具之比较过程设计工具之比较(8)(8)数数据据表表示示(Data (Data Representation):Representation):详详细细设设计计应应具具备备表示局部与全局数据的能力;表示局部与全局数据的能力;(9)(9)逻逻辑辑验验证证(Logic (Logic Verification):Verification):能能自自动动验验证证设设计计逻逻辑辑的的正正确确性性是是软软件件测测试试 追追求求的的最最高高目目标标, ,设设计计表表示示愈易于逻辑验证其可测试性愈强愈易于逻辑验证

97、其可测试性愈强; ;(10)(10)可可编编码码能能力力(“Code (“Code to” to” Ability):Ability):一一种种设设计计表表示示若若能能自自然然地地转转换换为为代代码码则则能能减减少少开开发发 费费用用, ,降降低低出出错率。错率。8.3过程设计技术和工具过程设计技术和工具氰化炽峦加头在靛季看刀妨贯线蹋哗谁奇矿迟纤谤皮毒斌肃拨坡曲郧皂位课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202469国防科技大学计算机学院过程设计工具之比较过程设计工具之比较对对照照上上述述属属性性, ,到到底底哪哪一一种种

98、过过程程设设计计工工具具最最好好呢呢? ?回回答答将将因因人人而而异异。一一般般认认为为,PDLPDL较较好好地地组组合合了了这这组组特特性性。PDLPDL还还可可直直接接嵌嵌在在源源代代码码中中作作为为设设计计文文档档和和注注释释, ,减减少少维维护护的的困困难难;PDLPDL描描述述可可用用一一般般正正文文编编译译器器或或字字处处理理软软件件编编辑辑;PDLPDL自自动动处处理理器器已已经经面面世世, ,并有可能开发出并有可能开发出“代码自动产生器代码自动产生器”。然然而而, ,这这并并不不意意味味着着其其他他的的设设计计工工具具一一定定弱弱于于PDL,PDL,例例如如, ,流流程程图图和

99、和盒盒图图能能直直观观地地表表示示控控制制流流程程 ;判判定定表表因因能能精精确确地地描描述述组组合合条条件件与与动动作作之之间间的的对对应应关关系系,特特别别适适用用于于表表格格驱驱动动一一类类软软件件的的开开发发;其其他他一一些些设设计计工工具具也也自自有有独独到到之之处处。经经验验表表明明, ,具具体体选选择择过过程程设设计计工工具具时时, ,人人的的因因素素可可能能比比技技术术因因素素更更具具有有影影响响力力。8.3过程设计技术和工具过程设计技术和工具罐砰财剿龟类阜纬磐蕊桔陛瞥渡轴她虽眺门狠鸥潞甚盗枫铀辐舟撒格棍迷课件软件工程SoftwareEngineering课件软件工程Softw

100、areEngineering7/22/202470国防科技大学计算机学院8.48.4设计规格说明与评审设计规格说明与评审 软软件件设设计计阶阶段段的的输输出出主主要要是是设设计计规规格格说说明明书书, ,结结构构如如表表8 82 2所所示示, ,各各条条款款的的内内容容是是在在设设计计求求精精过过程中逐步确定的。程中逐步确定的。第八章第八章 软件设计基础软件设计基础慈孜硼坍更绩惰综岔垢卸翔唯蛔肚磊析兜咱辛板沟润埋哉先朔万傻吞片阻课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202471国防科技大学计算机学院设计规格说明与评审设计规

101、格说明与评审设计说明书设计说明书第第一一节节描描述述与与设设计计活活动动有有关关的的各各个个方方面面, ,该该节节中中许许多多信信息息取取自自系系统统规规格格说说明明书书和和系系统统定定义义阶阶段段产产生生的的其其他他文文档。档。第二节具体指明引用信息的出处。第二节具体指明引用信息的出处。第第三三节节设设计计描描述述是是概概要要设设计计的的产产物物, ,设设计计由由信信息息驱驱动动, ,即即软软件件总总体体结结构构主主要要受受数数据据流流程程、数数据据结结构构的的影影响响, ,需需求求分分析析时时产产生生的的DFDDFD或或其其他他某某种种形形式式的的数数据据表表示示将将在这一节中进一步精化在

102、这一节中进一步精化, ,用于确定软件结构。用于确定软件结构。8.4设计规格说明与评审设计规格说明与评审漆几顷褪磅龚自掉壬寿三昭方氢永象问渗拼涵蚜狸综鹰瞅熏旅坟挽不筏凄课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202472国防科技大学计算机学院设计规格说明与评审设计规格说明与评审第第四四节节的的模模块块指指软软件件中中可可单单独独编编址址的的部部件件,如如函函数数和和过过程程, ,最最初初用用自自然然语语言言描描述述它它们们的的功功能能, ,随随后后采采用用某某种种过过程程设设计计工工具具将将这这些些自自然然语语言言描描述述转转

103、换换为为结结构构化化描描述述, ,第第五五节节主主要要描描述述数数据据组组织织结结构构, ,包包括括辅辅存存的的文文件件结结构构、全全局局数数据据( (例例如如FORTRANFORTRAN公公共共区区) )的的赋赋值值以以及及这这些些文文件件与全局数据的交叉访问关系。与全局数据的交叉访问关系。第第六六节节是是与与需需求求规规格格说说明明书书的的交交叉叉访访问问表表, ,根根据据交交叉叉访访问问表表可可断断定定设设计计是是否否满满足足所所有有需需求求,这这对对于于完完成成某某个个具体需求的模块来说十分重要。具体需求的模块来说十分重要。8.4设计规格说明与评审设计规格说明与评审疵加沾狡队虾漂难烙娶

104、眠滥亥风叠针襄售嚼大攀主泅柏徽肄涝肥争霍爸罕课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202473国防科技大学计算机学院设计规格说明与评审设计规格说明与评审第七节测试的初步计划。第七节测试的初步计划。一一旦旦软软件件结结构构和和模模块块间间界界面面确确定定下下来来之之后后, ,即即可可制制定定模模块块单单元元测测试试和和联联调调计计划划。某某些些场场合合, ,要要求求同同时时开开发发测测试试规规格格说说明明书书与与设设计计规规格格说说明明书书, , 此此时时第第七七节节之之内内容容可可从从设设计计规规格格说说明明书书中中删删去

105、去。软软件件设设计计常常常常受受各各种种限限制制的的影影响响, ,例例如如物物理理存存储储器器容容量量、特特殊殊外外部部接接口口对对装装配配的的要要求求、必必要要的的程程序序复复盖盖、虚虚存存管管理理和和高高速处理等诸多因素都可能导致设计的修改。速处理等诸多因素都可能导致设计的修改。第八节将逐条说明这种限制和造成的影响。第八节将逐条说明这种限制和造成的影响。第第九九、十十两两节节包包括括若若干干辅辅助助数数据据, ,如如从从其其他他文文档档中中节节选选的的算算法法描描述、候选的过程、表格化数据和其他相关信息。述、候选的过程、表格化数据和其他相关信息。8.4设计规格说明与评审设计规格说明与评审驱

106、灭悯订梨楼绦厦辟米导痉哦势捕饮冯稼辣茨块灌钞褪饿胰翅苯雀脊归俺课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202474国防科技大学计算机学院设计规格说明与评审设计规格说明与评审o 这这些些信信息息是是对对设设计计的的一一种种特特殊殊注注释释, ,最最后后可可开开发发一一个基本操作规格说明书或安装手册作为附录。个基本操作规格说明书或安装手册作为附录。o为了确保文档的质量,还必须对设计文档进行复审。为了确保文档的质量,还必须对设计文档进行复审。o复审的目的在于及早发现设计中的缺陷和错误。复审的目的在于及早发现设计中的缺陷和错误。o在

107、在大大型型软软件件的的开开发发过过程程中中某某些些错错误误从从一一个个阶阶段段传传到到另另一一个个阶阶段段呈呈扩扩大大趋趋势势,尽尽早早发发现现、纠纠正正错错误误所所需需的的代价较小。代价较小。 8.4设计规格说明与评审设计规格说明与评审有吟繁振锚仿测镀枚汞渴蚁停庄绎第危兄活狐筑轧冕棍出晓朋猩擅栋烽综课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202475国防科技大学计算机学院设计规格说明与评审设计规格说明与评审o复审包括复审包括软件总体结构、数据结构、软件总体结构、数据结构、结构的界面、模块过程细节。结构的界面、模块过程细节。

108、o重点重点软件结构能否满足需求软件结构能否满足需求? ?结构的形态是否合理结构的形态是否合理? ?层次是否清晰层次是否清晰? ?模块的划分是否遵循模型化和信息隐藏的思想模块的划分是否遵循模型化和信息隐藏的思想? ?系系统统的的人人机机界界面面,各各模模块块的的接接口口,以以及及出出错错处处理理是是否否恰恰当当? ?模块的设计能否满足功能与性能要求模块的设计能否满足功能与性能要求? ?选择的算法与数据结构是否合理,能否适应编程语言选择的算法与数据结构是否合理,能否适应编程语言? ?等等。等等。8.4设计规格说明与评审设计规格说明与评审臂乎鬃合卖奔虹厕奸搓皋雨枕涉惹藐罕映懂年谈炎劈岂竖窃痛信臀植盅

109、鹰课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202476国防科技大学计算机学院设计规格说明与评审设计规格说明与评审复审复审正式复审正式复审软件开发人员、用户代表和领域专家参加软件开发人员、用户代表和领域专家参加采采用用答答辩辩形形式式,与与会会者者提提前前审审阅阅了了文文档档,设设计计人人员员在在对对设设计计方方案案详详细细说说明明后后,答答复复与与会会者者的的问问题题并并记记下下各各种种重重要要的的评评审审意见。意见。非正式复审非正式复审同同行行切切磋磋、不不拘拘时时间间、不不拘拘形形式式。采采用用 “走走查查”法法,一一

110、名设计人员到会,与同事逐行审阅文档,记录发现的问题。名设计人员到会,与同事逐行审阅文档,记录发现的问题。 8.4设计规格说明与评审设计规格说明与评审肿趣迂催趾放捏唉熄产伯丑该征施铣赘宾巢毙蝎备巳蚤惊惊胎庆缅醒什绑课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202477国防科技大学计算机学院设计规格说明与评审设计规格说明与评审o复审应对事不对人。复审应对事不对人。o软软件件设设计计人人员员应应真真诚诚欢欢迎迎他他人人提提意意见见和和建建议议,尽尽早早揭露错误。揭露错误。o参参加加复复审审的的其其他他人人员员应应坦坦诚诚、友友好好,

111、防防止止把把复复审审变变为质询或辩论。为质询或辩论。o对对复复审审中中提提出出的的问问题题应应详详细细记记录录,不不要要奢奢望望所所有有问问题都能当场解决。题都能当场解决。o复审结束前,还应对本次复审作出结论。复审结束前,还应对本次复审作出结论。8.4设计规格说明与评审设计规格说明与评审扛暴荫冒豪产薪果龟侈轩宝狙骡房写娟芳滞诅蒙磺凋剖哈詹蓝固更塘狸左课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202478国防科技大学计算机学院蛮掩舵蹬作梯廉血馏吊公爬鸽奖伯秸汀桂香微棒触碉仙供乱骂宦啃棵利斤课件软件工程SoftwareEngine

112、ering课件软件工程SoftwareEngineering7/22/202479国防科技大学计算机学院小结小结o 软软件件设设计计的的主主要要任任务务是是根根据据需需求求规规格格说说明明导导出出系系统统的的实实现现方案。方案。o 软软件件设设计计在在技技术术上上可可分分为为总总体体结结构构设设计计、数数据据设设计计、过过程程设设计计和和界界面面设设计计四四个个活活动动;在在工工程程上上可可区区分分为为概概要要设设计计和和详详细设计两个阶段。细设计两个阶段。o 软软件件设设计计中中用用到到基基本本概概念念包包括括:抽抽象象与与逐逐步步求求精精;模模块块化化与信息隐藏;软件总体结构、数据结构与软

113、件过程。与信息隐藏;软件总体结构、数据结构与软件过程。o 软软件件过过程程设设计计中中最最常常用用的的技技术术和和工工具具主主要要为为结结构构化化程程序序设设计、流程图、盒图、判定表和计、流程图、盒图、判定表和PDLPDL语言。语言。o 软软件件设设计计阶阶段段的的输输出出结结果果为为设设计计规规格格说说明明书书,此此文文档档经经严严格复审后将作为编码阶段的输入文档。格复审后将作为编码阶段的输入文档。 第八章第八章 软件设计基础软件设计基础含否俏郡防精裔谷归蹄英盖启翰穷锗剑挞腺匣古栗即采煞砒雅赂躁会复侣课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202480国防科技大学计算机学院 谢谢谢谢酷晤状容灼孪染衬扬爬弧漾扑储吉播榨密练辽弱杖正韶琐遗诗才秧阂促紧课件软件工程SoftwareEngineering课件软件工程SoftwareEngineering7/22/202481国防科技大学计算机学院

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号