软件工程第五章习题

一、选择题

  1. (1)答案:C

解析:面向数据流的软件设计方法的核心是将数据流映射成软件结构,通过分析数据流的类型(变换流或事务流 )来导出软件的模块结构。

  1. (2)答案:C

解析:内聚性是衡量模块内部各元素之间彼此结合紧密程度的指标,体现模块的功能强度 。模块间的联系程度由耦合性度量;信息隐藏程度侧重于模块对内部信息的封装;接口的复杂程度与模块独立性的内聚性概念不同。

  1. (3)答案:C

解析:Jackson方法是一种面向数据结构的设计方法,它根据数据结构来导出程序结构,通过分析输入输出数据结构,采用顺序、选择、重复等构造来设计程序 。

  1. (4)答案:C

解析:数据耦合指模块之间通过数据参数进行通信,这种耦合程度相对较低。公共环境耦合是多个模块共享一个公共数据环境;控制耦合是模块间传递控制信息;特征耦合是模块间传递数据结构 ,这几种耦合程度相对数据耦合更高,为提高模块独立性,模块间最好是数据耦合 。

  1. (5)答案:D

解析:在面向数据流的软件设计方法中,信息流一般分为变换流和事务流 。变换流是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;事务流是指当信息沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。

二、判断题

  1. (1)答案:√

解析:判定表可以清晰地表示条件和动作之间的逻辑关系,便于转换为程序代码实现,但它在描述组合条件时,随着条件数量增加,表格会变得复杂,不够直观。

  1. (2)答案:√

解析:面向数据的设计方法通常先确定数据结构特征,然后用顺序、选择、重复等基本形式表示数据操作,以实现模块独立 。

  1. (3)答案:×

解析:模块独立要求低耦合高内聚。低耦合使模块间联系少,高内聚让模块内部功能紧密相关,这样系统更易维护、扩展和理解。

  1. (4)答案:√

解析:软件设计说明书是软件概要设计阶段的主要成果,它描述了软件的总体结构、模块划分、接口设计等内容 。

  1. (5)答案:√

解析:软件设计中的设计复审可以及时发现设计中的错误和缺陷,避免在后期开发阶段付出更高代价进行修改。

  1. (6)答案:×

解析:虽然划分模块可降低软件复杂度,但模块并非越小越好。模块过小会导致接口增多、管理成本增加,应根据功能合理划分模块,保证高内聚低耦合 。

  1. (7)答案:×

解析:结构化设计(SD)法是面向数据流的设计方法,强调程序结构与数据流相对应,而不是与问题结构相对应 。

三、简答题

  1. (1)答案

需求分析是软件设计的基础,它主要任务是确定软件"做什么",获取准确的用户需求并形成需求规格说明书。软件设计则是在需求分析基础上,解决"怎么做"的问题,根据需求规格说明书进行软件架构、模块、接口等设计 。需求分析的准确性和完整性直接影响软件设计的质量,而软件设计是对需求分析的进一步细化和实现,二者紧密关联,缺一不可。

  1. (2)答案
  • 目标:设计出高质量软件,满足用户需求,具有良好的可维护性、可扩展性、可靠性等。同时,要提高软件的开发效率,合理控制成本 。

  • 任务:包括概要设计(确定软件总体结构、模块划分、接口设计等 )和详细设计(对模块内部算法、数据结构等进行设计 )。还需考虑软件的体系结构设计、用户界面设计等方面,确保软件在功能和性能上达到最优。

  1. (3)答案
  • 模块化:将软件划分为独立模块,降低软件复杂度,便于开发、维护和管理。

  • 信息隐蔽:模块内信息(数据和过程 )隐蔽,只提供对外接口,提高模块安全性和独立性。

  • 高内聚低耦合:内聚性使模块内部功能紧密相关,耦合性降低模块间联系,增强软件可维护性和扩展性。

  • 一致性:软件各部分在功能、接口、风格等方面保持一致,便于理解和维护。

  • 可验证性:设计要便于测试和验证,保证软件质量。

  1. (4)答案
  • 从抽象级别分类:包括概要设计和详细设计。概要设计确定软件总体架构、模块划分、接口等;详细设计对模块内部算法、数据结构等进行详细设计 。

  • 从设计方法分类:有面向数据流设计(根据数据流映射软件结构 )、面向数据结构设计(依据数据结构设计程序 )、面向对象设计(以对象为核心进行设计 )等。

  • 从设计内容分类:涵盖体系结构设计、接口设计、数据设计、过程设计等。体系结构设计确定软件整体框架;接口设计定义模块间及与外部的接口;数据设计规划数据结构和数据库;过程设计确定模块内部算法流程 。

  1. (5)答案
  • 模块:是软件中具有独立功能的组成部分,可视为一个黑盒子,有明确输入、输出和功能。

  • 模块化:是将软件划分为多个模块的过程,通过合理划分,使每个模块完成特定功能,模块间保持相对独立 。

  • 原因:降低软件复杂度,使开发人员专注于单个模块;提高软件可维护性,一个模块修改不影响其他模块;便于团队开发,不同人员可负责不同模块;提高软件复用性,模块可在不同项目中重复使用。

  1. (6)答案

