软件设计
软件 设计

软件设计
软件设计是指针对某个特定的需求,通过采用相应的方法和工具,将问题抽象为软件模型,最终以程序代码的形式实现的过程。
软件设计要求根据需求,制定合理的设计方案,使软件具有高效、可靠、易于维护等特性。
软件设计的主要目标是实现软件系统的可扩展性和可复用性。
通过合理的模块划分和接口设计,可以降低系统的耦合度,提高系统的可维护性。
此外,软件设计还需要考虑系统的性能、安全性、易用性等方面。
软件设计的过程包括需求分析、概要设计和详细设计。
需求分析阶段主要是明确软件系统的功能需求和性能需求,为后续的设计工作提供依据。
概要设计阶段主要是确定系统的整体架构和模块划分,绘制结构图和流程图等。
详细设计阶段主要是确定各个模块的具体实现方法,绘制类图和时序图等。
软件设计可以采用不同的方法和工具,如面向对象设计、结构化设计、UML等。
其中,面向对象设计是一种常用的设计方法,它将系统看作是一组相互协作的对象,通过封装、继承和多态等机制实现系统的功能。
在软件设计过程中,需要考虑到不同的约束条件,如时间、成本和技术限制等。
为了提高设计的质量,可以采用模块化设计、设计模式等技术。
模块化设计可以将系统划分为相互独立的模块,每个模块负责完成一个特定的功能。
设计模式则是一种解决常见设计问题的优秀实践,可以提高代码的可读性和可维护
性。
总之,软件设计是实现软件系统的关键环节,它需要根据需求确定合理的设计方案,将系统的功能抽象为软件模型,并最终以程序代码的形式实现系统的各个功能。
一个好的软件设计需要考虑到系统的可扩展性、可复用性、性能、安全性和易用性等方面。
软件工程第4章 软件设计

5. 设计软件结构 通常程序中的一个模块完成一个适当的子功能。应 该把模块组织成良好的层次系统,顶层模块调用它 的下层模块以实现程序的完整功能,每个下层模块 再调用更下层的模块,从而完成程序的一个子功能, 最下层的模块完成最具体的功能。
6. 设计数据库 对于需要使用数据库的那些应用系统,软件工程师 应该在需求分析阶段所确定的系统数据需求的基础 上,进一步设计数据库。
高内聚也有两类:如果一个模块内的处理元素和同 一个功能密切相关,而且这些处理必须顺序执行 (通常一个处理元素的输出数据作为下一个处理元 素的输入数据),则称为顺序内聚。根据数据流图 划分模块时,通常得到顺序内聚的模块,这种模块 彼此间的连接往往比较简单。如果模块内所有处理 元素属于一个整体,完成一个单一的功能,则称为 功能内聚。功能内聚是最高程度的内聚。
(2) 用户手册根据总体设计阶段的结果,修改更正 在需求分析阶段产生的初步的用户手册。
(3) 测试计划包括测试策略,测试方案,预期的测 试结果,测试进度计划等等。 (4) 详细的实现计划 (5) 数据库设计结果
9. 审查和复审 最后应该对总体设计的结果进行严格的技术审查, 在技术审查通过之后再由使用部门的负责人从管理 角度进行复审。
为什么模块的独立性很重要呢?主要有两条理由: 第一,有效的模块化(即具有独立的模块)的软件比 较容易开发出来。这是由于能够分割功能而且接口 可以简化,便于多人分工合作开发同一个软件。
第二,独立的模块比较容易测试和维护。这是因为 相对说来,修改设计和程序需要的工作量比较小, 错误传播范围小,需要扩充功能时能够“插入”模块。
(2)详细设计。详细设计阶段的根本目标是确定 应该怎样具体地实现所要求的系统,也就是说,经 过这个阶段的设计工作,应该得出对目标系统的精 确描述,从而在编码阶段可以把这个描述直接翻译 成用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是 要设计出程序的“蓝图”,结果基本上决定了最终 的程序代码的质量。
简述软件设计的原则

