软件工程实用教程习题答案(吕云翔) 及 2套期末试卷.docx





《软件工程实用教程习题答案(吕云翔) 及 2套期末试卷.docx》由会员分享,可在线阅读,更多相关《软件工程实用教程习题答案(吕云翔) 及 2套期末试卷.docx(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程实用教程 习题答案1练习题1)软件的特点有哪些?1 .软件是一种逻辑实体,具有抽象性。硬件是有形的设备,而软件不像硬件那样具有 明显的可见性。人们可以把软件记录在介质上,但是却无法直观地观察到它的形态, 而必须通过在计算机上实际地运行才能了解它的功能、性能及其他特性。2 .软件的生产与硬件的制造不同。它更多地渗透了人类的智能活动,是人类智力劳动 的产物。软件是被开发或设计的,而不是传统意义上被制造的。软件本钱集中于开 发上,这意味着软件工程不能像制造工程那样管理。3 .软件在运行使用过程中,不会磨损。在软件的运行和使用期间,它不会产生像硬件 那样的磨损和老化现象,然而却存在着缺陷维护和
2、技术更新的问题。软件不会磨损, 但是它会退化,而软件的退化是由于修改。因此,软件维护比硬件维护要复杂得多。4 .软件的开发至今尚未完全摆脱手工艺的开发方式。在硬件世界,构件复用是工程过 程的自然的一局部,而在软件世界,它是刚刚开始起步的事物。虽然软件产业正在 向基于构件的组装前进,但大多数软件仍是定制的。5 .软件的开发和运行必须依附于特定的计算机系统环境。它不像有些设备一样,能够 独立地工作,而是受到了物理硬件、网络配置、支撑软件等因素的制约。由此引发 了软件的可移植性问题。2)软件危机是如何产生的?有哪些表现?原因:在20世纪60年代中期,随着软件规模的扩大,复杂性的增加,功能的增强, 使
3、得高质量的软件开发变得越来越困难。表现:1 .开发出来的软件产品不能满足用户的需求,即产品的功能或特性与需求不符。 这主要是由于开发人员与用户之间不能充分有效的交流造成的,使得开发人员 对用户需求的理解存在着差异;.相比越来越廉价的硬件,软件代价过高;2 .软件质量难以得到保证,且难以发挥硬件潜能。开发团队缺少完善的软件质量 评审体系以及科学的软件测试规程,使得最终的软件产品存在着诸多缺陷;.难以准确估计软件开发、维护的费用以及开发周期。往往软件产品不能在预算 范围之内,按照计划完成开发。很多情况下,软件产品的开发周期或经费会大 大超出预算;3 .难于控制开发风险,开发速度赶不上市场变化;.软
4、件产品修改维护困难,集成遗留系统更困难;4 .软件文档不完备,并且存在着文档内容与软件产品不符的情况。软件文档是计 算机软件的重要组成局部,它为在软件开发人员之间以及开发人员与用户之间教师教师嗖的选课计嚓统批准i,选课计划开课计划开课通知学生批准的开课通知档案信息二申请结果43练习题1)软件设计的意义和目标是什么?软件设计在软件开发过程中处于核心地位,它是保证质量的关键步骤。设计为我们提供 了可以用于质量评估的软件表示,设计是我们能够将用户需求准确的转化为软件产品或系统 的唯一方法。软件设计是所有软件工程活动和随后的软件支持活动的基础。2)在软件设计的过程中要遵循哪些规那么?模块化抽象化逐步求
5、精信息隐臧3)软件设计如何分类,分别有哪些活动?从活动任务来看,软件设计是对软件需求进行:数据设计、体系结构设计、接口设 计、构件设计和部署设计。从工程管理角度来看,软件设计分为概要设计和详细设计。前期进行概要设计,得 到软件系统的基本框架。后期进行详细设计,明确系统内部的实现细节。4)什么是软件体系结构,什么是软件体系结构风格?体系结构是研究系统各局部组成及相互关系的技术学科。软件体系结构不仅指定了系统 的组织结构和拓扑结构,也显示了系统需求和构成系统的元素之间的对应关系,提供了一些 设计决策的基本原理。所谓软件体系结构风格,是描述某一特定应用领域中系统组织方式的惯用模式。1)软件体系结构风
6、格反映了领域中众多系统所共有的结构和语义特性,并指导如何将 各个模块和子系统有效地组织成一个完整的系统。2)软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规那么。5)常见的软件体系结构风格有哪些,如何分类?1数据流风格:数据到达即被激活处理工作,无数据时不工作。2调用/返回风格:各个组件通过调用其它组件和获得返回参数来进行交互,配合 完成功能。3独立构件风格:这种风格的主要特点是:事件的触发者并不知道哪些构件会被这 些事件影响,相互保持独立这样不能假定构件的处理顺序,甚至不知道哪些过程会 被调用;各个构件之间彼此无连接关系,各自独立存在,通过对事件的发布和注册 实现关联包括进程
7、通讯、事件系统。4虚拟机风格:它创立了一种虚拟的环境,将用户与底层平台隔离开来,或者将高 层抽象和底层实现隔离开来。5仓库风格:仓库是存储和维护数据的中心场所。在仓库风格中存在两类构件,表 示当前数据的状态的中心数据结构和一组对中心数据进行操作的独立构件。包括 数据库系统、超文本系统、黑板系统。6)面向数据流的设计方法的主要思想是什么?面向数据流的设计方法就是通常所说的结构化设计方法,它以数据流图为基础,把 DFD变换成软件结构的不同映射方法,以软件结构图(SC图)的形式表现。SC 图描述软件系统的层次和分块结构关系,表达模块与模块之间的联系与通讯,从而 表达软件的体系结构。7)什么是内聚、耦
8、合,包括哪些常见类型?内聚指的是一个模块内部各组成局部的处理动作的组合强度,又称块内联系。包括几种 内聚类型: 偶然内聚:模块内各成分无实质性的联系,只是偶然地被凑到一起;逻辑内聚:模块内部各组成局部的处理动作在逻辑上相似,但功能却彼此不同或无 关; 时间内聚:将假设干在同一个时间带内进行的工作集中在一个模块内,但这些工作彼 此无关;过程内聚:模块内部包含的各个成分按照某种确定的顺序进行,但所做工作没有什 么关系; 通讯内聚:模块内的各个组成局部都使用相同的输入数据或产生相同的输出数据;顺序内聚:模块中各个组成局部顺序执行,前一个成分的输出就是后一个成分的输 入; 功能内聚:模块内的各个组成局
9、部全都为完成同一个功能而存在,共同完成一个单 一的功能,并且只完成一个功能。耦合指的是两个模块之间的相互依赖关系,又称块间联系。包括以下几种类型的偶合: 非直接耦合:调用和被调用模块之间不存在直接的数据联系; 数据耦合:调用和被调用模块之间存在简单变量这样的数据传递; 特征耦合:调用和调用模块之间存在诸如数组这样的数据结构的数据传递;控制耦合:耦合的模块之间传递的不是数据信息,而是控制信息,或称开关量或标 志量; 外部耦合:允许多个模块访问同一个全局变量; 公共耦合:允许多个模块访问同一个全局性数据结构; 内容耦合:允许一个模块直接调用另一个模块中的数据。8)详细设计时,应该完成哪些工作?软件
10、详细设计包括数据设计、界面设计和构件设计9)数据库设计有哪些步骤,每一步的主要工作是什么?1)需求分析;调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、 范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求 和各种约束条件等,形成用户需求规约。2)概念设计;对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校 等),通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念 模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以 及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机 上的具体实现细节,用一
11、种抽象的形式表示出来。以扩充的实体一联系模型(E-R 模型)方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间 的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据 库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一 个全局视图,即用户要描述的现实世界的概念数据模型。3)逻辑设计;主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式, 即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为 各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑 数据库”。4)物理设计;根据特定数据库管理系统所
12、提供的多种存储结构和存取方法等依赖于具 体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构 (包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。 这一步设计的结果就是所谓“物理数据库”。5)验证设计;在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型 的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过 程往往需要经过屡次循环反复。当设计的某步发现问题时,可能就需要返回到前面 去进行修改。因此,在做上述数据库设计时就应考虑到今后修改设计的可能性和方 便性。10)如何进行ER模型到关系模型的转换?规那么1(实体类型的转
13、换):将每个实体类型转换成一个关系模式,实体的属性即为关 系模式的属性,实体标识符即为关系模式的键。规那么2 (二元联系类型的转换) 假设实体间联系是1:1:隐含在实体对应的关系中; 假设实体间联系是1:N:隐含在实体对应的关系中; 假设实体间联系是M:N:直接用关系表示。11)界面设计应该遵循什么原那么?1)置用户于控制之下:以不强迫用户进入不必要的或不希望的动作的方式来定义交互 模式;提供灵活的交互;允许用户交互可以被中断和撤销;当技能级别增长时可以 使交互流水化并允许定制交互;使用户隔离内部技术细节;设计应允许用户和出现 在屏幕上的对象直接交互。2)减少用户的记忆负担:减少对短期记忆的要
14、求;建立有意义的缺省;定义直觉性的 捷径;界面的视觉布局应该基于真实世界的隐喻;以不断进展的方式揭示信息。3)保持界面一致:允许用户将当前任务放入有意义的语境;在应用系列内保持一致性; 如果过去的交互模式已经建立起了用户期望,不要改变它,除非有不得已的理由。12)构件设计有哪些设计工具?流程图、N-S图、PAD图、决策表与决策树、伪代码 13)利用Visio实现3.5。4练习题1)程序设计语言的开展经历了哪几个阶段?每个阶段语言的特点是什么?1 .机器语言是计算机可以直接识别、执行的指令代码,它是计算机开展早期的语言。 由于机器指令直接操纵计算机硬件的执行,所以不同结构的计算机有不同的机器语
15、言。用机器语言编码时必须考虑到机器的实现细节,所以它的编程效率极低,而且 很难掌握。2 .汇编语言用一组助记符来代替机器语言中晦涩、难懂的二进制代码,使得代码比拟 直观,易于程序员理解。在执行时,汇编语言必须由特定的翻译程序转化为机器语 言,才能由计算机执行。可以说,每种汇编语言都是支持这种语言的计算机独有的, 所以它与机器语言一样都是面向机器的低级语言。由于汇编语言的抽象层次太 低,所以程序员在使用时需要考虑大量的机器细节。3 .高级语言出现于20世纪50年代,它不仅在语义上更易于程序员理解,而且在实现 上也不再依赖于特定的计算机硬件。它为程序员的编码工作提供了方便,同时大大 提高了软件的生
16、产效率。4 .第四代语言是超高级语言,它是对数据处理和过程描述的更高级的抽象,一般由特 定的知识库和方法库支持,比方与数据库应用相关的查询语言,描述数据结构和处 理过程的图形语言等,它们的目的在于直接实现各种应用系统。2)面向对象的高级语言中包含哪些基本概念?封装、继承、多态3)你了解的程序设计语言都有哪些?(1) Fortran 语言Fortran语言出现于1954年,是世界上最早的高级语言,广泛应用于科学和工程计 算领域。Fortran语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。(2) Pascal 语言Pascal语言是最早的结构化编程语言,常用于算法和数据结构的描述。用
17、Pascal 编写的程序有一种结构化的美感,学习Pascal语言有助于培养良好的程序设计风 格和编程习惯。(3) Basic 语言Basic相对于其他编程语言来说简单易用,并具有“人机会话”功能,是一种比拟适 合于初学者和爱好编程的非专业人士的语言。但是其简单与随意的特性也容易让使用者 养成不好的编程习惯。(4) Cobol 语言Cobol语言是最接近于自然语言的高级语言之一,它使用了 300多个英文保存字, 语法规那么严格,程序通俗易懂,是一种功能很强而又极为冗长的语言。常用于商业数据 处理等领域。(5) C语言C语言兼顾高级语言和汇编语言的特点,灵活性很好,效率高,常用来开发比拟底 层的软
18、件。例如,Linux操作系统就是用C语言编写的。要充分掌握该语言需要一定的 计算机基础和编程经验,所以虽然现在很多高校选择C语言作为入门编程语言,但它 并不十分适合初学者。(6) C+语言C+语言在C语言的基础上加入了面向对象的特性,既支持结构化编程又支持面向 对象编程使其应用领域十分广泛,是现在使用较多的语言之一。(7) Java 语言Java语言是现在非常流行的一种编程语言,具有平台无关性、平安性、面向对象、 分布式、健壮性等特点。Java分为3个体系JavaSE、JavaEE和JavaME,适合企业应用 程序和各种网络程序的开发。(8) Delphi 语言Delphi语言以Pascal语
19、言为基础,扩充了面向对象的能力,并加入了可视化的开发 手段,用于开发Windows环境下的应用程序。(9) C#语言C#语言是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程 序设计语言,它充分借鉴了 C+、Java和Delphi的优点,是现在微软.NET Windows网 络框架的主角。(10)标记语言标记语言主要用来描述网页的数据和格式,没有传统编程语言提供的控制结构和复 杂的数据结构定义。例如,超文本标记语言(HTML)和可扩展标记语言(XML)。(11)脚本语言脚本语言是可以被另一种语言解释执行的语言。脚本语言假设已经存在了一系列由 其他语言写成的有用的组件
20、,它不是为了实现最原始的应用,而主要是把组件连接在一 起,实现某一特定领域功能。例如,Shell. Perk JSP等。这种领域专业语言的应用是 未来编程的开展方向之一。4)要形成良好的编码风格可以从哪些方面做起?1 .版权和版本声明.程序版式2 .注释.命名规那么3 .数据说明.代码构造4 .输入输出.效率5)使用Microsoft Visual Studio 2010和C#对求两个整数的最大公约数进行编程。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace G
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程实用教程 习题答案吕云翔 2套期末试卷 软件工程 实用教程 习题 答案 吕云翔 期末试卷

限制150内