武汉理工软件工程导论期末

合集下载

软件工程导论期末复习题

软件工程导论期末复习题

软件工程导论期末复习题第一章1、什么是软件工程?软件工程方法学包括哪三要素?答:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程方法学三要素:方法、工具、过程。

目前使用得最广泛的软件工程方法学:传统方法学、面向对象方法学。

2、传统方法学与面向对象方法学定义传统方法学也称为生命周期方法学或结构化范型。

它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。

这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。

面向对象方法学:面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。

面向对象方法学具有下述4个要点:(1)把对象作为融合了数据及在数据上的操作行为的软件构件。

(2)把所有对象都划分成类。

(3)按照父类(或称为基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。

(4)对象彼此间只能通过发送消息互相联系。

3、软件生命周期有哪些阶段?软件生命周期由软件定义、软件开发和软件维护3个时期组成,每个时期又进一步划分为若干个阶段。

软件定义时期分3阶段:问题定义、可行性研究、需求分析。

开发时期分4个阶段:总体设计、详细设计、编码和单元测试、综合测试。

其中前两个阶段称为系统设计,后两个称为系统实现。

维护时期的主要任务是使软件持久地满足用户的需要。

第二章1、为什么要进行可行性研究,要从哪几个方面研究?可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

可行性研究至少应从3个方面研究:技术可行性、经济可行性、操作可行性。

《软件工程导论》期末思考题解答

《软件工程导论》期末思考题解答

《软件工程》期末思考题(计算机科学与技术专业)1.什么是软件?软件的特点有哪些?概念:软件是产品,由满足一定要求的,具有可用性、可靠性的程序系统和与之相匹配的文档资料所组成。

特点:不可见(难以管理、控制开发过程)、不磨损、难维护(维护即修改原有设计)、复杂(复杂性随规模指数增加)、开发而成、手工定做、成本高。

2.什么是软件危机?软件危机的表现是什么?是指:软件开发、维护过程中遇到的一系列严重问题。

●如何开发软件,以满足对软件日益增长的需求。

●如何维护数量不断膨胀的已有软件。

表现:估、满、靠、维、文、比、率。

●开发成本、进度估计不准确。

●用户对“已完成”的软件不满意。

●质量不可靠。

●不可维护。

●没有适当文档资料。

●软件成本在计算机系统总成本中所占的比例逐年上升。

●软件开发生产率提高速度跟不上计算机普及速度。

3.软件危机产生的原因是什么?原因:●软件自身特点:不可见(难以管理、控制开发过程)、难维护(维护即修改原有设计)、规模大(复杂性随规模指数增加)。

●软件开发、维护方法不正确:忽视需求分析(定义时期)、轻视软件维护。

4.什么是软件工程?软件工程的基本内容有哪两个方面?概念:采用工程的概念、原理、技术和方法来开发与维护软件,把正确的管理和最好的技术结合起来,以经济地开发出高质量的软件并有效地维护它。

两方面:管理(开发、经济)、技术(方法、工具、过程)5.软件工程三个要素是什么?●方法:开发技术方法。

●工具:为运用方法提供的支撑环境。

●过程:任务框架、工作步骤。

6.你知道的软件工程过程模型有哪些?●瀑布模型●原型模型●螺旋模型●迭代模型7.什么是软件生命周期?它有哪几个阶段?概念:软件从定义、开发、使用和维护,知道被废弃的过程。

阶段:定、性、需、概、详、变蛋、综、维1)问题定义2)可行性研究3)需求分析4)总体设计5)详细设计6)编码和单元测试7)综合测试8)软件维护8.可行性研究的任务是什么?了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。

2019最新软件工程导论期末考试题库及答案

2019最新软件工程导论期末考试题库及答案

2019 最新软件工程导论期末考试题库及答案1.填空题1.一般来说,可以从__一致性__、_完整性___、_现实性和 _有效性___四个方面验证软件需求的正确性。

2.IPO 图是_输入、处理和输出图_的简称,它是美国IBM 公司发展完善起来的一种图形工具。

3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的 ____ 信息流动___ 情况。

4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/ 终点。

5.软件测试的步骤按顺序分别是:___单元测试___ 、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和 ___ 系统测试(集成测试)6.软件生命周期一般可分为_问题定义_、可行性研究、_ 需求分析_、设计编码、_测试_、运行与维护阶段。