软件设计是软件工程中的一个重要环节,它的目标是在需求分析的基础上,设计出一个能够满足用户需求、易于维护和扩展的软件系统。
以下是一些软件设计的原则:
1. 抽象:将复杂的系统分解为简单的模块,并通过抽象来隐藏细节,从而降低系统的复杂性。
2. 封装:将模块的内部实现细节隐藏起来,只暴露必要的接口给外部使用,从而提高模块的可复用性和可维护性。
3. 模块化:将系统划分为多个独立的模块,每个模块负责完成特定的功能,从而提高系统的可理解性和可维护性。
4. 层次化:将系统划分为多个层次,每个层次负责完成特定的功能,从而提高系统的可扩展性和可维护性。
5. 复用:尽可能使用已有的代码和模块,从而提高开发效率和降低成本。
6. 可维护性:设计软件时应该考虑到未来的维护和修改,从而降低维护成本。
7. 可扩展性:设计软件时应该考虑到未来的扩展需求,从而使系统易于扩展。
8. 简单性:尽可能保持设计的简单性,避免过度设计和复杂的逻辑。
这些原则是软件设计的基本指导方针,它们可以帮助设计师设计出高质量的软件系统。
软件设计概要设计

顾客交互子系统旳程序构造雏形
(环节六)启发式设计策略优化初始SC图
▪ 使用启发式设计策略,精化所得程序构造
雏形——初始SC图,改良软件质量。
▪ 这一环节与变换分析法相同。
2.4混合构造
▪ 一种大型系统经常是变换型构造和事务型旳混合构造,为
了导出初始SC图,必须同步使用变换映射和事务映射
▪ 下例中,总体是一种变换构造,但是输入途径输入是事务
1.概要设计工具
▪ 层次图和HIPO图 ▪ 构造图
层次图
▪ 层次图用来描绘软件旳层次构造旳图
形工具。 正文加工系统
输入 输出 编辑 加标题 存储 检索 编目录 格式化
添加 删除 插入 修改 合并 列表
IPO图
▪ 层次图中旳每一种模块,均可用一张IPO图来描述。
IPO 图由输入、处理和输出三个框构成,需要时 还能够增长一种数据文件框。IPO图在需求分析阶 段主要用来描述系统旳主要算法。
▪ 在上例中,可能旳修改有:
▪ 输入构造中旳模块"转换成rpm"和"搜集sps"能
够合并;
▪ 模块"拟定加速/减速"能够放在模块"计算mph"
下面,以降低耦合;
▪ 模块"显示加速/减速"能够放在模块"显示mph"
下面。
精化后旳软件构造
模块阐明
▪程序构造旳模块名隐含模块功能,必须为每
个模块写一种简要旳处理阐明,
2.面对数据流旳设计——SD法
▪ 需求阶段对数据流进行分析,生成DFD和
DD
▪ 以此为基础,将DFD经过SD法软件构造。
面对数据流旳设计措施根据数据流图旳特征 定义变换流和事务流两种“映射”,这两种 映射能机械地将数据流图转换为程序构造。
软件(结构)设计文档的主要内容

软件(结构)设计文档的主要内容软件设计文档是软件项目开发过程中非常重要的一环,它对于软件开发人员、测试人员和其他相关人员都具有指导和参考的作用。
软件设计文档主要包括以下几个方面的内容:1. 引言:介绍整个软件设计文档的目的和背景,说明该软件的开发目标和需求。
2. 系统概述:对整个软件系统进行总体描述,包括系统的功能、特性、用户类型和总体架构等。
3. 软件架构设计:详细描述软件的整体架构,包括系统的模块划分、模块功能和模块之间的交互关系。
可以使用UML图表来表示软件的静态结构和动态交互。
4. 数据设计:描述系统的数据模型和数据库设计,包括数据库表的定义、字段的含义和关系。
5. 用户界面设计:详细描述系统的用户界面设计,包括菜单、输入界面、输出界面和报表设计等。
可以使用界面原型图来展示用户界面的设计。
6. 功能设计:详细描述系统的各个功能模块的设计,包括模块功能的描述、算法设计、接口设计和输入输出数据的定义。
7. 性能设计:对系统的性能进行评估和设计,包括系统的吞吐量、响应时间、并发性和可伸缩性等指标的分析和设计。
8. 安全设计:对系统的安全性进行评估和设计,包括身份认证、访问控制、数据加密和防止安全漏洞的措施。
9. 测试设计:详细描述系统的测试策略和测试用例的设计,包括功能测试、性能测试、安全测试和兼容性测试等。
10. 部署设计:描述系统的部署架构和部署步骤,包括系统的硬件需求、操作系统需求和软件依赖关系。
11. 运维设计:描述系统的运维策略和运维手册,包括系统的备份策略、监控策略和故障排除步骤。
12. 参考资料:列出软件设计过程中使用的参考资料,如需求文档、技术规范、设计模式和第三方库等。
除了以上主要内容外,软件设计文档还可以包括开发进度计划、项目风险评估、开发团队成员和角色的介绍等信息,以提供全面的参考和指导。
编写软件设计文档需要充分了解和理解项目需求,并结合团队成员的专业知识和经验进行设计。
软件设计的理解和流程