结构化设计优点包括:提高软件的可理解性,通过模块化结构,使软件结构清晰,便于开发人员理解;增强软件的可维护性,模块独立使修改一个模块对其他模块影响小;有利于团队协作开发,不同人员可负责不同模块;可提高软件的可靠性,模块独立降低错误扩散风险;支持软件的逐步求精设计,先进行高层设计,再逐步细化模块内部设计 。

  1. (7)答案

面向数据流的设计方法主要思想是根据软件系统的数据流,将其映射成软件结构。首先分析数据流类型,分为变换流和事务流 。对于变换流,确定输入流、变换中心和输出流,将其映射为软件的输入模块、处理模块和输出模块;对于事务流,确定事务中心和各条动作路径,将其映射为软件的事务管理模块和各动作处理模块 。通过这种映射方式,将数据流的逻辑转化为软件的模块结构。

  1. (8)答案
  • 易用性原则:界面操作简单,符合用户操作习惯,如按钮位置合理、菜单层次清晰等。

  • 一致性原则:界面元素(如按钮风格、字体、颜色等 )保持一致,便于用户学习和使用。

  • 美观性原则:界面布局合理、色彩搭配协调,给用户良好视觉感受。

  • 反馈原则:对用户操作及时反馈,如点击按钮后有响应提示,让用户了解操作结果。

  • 容错性原则:允许用户犯错,提供错误提示和恢复机制,避免因用户误操作导致系统崩溃。

  • 可访问性原则:考虑不同用户需求,如提供辅助功能(语音提示等 )方便残障人士使用。

  1. (9)答案

改进的Jackson图与传统的Jackson图相比,优点在于:改进后的图增加了对选择条件和循环条件的明确表示,使逻辑关系更清晰;图形表示更简洁直观,减少了图形元素的复杂性,更易于理解和绘制;能更好地表达模块之间的层次关系和调用关系,在软件设计中更方便分析和设计程序结构,提高了设计效率和准确性 。

  1. (10)答案

高内聚意味着模块内部功能紧密相关,模块只完成单一或少数紧密相关功能,这样模块自身结构紧凑,不易受外部影响。低耦合表示模块间联系少,模块之间通过简单接口通信,一个模块的修改对其他模块影响小。高内聚低耦合的设计使得每个模块相对独立,系统可维护性增强,当某个模块出现问题时,不会轻易扩散影响到其他模块;同时也便于模块的复用和系统的扩展,因为可以独立地对单个模块进行修改、替换或添加,从而提高了系统的独立性。

四、应用题

由于未提供图5 - 41,无法准确作答。一般步骤为:首先确定事务中心,识别输入流和输出流;然后根据事务中心和数据流关系,将其映射为软件结构图中的模块。事务中心映射为控制模块,输入流映射为输入模块,输出流映射为输出模块及相关处理模块 ,用层次图或结构图表示模块间的调用关系。

相关推荐
未定义.22111 小时前
UML-银行取款序列图
设计模式·流程图·软件工程·需求分析·uml
Shiyuan721 小时前
【EI会议】第三届机器人与软件工程前沿国际会议(FRSE 2025)
机器人·软件工程
MyselfO(∩_∩)O4 天前
软件工程第四章习题
软件工程
IDRSolutions_CN4 天前
开发PDF时,如何比较 PDF 文件
java·经验分享·pdf·软件工程·团队开发
电子科技圈4 天前
IAR推动嵌入式开发:云就绪、可扩展的CI/CD和可持续自动化
嵌入式硬件·设计模式·自动化·软件工程·软件构建·设计规范
MyselfO(∩_∩)O5 天前
软件工程第三章习题
软件工程
不会编程的懒洋洋5 天前
软考笔记9——数据库技术基础
数据库·笔记·软件工程·软件构建·软考·程序设计语言基础
光头颜5 天前
UML之序列图的参与者与生命线
软件工程·uml
hope_wisdom6 天前
实战设计模式之迭代器模式
设计模式·迭代器模式·软件工程·架构设计·软件架构