7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性___ 、__法律可行性___和抉择。

8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO 图和_层次图_两部分组成。

9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。

10.实施精化设计的目标是基于模块的“高内聚低耦合” 的原则,提高模块的_独立性。

11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。

12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。

13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

14.软件工程三要素包括_方法_、__工具___和__过程___,其中,_ 过程_支持软件开发的各个环节的控制和管理。

15.类构件的重用方式有_实力重用__、__继承重用__ 和_ 多态重用__三种。

16.能力成熟度模型分为5 个等级:初始级、__ 可重复___ 级、__已定义___级、 _ 已管理__级和__优化_级。

精品课件-软件工程导论期末综合题复习共59页

精品课件-软件工程导论期末综合题复习共59页
精品课件-软件工程导论期末 综合题复习
11、战争满足了,或曾经满足过人的 好斗的 本能, 但它同 时还满 足了人 对掠夺 ,破坏 以及残 酷的纪 律和专 制力的 欲望。 ——查·埃利奥 特 12、不应把纪律仅仅看成教育的手段 。纪律 是教育 过程的 结果, 首先是 学生集 体表现 在一切 生活领 域—— 生产、 日常生 活、学 校、文 化等领 域中努 力的结 果。— —马卡 连柯(名 言网)
13、遵守纪律的风气的培养,只有领 导者本 身在这 方面以 身作则 才能收 到成效 。—— 马卡连 柯 14、劳动者的组织性、纪律性、坚毅 精神以 及同全 世界劳 动者的 团结一 致,是 取得最 后胜利 的保证 。—— 列宁 摘自名言网
15、机会是不守纪律的。——雨果
41、学问是异常珍贵的东西,从任何源泉吸 收都不可耻。——阿卜·日·法拉兹
42、只有在人群中间,才能认识自 己。——德国
43、重复别人所说的话,只需要教育; 而要挑战别大优点是:在不利与艰 难的遭遇里百折不饶。——贝多芬
45、自己的饭量自己知道。——苏联

2022年武汉理工大学软件工程专业《计算机网络》科目期末试卷A(有答案)

2022年武汉理工大学软件工程专业《计算机网络》科目期末试卷A(有答案)

2022年武汉理工大学软件工程专业《计算机网络》科目期末试卷A(有答案)一、选择题1、()是计算机网络中的OSI参考模型的3个主要概念。

A.服务、接口、协议B.结构、模型、交换C.子网、层次、端口D.广域网、城域网、局域网2、在OSI参考模型中,第N层与它之上的第N+l层的关系是()。

A.第N层为第N+1层提供服务B.第N+1层将给从第N层接收的报文添加一个报头C.第N层使用第N+1层提供的服务D.第N层使用第N+1层提供的协议3、在IP首部的字段中,与分片和重组无关的是()。

注:假设现在已经分片完成。

A.总长度B.标识C.标志D.片偏移4、下列哪一项不属于路由选择协议的功能?()A.获取网络拓扑结构的信息B.选择到达每个目的网络的最优路径C.构建路由表D.发现下一跳的物理地址5、对于信道比较可靠并且对通信实时性要求高的网络,采用()数据链路层服务比较合适。

A.无确认的无连接服务B.有确认的无连接服务C.有确认的面向连接的服务D.无确认的面向连接的服务6、对于使用交换机连接起来的10Mbit/s的共享式以太网,若有10个用户,则每个用户能够占有的带宽为()。

A.1 Mbit/sB.2Mbit/sC.10Mbit/sD.100Mbit/s7、TCP中滑动窗口的值设置太大,对主机的影响是()。

A.由于传送的数据过多而使路由器变得拥挤,主机可能丢失分组B.产生过多的ACKC.由于接收的数据多,而使主机的工作速度加快D.由于接收的数据多,而使主机的工作速度变慢8、一个UDP用户数据报的数据字段为8192B。

在链路层要使用以太网来传输,那么应该分成()IP数据片。

A.3个B.4个C.5个D.6个9、在一个网络中,最大TPDU尺寸为256B,最大的TPDU存活时间为20s,使用8位序列号,则每条连接的最大数据传输速率是()。