软件设计的理解和流程一、软件设计的概念软件设计是指在软件开发的过程中,结合用户需求以及技术和资源的限制,设计出软件系统的结构和功能,以及解决方案和实现方法的过程。
其中,包括需求分析、功能设计、模块设计、接口设计、数据结构设计等方面的工作。
二、软件设计的流程1.需求分析根据用户需求以及业务流程,明确软件系统的功能、性能、可靠性等要求,并对需求进行分析和细化,形成需求规格说明书。
2.概要设计根据需求规格说明书,确定软件系统的总体架构,包括系统组成部分、各个模块之间的关系和接口,以及数据流程等。
3.详细设计根据概要设计,对每个模块进行详细设计。
包括界面设计、业务逻辑设计、数据结构设计、算法设计等方面。
4.编码实现根据详细设计,进行编码实现。
编写代码、进行单元测试、进行代码审核,确保代码质量。
5.测试验证根据需求规格说明书,制定测试计划和测试用例,并进行测试,以验证软件系统是否达到用户需求以及规格说明书的要求。
6.维护管理在软件系统交付后,进行维护管理工作。
包括维护文档、修改和发布版本、提供技术支持等方面的工作。
三、软件设计的重要性1.减少开发成本软件设计能够在开发的前期进行需求分析和方案设计,能够在开始动手写代码之前,尽可能多的预测到问题并解决掉。
从而可以在开发后期减少不必要的修改和调试工作,降低开发成本。
2.提高开发效率软件设计可以形成完整的软件设计方案,同时也可以分阶段分模块地进行设计、编码和测试,使得开发流程合理顺畅,提高开发效率。
3.降低风险软件设计可以提前发现和解决一些问题,从而避免软件在正式使用前出现错误和漏洞,降低使用过程中的风险。
4.增强软件质量软件设计是创建软件的基础,能够在设计方案中提前规划好软件各方面的要求和特性,保证软件能够达到预期的质量要求。
总之,软件设计是软件开发过程中必不可少的一环,其重要性不言而喻。
只有通过良好的软件设计,才能使软件开发过程更加科学、规范、高效,从而创造出更优质、更安全、更符合用户需求的软件系统。
软件设计PPT课件

软件测试的目标
确保软件质量
通过测试发现软件中存在的缺陷和错误,提 高软件的质量和稳定性。
验证软件功能
验证软件是否符合需求规格,是否能够完成 预定的功能和任务。
提高软件可靠性
通过不断测试和修复,提高软件的可靠性和 可用性,降低故障率。
优化性能
通过测试发现软件的性能瓶颈,优化软件性 能,提高运行效率。
社交网络设计案例,以微信为例,介 绍其功能、特点、技术实现和用户体 验等方面的设计。
用户体验
微信注重用户体验,通过不断优化界 面设计和交互细节,提升了用户的使 用感受。
01
02
功能设计
微信作为一款社交应用,其功能设计 主要包括聊天、朋友圈、公众号等, 满足了用户社交需求。
03
特点
微信具有简洁、易用、安全等特点, 用户可以快速上手并享受优质的社交 体验。
页面布局
淘宝采用清晰的页面布局,将商品信 息、搜索框、导航栏等元素合理排布, 方便用户浏览和查找。
购物流程
淘宝的购物流程设计简洁明了,用户 可以轻松完成注册、登录、浏览、购 买等操作。
案例三:移动应用的设计
抖音的界面设计简洁大方,色彩搭配 合理,图标和按钮符合用户习惯,提 升了用户体验。
抖音在性能优化方面做得很好,无论 是启动速度还是运行流畅度都得到了 保障。
提高数据完整性
保证数据的准确性和可靠性,确保 数据的正确性和一致性。
04
数据库设计的基本步骤
概念设计
根据需求分析结果,设计出符 合业务需求的数据库概念模型。
物理设计
根据逻辑模型,设计出数据库 的物理结构,包括存储结构、 索引、分区等。
需求分析
了解用户需求,收集相关数据, 分析业务流程和数据流程。
软件总体设计的内容