A.16112bit/sB.26112bitsC.36112bi/sD.461l2bit/s10、FTP客户机发起对FTP服务器的连接建立的第一阶段建立()A.控制传输连接B.数据连接C.会话连接D.控制连接11、在万维网服务中,用户的信息查询可以从一台Web服务器自动搜索到另一台Webi服务器,这里所使用的技术是()。

软件工程导论期末复习

软件工程导论期末复习

一、填空题1.软件生存周期一般可分为问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护。

2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。

3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和操作可行性。

4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。

5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的结构化设计方法,以数据结构为基础构造模块的方法,以对象、类、继承和通信为基础的面向对象设计方法。

6.数据流图和数据字典共同构成系统的逻辑模型。

7.软件测试的方法有分析方法和非分析方法。

8.单元测试一般以白盒测试为主,黑盒测试为辅。

9.成本估计方法主要有自底向上、自顶向下和算法模型估计三种类型。

10.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的( )情况。

解:信息流动[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。

11.成本效益分析的目的是从( )角度评价开发一个项目是否可行。

解:经济[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。

12.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和( ) 。

解:宽度优先策略[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。

它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。

13.独立路径是指包括一组以前没有处理的语句或条件的一条路径。

从程序图来看,一条独立路径是至少包含有一条( )的边的路径。

软件工程导论(第五版)期末考试

软件工程导论(第五版)期末考试

软件工程导论(第五版)期末考试1、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的严重问题。

2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。

3、软件工程学包含3个要素:方法、工具、过程。

4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。

5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。

6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。

7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。

8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。

9、数据流图(DFD)是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中所经受的变化。

10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义的集合。

11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确的描述软件需求。

13、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。

14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩形表示属性,用直线把实体和其属性连接。

15、验证软件需求的正确性:一致性、完整性、现实性、有效性。

16、总体设计的基本目的是回答"概括地说,系统应该如何实现?",总体设计又称为概要设或初步设计。

17、模块的独立程度可以有两个定性标量度量:内聚和耦合。

18、软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现可至今为止尚未发现的错误的测试。

(建筑工程管理)软件工程导论期末思考题解答

(建筑工程管理)软件工程导论期末思考题解答

(建筑工程管理)软件工程导论期末思考题解答《软件工程》期末思考题(计算机科学和技术专业)什么是软件?软件的特点有哪些?概念:软件是产品,由满足壹定要求的,具有可用性、可靠性的程序系统和和之相匹配的文档资料所组成。

特点:不可见(难以管理、控制开发过程)、不磨损、难维护(维护即修改原有设计)、复杂(复杂性随规模指数增加)、开发而成、手工定做、成本高。

什么是软件危机?软件危机的表现是什么?是指:软件开发、维护过程中遇到的壹系列严重问题。

如何开发软件,以满足对软件日益增长的需求。

如何维护数量不断膨胀的已有软件。

表现:估、满、靠、维、文、比、率。

开发成本、进度估计不准确。

用户对“已完成”的软件不满意。

质量不可靠。

不可维护。

没有适当文档资料。

软件成本于计算机系统总成本中所占的比例逐年上升。

软件开发生产率提高速度跟不上计算机普及速度。

软件危机产生的原因是什么?原因:软件自身特点:不可见(难以管理、控制开发过程)、难维护(维护即修改原有设计)、规模大(复杂性随规模指数增加)。

软件开发、维护方法不正确:忽视需求分析(定义时期)、轻视软件维护。

什么是软件工程?软件工程的基本内容有哪俩个方面?概念:采用工程的概念、原理、技术和方法来开发和维护软件,把正确的管理和最好的技术结合起来,以经济地开发出高质量的软件且有效地维护它。

俩方面:管理(开发、经济)、技术(方法、工具、过程)软件工程三个要素是什么?方法:开发技术方法。

工具:为运用方法提供的支撑环境。

过程:任务框架、工作步骤。

你知道的软件工程过程模型有哪些?瀑布模型原型模型螺旋模型迭代模型什么是软件生命周期?它有哪几个阶段?概念:软件从定义、开发、使用和维护,知道被废弃的过程。

阶段:定、性、需、概、详、变蛋、综、维问题定义可行性研究需求分析总体设计详细设计编码和单元测试综合测试软件维护可行性研究的任务是什么?了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究且论证本软件项目的可行性,编写可行性研究方案,制定初步项目开发计划。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程导论复习题型及分值单选题(20分)20x1判断题(10分) 10x1问答题(25分)5x5应用题(45分) 7+8+8+10+12一、软件工程的基本概念(PPT 1-2章)1.软件危机(产生的原因)(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

(2)软件危机主要有以下表现:a.对软件开发成本和进度的估计常常不准确。

开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。

b.用户对“已完成”系统不满意的现象经常发生。

c.软件产品的质量往往靠不住。

Bug一大堆,Patch一个接一个。

d.软件的可维护程度非常之低。

e.软件通常没有适当的文档资料。

f.软件的成本不断提高。

g.软件开发生产率的提高赶不上硬件的发展和人们需求的增长。

(3)产生原因:一方面是与软件本身的特点有关;另一方面是由软件开发和维护的方法不正确有关。

(4)消除软件危机的途径:a.对计算机软件有一个正确的认识(软件≠程序)。

b.必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

c.推广使用在实践中总结出来的开发软件的成功技术和方法。

d.开发和使用更好的软件工具。

e.加强软件管理。

2.软件的特点有哪些?(1)软件是一种逻辑实体,而不是具体的物理实体,它具有抽象性;(2)软件的生产与硬件不同;(3)大多数软件是定制的;(4)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题;(5)软件的开发和运行常常受到计算机系统的限制对计算机系统有着不同程度的依赖性;(6)软件开发至今尚未完全摆脱手工艺的开发方式;(7)软件是复杂的;(8)软件成本相当昂贵;(9)相当多的软件工作涉及到社会因素。

3.软件工程?软件工程的目标?(……)(1)定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。

(2)软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:a.实现预期的软件功能,达到较好的软件性能,满足用户的需求。

b.增强软件过程的可见性和可控性,保证软件的质量。

c.提高所开发软件的可维护性,降低维护费用。

d.提高软件开发生产率,及时交付使用。

e.合理预算开发成本,付出较低的开发费用。

4.软件生存周期模型?主要的模型类型?(……)(1)软件生命周期:软件生存周期大体可分为如下几个活动:问题定义、可行性研究、需求分析、设计、编码、测试、运行和维护。

(2)典型的软件过程模型有:瀑布模型(waterfall model)演化模型(evolutionary model)增量模型(incremental model)原型模型(prototyping model)螺旋模型(spiral model)喷泉模型(water fountain model)基于构件的开发模型(component-based development model)形式方法模型(formal methods model)5.软件工程强调(文档化、规范化)?(……)(1)软件工程强调规范化和文档化。

规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。

(2)文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。

另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。

在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。

二、可行性研究及需求分析1.可行性研究的目的(1)用最小的代价在尽可能短的时间内确定问题是否能够解决。

不是解决问题,而是确定问题是否值得去解决。

(2)说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。

2.需求分析的任务、方法、工具(1)任务:需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。

(2)方法:a.访谈b.面向数据流自顶向下求精c.简易的应用规格说明技术d.快速建立软件原型(3)工具:3.数据流图(作用)(1)定义:数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。

数据流图英文缩写DFD(Data Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

(2)作用:a.便于用户表达功能需求和数据需求及其联系;b.便于两类人员共同理解现行系统和规划系统的框架;c.清晰表达数据流的情况;d.有利于系统建模.4.判断表、判断树(1)判断表:如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适。

以“检查发货单”为例:(2)判断树:判定树也是用来表达加工逻辑的一种工具。

有时侯它比判定表更直观。

以“检查发货单”为例:三、概要设计1.划分模块的标准(高内聚低耦合)(1)什么是耦合?模块的耦合包括哪些类型?耦合是对一个软件结构内不同模块之间互连程度的度量。

模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合,标记耦合,无耦合/非直接耦合(2)什么是内聚?模块的内聚包括哪些类型?内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。

模块的内聚包括以下几种类型:低内聚—偶然内聚,逻辑内聚,时间内聚中内聚—过程内聚,通信内聚;高内聚—顺序内聚,功能内聚。

2.模块独立性?衡量的标准?(……)(1)模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。

(2)模块的独立程度可以由两个定性标准度量:a.耦合:模块之间的相对独立性的度量。

b.内聚:模块功能强度的度量耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。

3.启发性规则给软件工程师以有益的启示,往往能帮助他们找到改进软件设计提高软件质量的途径。

下面介绍几条启发式规则:(1)改进软件结构提高模块独立性设计出软件的初步结构以后,应该审查分析这个结构,通过模块分解或合并,力求降低耦合提高内聚。

例如,多个模块公有的一个子功能可以独立成一个模块,由这些模块调用;有时可以通过分解或合并模块以减少控制信息的传递及对全程数据的引用,并且降低接口的复杂程度。

(2)模块规模应该适中经验表明,一个模块的规模不应过大,最好能写在一页A4纸内(通常不超过60行语句)。

有人从心理学角度研究得知,当一个模块包含的语句数超过30以后,模块的可理解程度迅速下降。

过大的模块往往是由于分解不充分,但是进一步分解必须符合问题结构,一般说来,分解后不应该降低模块独立性。

过小的模块开销大于有效操作,而且模块数目过多将使系统接口复杂。

因此过小的模块有时不值得单独存在,特别是只有一个模块调用它时,通常可以把它合并到上级模块中去而不必单独存在。

(3)深度、宽度、扇出和扇入都应适当.深度:软件结构中控制的层数;宽度:软件结构内同一个层次上的模块总数的最大值;扇出:一个模块直接控制(调用)其它模块的数目;扇入:一个模块被其它模块调用的数目。

(4)模块的作用域应该在控制域之内作用域:受该模块内一个判定影响的所有模块的集合。

控制域:模块本身以及所有从属于它的模块的集合。

(5)力争降低模块接口的复杂度模块接口复杂是软件发生错误的一个主要原因。

应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。

如:QUAD-ROOT(TBL,X)求一元二次方程的根的模块,其中TBL,X都为数组,分别代表方程的系数和方程的根。

应该使接口更简单,如:QUAD-ROOT(A,B,C,ROOT1,ROOT2)A、B、C是方程的系数,ROOT1,ROOT2是方程的根。

(6)设计单入口单出口的模块(7)模块功能应该可以预测以上列出的启发式规则多数是经验规律,对改进设计,提高软件质量,往往有重要的参考价值;但是,它们既不是设计的目标也不是设计时应该普遍遵循的原理。

4.深度、宽度、扇出和扇入(1)深度往往能粗略地标志一个系统的大小和复杂程度。

深度和程序长度之间应该有粗略的对应关系,当然这个对应关系是在一定范围内变化的。

如果层数过多则应该考虑是否有许多管理模块过分简单了,能否适当合并。

(2)一般说来,宽度越大系统越复杂。

对宽度影响最大的因素是模块的扇出。

(3)扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块;扇出过小(例如总是1)也不好。

经验表明,一个设计得好的典型系统的平均扇出通常是3或4(扇出的上限通常是5~9)。

(4)扇出太大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块。

扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。

当然分解模块或合并模块必须符合问题结构,不能违背模块独立原理。

(5)扇入越大则共享该模块的上级模块数目越多,这是有好处的,但是,不能违背模块独立原理单纯追求高扇入。

(6)观察大量软件系统后发现,设计得很好的软件结构通常顶层扇出比较高,中层扇出较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。

5.面向数据流的设计方法(1)面向数据流设计(Data Flow-Oriented Design,DFOD)是与数据流分析(DFA)对应的结构化软件设计技术。

(2)面向数据流的设计要解决的任务,就是在需求分析的基础上,将表示系统逻辑模型的DFD图映射(Mapping)成软件系统结构的初始设计描述。

6.变换设计(1)变换设计就是从变换型数据流图映射出软件模块结构的过程,也称以变换为中心的设计。

(2)变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。

(3)相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。

(4)变换分析方法由以下四步组成:a.重画数据流图;b.区分有效(逻辑)输入、有效(逻辑)输出和中心变换部分;c.进行一级分解,设计上层模块。

把整个变换分解成输入控制模块Ci、输出控制模块Co和变换中心控制模块Ct,由主控模块控制;d.进行二级分解,设计输入、输出和中心变换部分的中、下层模块。

相关文档
最新文档