软件总体设计的内容全文共四篇示例,供读者参考第一篇示例:软件总体设计是软件工程中非常重要的一个阶段,它直接决定了后续软件开发工作的方向和效果。
软件总体设计包括对软件系统整体结构、模块划分、接口设计、数据设计、性能要求等方面进行详细规划和设计。
下面将就软件总体设计的内容进行详细介绍。
一、整体结构设计在软件总体设计阶段,首先需要对整体结构进行设计。
整体结构设计是指确定系统的各个功能模块之间的关系和层次结构,建立模块之间的调用关系和数据传递方式。
需要考虑到系统的可拓展性、可维护性以及模块之间的耦合度等因素。
在确定整体设计的过程中,通常采用模块化设计的方法,将整个系统分解为多个独立的功能模块,每个模块负责一个明确的功能或任务。
要考虑到整体结构的灵活性,以便在后续的开发过程中能够方便地进行模块的增加、修改或删除。
二、模块划分设计模块划分设计是软件总体设计的核心部分之一。
在模块划分设计阶段,需要根据系统的功能需求和业务流程,将整个系统划分为若干个相对独立的模块。
每个模块负责完成系统中的一个功能或一组功能,并且具有清晰的接口和数据通信方式。
模块划分的设计应该考虑到模块之间的逻辑关系和依赖关系,使得每个模块的职责清晰明确,功能独立完整。
还应该避免模块之间的循环依赖和耦合,以确保系统的稳定性和可扩展性。
三、接口设计接口设计是软件总体设计中非常重要的一个环节。
接口设计涉及到模块之间的数据通信方式、消息传递格式、参数传递规范等方面。
一个好的接口设计可以提高模块之间的协同工作效率,降低开发和测试的难度。
在进行接口设计时,需要考虑到接口的简洁性、可读性和易用性。
接口应该具有清晰的功能定义和参数说明,使得开发人员能够快速地理解和使用。
还需要考虑到接口的稳定性和兼容性,以确保模块之间的通信能够顺利进行。
四、数据设计数据设计是软件总体设计中不可忽视的一个环节。
数据设计涉及到系统中的数据结构、数据库设计、数据存储方式等方面。
一个好的数据设计可以提高系统的性能和稳定性,减少数据处理的复杂度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计一、复习要求1. 了解软件概要设计的原则和过程。
2. 掌握模块划分的评价准则―模块独立性的判别。
3. 掌握结构化设计方法。
4. 了解Jackson系统开发方法和Jackson程序设计方法。
5. 了解数据设计和文件设计的原则。
6. 掌握常用的详细设计的表达方法。
6. 了解软件设计规格说明和设计评审的主要内容。
二、例题分析【例1】从下列有关系统结构图的叙述中选出正确的叙述。
(1) 系统结构图中反映的是程序中数据流的情况。
(2) 系统结构图是精确表达程序结构的图形表示法。
因此,有时也可将系统结构当作程序流程图使用。
(3) 一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。
(4) 在系统结构图中,上级模块与其下属模块之间的调用关系用有向线段表示。
这时,使用斜的线段和水平、垂直的线段具有相同的含义。
答案: (4)分析:系统结构图反映的是系统中模块的调用关系和层次关系,谁调用谁,有一个先后次序(时序)关系。
所以系统结构图既不同于数据流图,也不同与程序流程图。
数据流图仅描述数据在系统中如何流动,如何处理和存储,它不考虑时序关系。
图中的有向线段表示了数据流。
程序流程图描述程序中控制流的情况,即程序中处理的执行顺序和执行序列所依赖的条件,图中的有向线段(流线)表示的是控制流,从一个处理走到下一个处理。
但在系统结构图中的有向线段表示调用时程序的控制从调用模块移到被调用模块,并隐含了当调用结束时控制将交回给调用模块。
如果一个模块有多个下属模块,这些下属模块的左右位置可能与它们的调用次序有关。
例如,在用结构化设计方法依据数据流图建立起来的变换型系统结构图中,主模块的所有下属模块按逻辑输入、中心变换、逻辑输出的次序自左向右一字排开,左右位置不是无关紧要的。
所以只有最后的一个叙述是正确的。
【例2】软件的开发工作经过需求分析阶段,进入( A )以后,就开始着手解决“怎么做”的问题。
常用的软件设计方法有( B )、( C )、( D )和( E )等方法。
供选择的答案:A ∼ B.①程序设计②设计阶段③总体设计④定义阶段⑤SD方法⑥ SP方法C. ① Jackson方法②瀑布法③快速原型法④回溯法D ∼ E. ① LCP(Wanier)方法②递归法③ Parnas方法④自下而上修正⑤逐步求精法⑥检测校正法答案:A. ②, B. ⑤, C. ①, D. ①, E. ③。
其中,D与E的答案可互换。
分析:进入设计阶段之后,就开始着手解决“怎么做”的问题。
一般把设计阶段的工作分成两步:即概要设计和详细设计。
在概要设计阶段应着重解决实现需求的程序模块划分问题,在详细设计阶段则要决定每个模块的具体算法。
常见的软件概要设计方法有三大类:以数据流图为基础构造模块结构的结构化设计方法(SD);以数据结构为基础构造模块结构的Jackson方法和LCP(Wanier)逻辑构造方法;以对象、类、继承和通信为基础的面向对象设计方法(OOD)。
此外,以信息隐蔽为原则的Parnas方法虽然没有给出系统化的设计方法,但它提出了一组原则,要求预先估计未来生存周期中可能发生的种种情况,并采取相应措施以提高软件系统的可维护性和可靠性。
这里对面向数据结构的Jackson方法和LCP方法再多说几句。
Jackson方法是一种典型的面向面向数据结构开发软件的方法。
它的基本思想是首先根据实际问题,给出处理问题所需要和产生的数据结构,一旦搞清了问题的输入∕输出数据结构,就可以以简单的方式直接导出程序的处理结构,然后应用Jackson的描述符号,将这个处理结构转换为程序的过程性描述。
LCP方法是另一种面向数据结构的方法,它也要先给出用Wanier图表示的处理问题所需要和产生的数据结构,再在Wanier图上直接将数据结构转换为加工处理的形式化表示,最后生成描述加工过程的伪代码,进行验证和优化。
【例3】请将下述有关模块独立性的各种模块之间的耦合,按其耦合度从低到高排列起来。
①内容耦合②控制耦合③非直接耦合④标记耦合⑤数据耦合⑥外部耦合⑦公共耦合答案:③、⑤、④、②、⑥、⑦、①分析:参看“内容提要”中有关模块独立性的介绍。
【例4】请将下述有关模块独立性的各种模块内聚,按其内聚度(强度)从高到低排列起来。
①巧合内聚②时间内聚③功能内聚④通信内聚⑤逻辑内聚⑥信息内聚⑦过程内聚答案:③、⑥、④、⑦、②、⑤、①分析:在状态―迁移图中,由一个状态和一个事件所确定的下一状态可能会有多个。
实际会迁移到哪一个状态,是由更详细的内部状态和更详细的事件信息来决定的,此时在状态―迁移图中可能需要使用加进判断框和处理框的记法。
状态―迁移图的优点:第一,状态之间的关系能够直观地捕捉到,这样用眼睛就能看到是否所有可能的状态迁移都已纳入图中,是否存在不必要的状态等。
第二,由于状态―迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具。
【例5】在结构化分析方法中,用实体―关系图表达系统中的对象及其关系。
在实体―关系图中,表达对象的实例之间的关联有三种类型:一对一联系、()联系、多对多联系。
供选择的答案:一对多A. 多对一B.答案:B分析:使用实体―关系图,可以建立系统中各个数据对象及对象之间的关系。
对象的实例间的关联称为“基数”,共有3种类型的基数:一对一,一对多,多对多。
它反映了现实世界中实体之间的联系,多对一的情况可以归入一对多的关联中去。
【例6】软件需求分析的任务不应包括( A )。
进行需求分析可使用多种工具,但( B )是不适用的。
在需求分析中,分析员要从用户那里解决的最重要的问题是( C )。
需求规格说明书的内容不应当包括( D )。
该文档在软件开发中具有重要的作用,但其作用不应当包括( E )。
供选择的答案:A. ①问题分析②信息域分析③结构化程序设计④确定逻辑模型B. ①数据流图②判定表③ PAD图④数据词典C. ①要让软件做什么②要给该软件提供哪些信息③要求软件工作效率如何④要让软件具有什么样的结构D. ①对重要功能的描述②对算法的详细过程性描述③软件确认准则④软件的性能E. ①软件设计的依据②用户和开发人员对软件要“做什么”的共同理解③软件验收的依据④软件可行性分析的依据答案:A. ③ B. ③ C. ① D. ② E. ④分析:软件需求分析的任务是通过与用户的合作,了解用户对待开发系统的要求;根据对用户要求的系统所在的信息域的调查、分析,确定系统的逻辑模型;并对求解的问题做适当的分解,使之适合于计算机求解。
需求分析的结果是软件需求规格说明书。
结构化程序设计是在详细设计和编码阶段所采用的技术,而不是需求分析阶段要采用的技术。
在需求分析阶段,分析人员可以用数据流图描述系统的数据流的变换和流向,用数据词典定义在数据流图中出现的数据流、数据文件、加工或处理,用判定表表示复杂条件和动作组合的情况。
但PAD图是在详细设计阶段使用的描述加工逻辑的工具,不适用于需求分析。
此外,软件需求分析阶段只确定软件系统要“做什么”,完成对重要功能、性能、确认准则的描述,至于“怎么做”由后续的设计阶段完成,对算法的详细过程性描述也是在设计阶段给出。
软件可行性分析应在需求分析之前,所以需求分析规格说明不能成为可行性分析的依据。
【例7】原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A )系统。
它从用户界面的开发入手,首先形成( B ),用户( C ),并就( D )提出意见,它是一种( E )型的设计过程。
供选择的答案:A. ①需求不确定性高的②需求确定的③管理信息④决策支持B. ①用户界面使用手册②用户界面需求分析说明书③系统界面原型④完善的用户界面C. ①改进用户界面的设计②阅读文档资料③模拟用户界面的运行④运行用户界面原型D. ①同意什么和不同意什么②使用和不使用哪一种编程语言③程序的结构④执行速度是否满足要求E. ①自外向内②自顶向下③自内向外④自底向上答案:A. ①, B. ③, C. ④, D. ①, E. ①分析:通常,原型是指模拟某种产品的原始模型。
在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。
使用原型的原型化方法特别适用于需求不确定性较高的软件系统的开发。
它的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的可执行的模型,满足用户的基本要求,这就是系统界面原型。
让用户计算机上实际运行这个用户界面原型,在试用的过程中得到亲身感受和受到启发,做出反应和评价,提出同意什么和不同意什么。
然后开发者根据用户的意见对原型加以改进。
随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,逐步减少分析和通信中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高了最终产品的质量。
它是一种自外向内型的设计过程。
三、习题【3-1】逐步求精、分层过程与抽象等概念之间的相互关系如何?【3-2】完成良好的软件设计应遵循哪些原则?【3-3】如何理解模块独立性?用什么指标来衡量模块独立性?【3-4】模块独立性与信息隐蔽(反映模块化有效程度的属性)有何关系?【3-5】模块的内聚性程度与该模块在分层结构中的位置有关系吗?说明你的论据。
【3-6】耦合性的概念和软件的可移植性有什么关系?请举例说明你的论述。
【3-7】从供选择的答案中选出正确的答案填入下列叙述中的()内。
模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。
(1) 一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是( A )的。
(2) 将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能。
该模块的内聚性是( B )的。
(3) 模块中所有成分引用共同的数据,该模块的内聚性是( C )的。
(4) 模块内的某成份的输出是另一些成份的输入,该模块的内聚性是( D )的。
(5) 模块中所有成份结合起来完全一项任务,该模块的内聚性是( E )的。
它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
供选择的答案:A ∼ E:①功能内聚②信息内聚③通信内聚④过程内聚⑤巧合内聚⑥时间内聚⑦逻辑内聚【3-8】从供选择的答案中选出正确的答案填入下面的()中。
块间联系和块内联系是评价程序模块结构质量的重要标准。
联系的方式、共用信息的作用、共用信息的数量和接口的( A )等因素决定了块间联系的大小。
在块内联系中,( B )的块内联系最强。
SD方法的总的原则是使每个模块执行( C )功能,模块间传送( D )参数,模块通过( E )语句调用其它模块,而且模块间传送的参数应尽量( F )。
此外,SD方法还提出了判定的作用范围和模块的控制范围等概念。
SD方法认为,( G )应该是( H )的子集。