软件工程第4章习题
软件工程第四章 结构化分析
软件需求分析阶段的工作,可以分成以下四个方面 :对问题的识别、分析与综合、制定规格说明以及 ( )。 A.总结 B.实践性报告 C.需求分析评审 D.以上答案都不正确
答案:C
需求验证应该从下述几个方面进行验证:(C ) A 可靠性、可用性、易用性、重用性 B可维护性、可移植性、可重用性、可测试性 C一致性、现实性、完整性、有效性 D 功能性、非功能性
3、需求分析步骤
1、需求获取
3、亲身实践:观察用户工作流程
优点: 1. 通过直接观察提取用户或系统的特性; 2. 有助于理解难以用语言描述清楚的复杂业务。 3. 更加准确和真实 缺点:
1. 观察可能使用户紧张,从而表现与往常不同。 2. 比较费时间
3、需求分析步骤
1、需求获取
3、需求分析步骤
3、需求分析步骤
3 需求描述
1. 又叫:需求规约
2. 是分析任务的最终产物,给出对目标软件的 各种需求。
3. 需求规约作为用户和开发者之间的一个协议 (需求规格说明书),在之后的软件工程各 个阶段发挥重要作用
软件需求分析阶段的目的是澄清用户的要求 ,并把双方共同的理解明确地表达成一份书 面文档——(软件需求规格说明书)。
经调查,系统分析员给出有问题的初略陈述, 其中部分描述如下:某商场的采购部门要求每 天开出定购清单,交采购员输入系统;仓库管 理员还要将库存信息此输入系统,经库存业务 (进贷或出贷)处理后输出。从这段描述可知 该部分数据流图中的外部项为:
A.采购员、仓库管理员 B.定购清单、库存业务 C.库存业务 D.定购清单、采购员 答案A
3、需求分析步骤
4、需求验证
1. 进行需求评审
2. 验证需求的一致性
3. 验证需求的现实性
《软件工程案例教程软件项目开发实践》第四章练习题
第四章练习题:一、填空题1.C/S、B/S、SOA、BPM等都是不同的体系结构。
2.数据字典包括数据项、数据流、数据存储和基本加工。
3.高内聚、松耦合是模块设计的基本原则。
4.软件设计把已确定的软件需求转换成特定形式的设计表示,使其得以实现。
5.设计模型是从分析模型转化而来的,主要包括四类模型:体系结构设计模型、数据设计模型、接口设计模型、构件设计模型。
6.面向对象设计的主要特点是建立了四个非常重要的软件设计概念:抽象性、信息隐藏、功能独立性和模块化。
7.模块层次图和模块结构图是模块功能划分的重要方法。
8.UML设计中主要采用的图示有类图、对象图、包图等。
9.软件模块设计,包括模块划分、模块独立性、模块的调用关系、每个模块的功能等。
10.数据库的设计一般要进行三个方面的设计:概念结构设计、逻辑结构设计和物理结构设计。
11.结构化程序设计方法的主要原则可以概括为自顶向下,模块化,逐步求精。
二、判断题1.软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程。
(×)2.软件设计说明书是软件概要设计的主要成果。
(√)3.软件设计中的设计复审和设计本身一样重要,其主要作用是避免后期付出高代价。
(√)4.应用程序框架结构是一个可以重复使用的、大致完成的应用程序,可以通过对其进行定制,开发成一个客户需要的真正的应用程序。
(√)5.面向对象设计(OOD)是将面向对象分析(OOA)的模型转换为设计模型的过程。
(√)6.在进行概要设计时应加强模块间的联系。
(×)7.复用原则也是软件设计的一个重要原则。
(√)8.以对象、类、继承和通信为基础的面向对象设计方法也是常见的软件概要设计方法之一。
(√)三、选择题1.内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(D)方法。
A.逻辑内聚B.时间内聚C.过程内聚 D.顺序内聚2.概要设计是软件工程中很重要的技术活动,下列不是概要设计任务的是(B)。
软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)
《软件工程实用教程》第2、3、4、5章习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。
这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。
2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。
例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。
这为提高软件产品质量提供了有效保证。
瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。
•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。
•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。
3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。
将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。
快速原型方法具有以下一些特点。
•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。
一旦需求或设计确定下来,原型就将被抛弃。
因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。
快速原型往往采用软件生成工具来创建,例如,4GL语言。
Chapter04_Exercises
C. 识别、控制和跟踪需求的变化
D. 以上选项都不是
11. (
)需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择一
个相互一致的需求集。
A. 真
B. 假
12. 下面的(
)不是在项目启动阶段被提出的“与环境无关”的问题。
A. 成功的解决方案将带来什么样的经济收益?
B. 谁反对该项目?
C. 谁将为该项目付款?
2. 请指出下面需求描述存在的问题,并进行适当的修改。
(1) 系统用户界面友好。 (2) 系统运行时应该占用尽量少的内存空间。 (3) 即使在系统崩溃的情况下,用户数据也不能受到破坏。 (4) ATM 系统允许用户查询自己银行帐户的现存余额。 (5) ATM 系统应该快速响应用户的请求。 (6) ATM 系统需要检验用户存取的合法性。 (7) 所有命令的响应时间小于 1 秒;BUILD 命令的响应时间小于 5 秒。 (8) 软件应该用 JAVA 语言实现。 答案要点: (1) 问题:“友好”是不可验证的。
B. 每个指定系统的实现
C. 软件体系结构的元素
D. 系统仿真所需要的时间
9. 组织需求评审的最好方法是(
)。
A. 检查系统模型的错误
B. 让客户检查需求
C. 将需求发放给设计团队去征求意见
D. 使用问题列表检查每一个需求
10. 使用跟踪表有助于(
)。
A. 在后续的检查运行错误时调试程序
B. 确定算法执行的性能
(2) 需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。 (3) 需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。 (4) 需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清
软件工程第4章
4-5 试用Petri网说明第4题所述图书馆中一本书的循 环过程。在规格说明中应该包括操作H、C及R。
4-6 试用Z语言对第4题所述图书馆图书流通系统做一 个完整的规格说明。
•
生 活 中 的 辛 苦阻挠 不了我 对生活 的热爱 。20.12.2820.12.28Monday, December 28, 2020
第二条和第三条规则,分别对应于电梯即将下降 或者没有待处理的请求的情况。
4.2.3 评价
有穷状态机方法采用了一种简单的格式来描述规 格说明:
当前状态+事件+
这种形式的规格说明易于书写、易于验证,而且 可以比较容易地把它转变成设计或程序代码。
有穷状态机方法比数据流图技术更精确
4.3 Petri网
4.3.1 概念
所有按钮的集合,因此,Z规格说明开始于: 〔Button〕 2. 状态定义 一个Z规格说明由若干个“格(schema)”组成,每个 格含有变量说明和限定变量取值范围的谓词。例如, 格S的格式如图4.12所示。
图4.12 Z格S的格式
3. 初始状态 对于电梯问题来说,抽象的初始状态为:
ˆ Button_Init Button_State|pushed=Φ〕
第4章 形式化说明技术
4.1 概述 4.2 有穷状态机 4.3 Petri网 4.4 Z语言 4.5 小结 习题
按照形式化的程度,可以把软件工程使用的方 法划分成非形式化、半形式化和形式化3类:
• 用自然语言描述需求规格说明,是典型的非形式 化方法。
• 用数据流图或实体-联系图建立模型,是典型的 半形式化方法。
有穷状态机对本产品进行规格说明: 这个问题中有两个按钮集。
软件工程课后习题答案第五版
软件工程课后习题答案第五版《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
- (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
- 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程-习题及答案---第四章
软件工程-习题及答案---第四章一、判断题1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。
2、(√)概要设计与详细设计之间的关系是全局和局部的关系。
3、(×)一个模块的作用范围应该大于该模块的控制范围。
4、(√)模块间的耦合性越强,则模块的独立性越弱。
5、(×)在设计模块时,应使一个模块尽量包括多个功能。
6、(√)软件结构图可以利用数据流图映射出来。
7、(×)结构化设计是一种面向数据结构的设计方法。
8、(√)在结构化设计过程中首先要确认DFD。
二、选择题1、软件结构图的形态特征能反映程序重用率的是(C)。
A、深度B、宽度C、扇入D、扇出2、概要设计的目的是确定整个系统的(B)。
A、规模B、功能及模块结构C、费用D、测试方案3、耦合是对软件不同模块之间互连程度的度量。
各种耦合从强到弱的排列为(C)。
A、内容耦合,控制耦合,数据耦合,公共环境耦合B、内容耦合,控制耦合,公共环境耦合,数据耦合C、内容耦合,公共环境耦合,控制耦合,数据耦合D、控制耦合,内容耦合,数据耦合,公共环境耦合4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为(D)。
A、数据耦合B、公共耦合C、标记耦合D、内容耦合5、数据耦合和控制耦合相比,则(B)成立。
A、数据耦合的耦合性强B、控制耦合的耦合性强C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析6、衡量模块独立性的标准是(D)。
A、耦合的类型B、内聚的类型C、模块信息的隐藏性D、耦合性和内聚性7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。
A、时间内聚B、逻辑内聚C、通信内聚D、信息内聚8、为了提高模块的独立性,模块内部最好是(C)。
A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚9、在结构化设计方法中,下面哪种内聚的内聚性最弱(C)。
A、逻辑内聚B、时间内聚C、偶然内聚D、过程内聚10、软件设计是把(A)转换为软件表示的过程。
软件工程(习题与参考答案)
第1章概述〔习题与参考答案〕[判断题]1. 由于今天个人计算机不断开展壮大,人们不再采用软件团队的开发方式。
〔×〕2. 由于软件是产品,因此可以应用其他工程制品所用的技术进展生产。
〔×〕3. 购置大多数计算机系统所需的硬件比软件更昂贵。
〔×〕4. 大多数软件产品在其生命周期中不需要增强功能。
〔×〕5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
〔√〕6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
〔×〕[选择题]1. 〔〕因素促使计算机系统越来越复杂。
〔D〕A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系构造方面的深刻变化D. 以上所有选项2. 下面的〔〕不再是现代软件工程师关注的问题。
〔A〕A. 为什么计算机硬件的本钱这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的本钱这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于〔〕。
〔C〕A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于〔〕。
〔C〕A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的〔〕说法是正确的。
〔C〕A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的根本目标是〔〕。
〔B〕A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. 〔〕是将系统化的、标准的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程各章作业习题的名词解释和问答题参考答案
软件工程各章作业习题的名词解释和问答题参考答案第一章:1:什么是软件危机开发软件由于管理混乱,加入软件规模越来越大,越来越复杂,造成软件开发失败。
2:软件工程过程指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。
3:软件生成周期可行性研究与计划、需求分析、总体设计、详细设计、实现、测试、使用与维护4:有哪些软件周期模型瀑布模型、原型模型、增量模型、螺旋模型。
5:软件计算机程序及说明程序的各种文档6:个体手工劳动个人编写程序7:小生产合作方式多人编写程序8:软件的特点是一种逻辑产品,软件的生产主要是研制,软件产品不会用坏,软件生产主要是脑力劳动,软件的成本高。
9:软件文档有关程序的功能、设计、图形资料等等。
第二章:三. 名词解释1.可行性研究以最小代价, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.2.技术可行性主要研究开发的软件技术风险有多大3.经济可行性主要研究开发成功后能否得到应有的效益4.社会可行性主要研究开发的软件是否存在责任和侵权, 以及与当前管理制度, 人员素质, 操作方式的矛盾能否解决.四.问答题1. 可行性研究的任务是什么首先初步确定项目的规模, 目标, 约束和限制条件, 决定系统的主要功能, 进行简要压缩, 提出几种解决方案.对每种方案提出意见.2.可行性研究有那些步骤确定任务;分析技术可行性;分析经济可行性;分析社会可行性;作出系统流程图;作出开发计划。
3.可行性研究的目的.减少开发大型软件的风险,缩短开发周期, 减小投资, 减少使用资源, 在尽可能短的时间内, 确定该软件项目是否能够开发, 是否值得开发.第三章三. 名词解释1. 需求分析指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来2. DFD数据流图四. 简答题1.什么是需求分析该阶段的基本任务是什么指开发人员为了准确地理解, 表达用户的要求, 通过调查, 分析, 把系统的功能, 性能等方面准确地表达出来基本任务:(1) 能够表达和理解问题的功能和性能;(2) 可以把一个复杂问题按某种方式进行划分, 并能逐步细化, 从而使复杂问题简化,软件的功能域,数据域都可以划分;(3) 建立模型.2. 简述结构化分析的步骤这一方法的基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效的控制系统的复杂性.对于复杂, 规模大的应用系统,采用先抽象后具体, 先全局后局部的思想,有利于把握系统的总体目标, 结构和功能.第四章:三. 名词解释1. 软件设计确定软件结构,选择好的数据库,进行数据结构设计2.模块化把复杂问题划分为模块的过程3.信息隐蔽指模块内部处理细节和内部数据用某种手段隐蔽起来,外部模块不能随便访问4.模块独立性希望一个模块越独立越好,每个模块完成独立的功能,与其他模块联系越少越好5.耦合性指软件结构中模块之间相互依赖的程度6.内聚性模块内部各部分执行功能组合在一起的相关程度7.模块的控制范围一个模块对下属模块的控制8.模块的作用范围指模块之间的作用,但两个模块间是平级的9. 软件结构以需求分析文档为依据,解决实现软件体系结构四. 简答题1.什么是软件概要设计, 该阶段的基本任务是什么以需求分析文档为依据,解决实现软件体系结构。
软件工程第4章习题解答
说明:1,每一笔交易有3种属性:“交易金额”、“每股售价”、“股数”。
2,“交易总额”有3种值;“每股售价”有3种值;“股数”有2种值。所以每笔交易有18种状态。(表有19列,第1列是说明列)
3,每种状态有一个决策公式。判定表中的决策方案有18行。
4,每个计算公式中只有一个变量“交易金额”,设为a。
教师的工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个计算程序计算并印出每名教师的原有工资和调整后的新工资。要求:
⑴画出此系统的数据流图;
⑵写出需求说明;
⑶设计上述的工资调整程序(要求用判断表描述),设计时请分别采用下述两种算法,并比较这两种算法的优缺点;
set START to (I+1)
else if TABLE(I) > ITEM then
set FINISH to (I-1)
endif
enddo
if TABLE(I) = ITEM or TABLE(START) = ITEM or TABLE(FINISH) = ITEM then
set FLAG to 1
解:
⑴ 系统的数据流图
⑵ 需求说明:(略)
⑶ 程序框图:
算法说明:1 此算法是先找出工资少于$26,000的人, 再进行工资调整,属算法a
2 算法a适于数据库的记录不太多的情况,在数据库中查找较费时。
但是,调整系统的主要部分少一个判断,结构清晰一些。
3 算法b适于数据库的记录较多的情况,利用数据库的排序功能可很快地将教师的档案数据按工资大小排好序,调整程序只对前若干个记录进行操作。这个算法对于修改数据库回更便捷些。
交易
《软件工程实用教程》第4章_结构化软件设计
第4 章 結構化軟體設計
3.虛擬機風格 例:解釋器,通過虛擬機特定模組的解釋步驟 如下: 解釋引擎從被解釋的模組中選擇一條指令; 基於這條指令,引擎更新虛擬機內部的狀 態; 上述過程反復執行。
第4 章 結構化軟體設計
特點: 在虛擬機環境中運行的代碼不必須瞭解虛擬 機的具體細節。 一旦運行環境發生變化,只需要重寫虛擬機 本身,而不是整個系統。 通常虛擬機會限制在其中運行的軟體的行為, 特別是那些以實現跨平臺為目的的虛擬機, 如Java虛擬機和.NET CLR。 能夠使系統的結構更具層次性,使用虛擬機 提供的設施編寫的代碼,可以不考慮虛擬機 以外的實際環境,而在正確地實現了這種虛 擬機的環境中執行。
第4 章結構化軟體設計
本章學習內容: 1.瞭解概要設計的任務與過程 2.掌握結構化設計技術的基本原理與準則 3.掌握面向數據流分析的設計方法 4.瞭解面向數據的設計方法 5.掌握資料庫設計原則和步驟 6.瞭解常用的詳細設計工具 7.瞭解概要設計說明書的基本內容
第4 章 結構化軟體設計
4.1 概要設計的任務與過程 概要設計的目標是概要地說明軟體 應該怎樣實現,即解決軟體系統總 體結構設計的問題,包括軟體系統 的結構、模組劃分、模組功能和模 組間的聯繫等。
第4 章 結構化軟體設計
4.2.1 現代體系結構模型的基本概念
1.模式:是針對特定問題的成功解決方案,是指形成 了一種趨於固定的結構形式。 結構模式表達了軟體系統的基本結構組織形式或結 構方案,包含了一組預定義的子系統,規定了這些 子系統的責任,同時還提供了用於組織和管理這些 子系統的規則和嚮導。 設計模式為軟體系統的子系統、構件或者構件之間 的關係提供一個精練後的解決方案,描述了特定環 境下,用於解決通用軟體設計問題的構件以及這些 構件相互通信時的可重現結構。
精品文档-软件工程经济学(赵玮)-第4章
第4章 软件项目的经济效益、社会效益与风险分析
若IRR≤ic,则有0=NPV(IRR)≥NPV(ic),从而由净现值法 判别准则得知该工程项目方案在ic水平下不可行。
若IRR>ic,则有0=NPV(IRR)<NPV(ic),从而由净现值法判 别准则得知该工程项目方案在ic水平下可行。
需要说明的是,上述ic表示基准贴现率,而ic水平表示了 该企业产品所在行业的平均水平,通常基准贴现率应高于贷款 利率。而对于一个保守的投资者而言,为减少投资风险,他还 可将基准贴现率进一步提高到一个最低期望贴现率iD,即有 iD>ic,并用iD来作为项目投资方案是否可行的判别依据。
第4章 软件项目的经济效益、社会效益与风险分析 图4.2 对分法求解流程图
第4章 软件项目的经济效益、社会效益与风险分析 图4.3 对分法原理图示
第4章 软件项目的经济效益、社会效益与风险分析
[例4.2] 某IT公司经市场调研拟自行投资构建一宾馆、 博物馆防盗系统并投放市场进行销售,根据项目组的概要设计 及市场用户的购买意向,预计上述市场投放型软件经一年即可 完成系统生产与测试,并估计该防盗系统的寿命期约为5年, 在此寿命期内有关的现金流量详见表4.3。今取最低限度期望 贴现率iD=12%,且不考虑系统残值,试用内部收益率法对该防 盗系统作投资决策。
解 由题意知有N=5,iD=12%,D5=0,故利用表4.3的现 金流量信息可得该软件项目投资的净现值函数为
NPV(i)
5 t0
Bt
Ct (1 i)t
Kt
D5 (1 i)5
10 2 3 2 4 4 1 i (1 i)2 (1 i)3 (1 i)4 (1 i)5
第4章 软件项目的经济效益、社会效益与风险分析
第4章 总体设计-习题
4.1 总体设计的目标及任务1.软件总体设计是指软件总体结构设计和数据设计,该阶段主要任务不包括()。
A.设计软件的模块结构B.定义接口并建立数据结构C.模块内部细节设计D.生成概要设计规格说明2.概要设计过程是()A.先确定系统的实现方案,然后在结构设计阶段中确定软件的模块结构B.确定软件的模块结构,再设计出系统的所有程序和数据文件C.设计出系统的HIPO图并对所有模块进行描述D.规划出系统的后期设计总体结构3.通过总体设计阶段的工作,开发人员将划分组成系统的物理元素,例如程序、文件和等。
4.模块接口设计要简单,以便降低复杂程度和冗余度。
()5.软件概要设计包括软件系统结构设计以及数据结构和数据库细节设计。
()6.概要设计也称总体设计,其过程由确定设计方案和结构设计两个阶段组成。
()4.2 软件结构设计原理1.对软件进行分解,是为了()A.降低模块的复杂程度B.降低模块间接口的复杂程度C.降低模块的复杂程度,并降低模块间接口的复杂程度D.降低模块的复杂程度,并提高模块间接口的复杂程度2.耦合是对软件不同模块之间互连程度的度量。
各种耦合按从强到弱排列为()A.内容耦合,控制耦合,数据耦合,公共环境耦合B.内容耦合,控制耦合,公共环境耦合,数据耦合C.内容耦合,公共环境耦合,控制耦合,数据耦合D.控制耦合,内容耦合,数据耦合,公共环境耦合3.内聚程度最低的是()内聚。
A.偶然B.过程C.顺序D.时间4.内聚度标志一个模块内部各成分彼此结合的紧密程度,按其高低程度可分为七级,内聚度越低越好。
()4.3 软件结构设计工具4.4 软件结构设计启发式规则1.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是()A.模块的作用域应在模块的控制域之内B.模块的控制域应在模块的作用域之内C.模块的控制域与模块的作用域互相独立D.以上说法都不对2.一个软件的深度是指软件结构中控制的层数,而软件的宽度是指软件结构中同层模块数的。
张海藩《软件工程导论》(第6版)(课后习题 第4章 形式化说明技术)【圣才出品】
第4章形式化说明技术1.举例对比形式化方法和欠形式化方法的优缺点。
答:(1)欠形式化方法的缺点①矛盾矛盾是指一组相互冲突的陈述。
②二义性二义性是指读者可以用不同方式理解的陈述。
③含糊性例如,人们可能经常在文档中看到类似下面这样的需求:“系统界面应该是对用户友好的。
”实际上,这样笼统的陈述并没有给出任何有用的信息。
④不完整性。
如果在规格说明书中对一个命令的功能没有更多的描述,那么,这个命令的细节是严重不完整的。
⑤抽象层次混乱。
抽象层次混乱是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。
这样的规格说明书使得读者很难了解系统的整体功能结构。
(2)形式化方法的优点①能够简洁准确地描述物理现象、对象或动作的结果。
在理想情况下,分析员可以写出系统的数学规格说明,它准确到几乎没有二义性,而且可以用数学方法来验证,以发现存在的矛盾和不完整性,在这样的规格说明中完全没有含糊性。
②可以在不同的软件工程活动之间平滑地过渡。
③提供了高层确认的手段。
可以使用数学方法证明,设计符合规格说明,程序代码正确地实现了设计结果。
2.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则?答:(1)人们在理解用自然语言描述的规格说明时,容易产生二义性。
为了克服非形式化方法的缺点,人们把数学引入软件工程。
创造了基于数学的形式化说明技术。
(2)应用形式化方法的准则:①应该选用适当的表示方法。
②应该形式化,但不要过分形式化。
③应该估算成本。
④应该有形式化方法顾问随时提供咨询。
⑤不应该放弃传统的开发方法。
⑥应该建立详尽的文档。
⑦不应该放弃质量标准。
⑧不应该盲目依赖形式化方法。
⑨应该测试、测试再测试。
⑩应该重用。
3.一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。
例如,下列的字符串都是浮点二进制数:110101E-101-100111E11101+1E0更形式化地,浮点二进制数定义如下:其中:符号∷=表示定义为;符号[...]表示可选项;符号a|b表示“a或b。
2020年智慧树知道网课《软件工程方法与实践》课后习题章节测试满分答案
第一章测试1【单选题】(1分)软件产品与物质产品有很大区别,软件产品是一种()产品。
A.文档B.消耗C.有形D.逻辑2【单选题】(1分)软件会逐渐退化而不会磨损,其原因在于()。
A.软件通常发生在使用之后B.软件备件很难订购C.软件通常暴露在恶劣的环境下D.不断的变更使组件接口之间引起3【单选题】(1分)软件工程要解决的问题是()。
A.加快软件开发速度B.降低软件开发成本C.以上都是D.提高软件质量4【单选题】(1分)软件工程的基本要素包括方法、工具和()。
A.硬件环境B.软件系统C.人员D.过程5【多选题】(1分)软件一般包括以下()部分。
A.数据B.规程C.程序D.文档第二章测试1【单选题】(1分)基于计算机系统的元素包括软件、硬件、人员、数据库、文档和()。
A.规范B.规程C.规则D.过程2【单选题】(1分)基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个()。
A.软件B.元素C.文档D.硬件3【单选题】(1分)经济可行性分析中的效益包括经济效益和()效益。
A.环境B.成本C.消耗D.社会4【多选题】(1分)在基于计算机系统的元素中,硬件包括()。
A.提供外部世界功能的电子机械设备(如传感器、马达等)B.打印、复印设备C.提供计算能力的电子设备D.支持数据流的互连设备(如网络交换器、电信设备)5【多选题】(1分)系统工程的任务包括()。
A.成本估算及进度安排B.生成系统规格说明C.识别用户的要求D.系统建模和模拟E.可行性分析第三章测试1【单选题】(1分)在软件生存周期中,()阶段主要任务是“弄清楚要做什么?”。
A.需求分析B.软件测试C.软件设计D.编码实现2【单选题】(1分)通常将软件生命周期划分为系统工程、需求分析、软件设计、编码实现、软件测试、运行维护等阶段,每个阶段都有各自侧重的任务和目标,以下不属于需求分析阶段的任务是()。
A.弄清楚怎么做,规划系统体系结构B.弄清楚需要做什么C.通过调研等方式获取需求D.编制软件需求规格说明书3【单选题】(1分)需求规格说明描述了()。
《软件工程》(第五版)习题参考答案
《软件工程》(第五版)习题参考答案
第1章 一、判断题 1、(×)软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、(×)软件危机的产生主要是因为程序设计人员使用了不适 当的程序设计语言。 4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和 衰亡的生存过程。 5、(×)文字处理软件 Word 属于系统软件。应用软件 6、(√)原型是软件的一个早期可运行的版本,它反映最终系 统的部分重要特性。 7、(√)软件开发过程中,一个错误发现得越晚,为改正它所 付出的代价就越大。 8、(×)快速原型模型对软件开发人员的水平要求不高。 9、(√)喷泉模型适合于面向对象的软件开发。 10、(×)面向对象开发方法的主要缺点是在适应需求变化方面 不够灵活。 二、选择题 1、软件是一种(C)。 A、程序 B、数据
D、合同文档 14、结构化分析方法是以数据流图、(D)和加工说明等描述工 具,即用直观的图和简洁的语言来描述软件系统模型。 A、DFD 图 B、PAD 图 C、IPO 图 D、DD 15、软件需求分析阶段的工作,可以分为四个方面:需求获取、 需求分析、编写需求规格说明书以及(B)。 A、阶段性报告 B、需求评估 C、总结 D、都不正确 16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一 些特定的图符构成。下面图符名称标识的图符不属于数据流图合 法图符的是(A)。 A、控制流 B、加工 C、数据存储 D、源点和终点 17、DFD 用于描述系统的(D)。 A、数据结构
软件工程实用教程(2版)-4章-习题与参考答案-2012-5-30
3.从数据流程图导出的初试模块结构图是不完美的,应从哪些方面考虑改进?
答案要点:
1)做到模块的高内聚性,并且能够辨别出低内聚性的模块,加以修改使之提高内聚性;
2)降低模块间的耦合度:控制使用全局数据、模块间尽量传递数据型信息;
3)作用(影响)范围性”与“个性化”
3)界面信息反馈
4)界面的合适性
5)容错性
6)审美性和可用性
int n=1;
int sum=0;
while(n<=1000){
n=n+1;
if( (n%7==0)){
sum=sum+n;
}
}
System.out.println("在1000以内能被7整除的所有数的和是:"+sum);
}
}
12.试述界面设计中需要考虑哪些因素。
答案要点:
1)用户工作环境与工作习惯
4)模块的扇入、扇出要适当等。
4.什么是软件体系结构?什么是软件体系结构风格?
答案要点:
软件体系结构表示了一个软件系统的逻辑结构,描述包含系统基础构成单元、它们之间的作用关系、在构成系统时它们的集成方法以及对集成约束的描述等方面。在设计软件体系结构时,必须考虑系统的动态行为,考虑与现有系统的兼容性、安全性、可靠性、扩展性和伸缩性。
顺序内聚:计算学生平均成绩、求出最高分、最低分与达到优秀的学生等。
功能内聚:计算工资
2.答案要点:
答案要点:
内容耦合:A模块中功能要完成需要调用B模块中的代码来实现;
公共耦合:多个模块共享一个数据变量;
控制耦合:根据医护人员的信息,调用医生的评价模块、或护士的考核模块;
《软件工程》各章课后习题答案
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、软件需求包括3 个不同的层次:业务需求、用户需求、功能需求和非功能需求
2、举例说明什么是功能需求和非功能需求
3、软件需求工程的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型
4、目标系统的具体物理模型是由当前系统的具体物理模型经过哪些环节转换得到的。
5、数据流图的作用是什么?它有哪些基本成份?
〖解〗数据流图可以用来抽象地表示系统或软件。
它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。
因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。
数据流图的基本成份有4种:
某银行的计算机储蓄系统功能是:将储户的存户填写的存款单或存款单输入系统,如果是存款,系统记录存款人姓名﹑住址﹑存款类型﹑存款日期﹑利率等信息,并打印出存款单给储户;如果是取
款,系统计算清单给储户。
请用DFD。
6、描述加工逻辑有哪些工具?
答:加工逻辑的描述:一般用结构化语言,判定表,判定树
加工逻辑描述为,如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身C类保险。
附此之外的其他申请者都适用于A类保险。
7、什么是结构分析方法?该方法使用什么描述工具?
答:结构化分析:简称SA,面向数据流进行数据分析的方法。
采用自顶向下逐层分解的分析策略。
顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
8、快速原型模型有几种,各有什么特点?
答:快速原形模型根据原型的不同作用,有三类原型模型:
(1)探索型原型:把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,
并探索各种方案的可行性。
它主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。
(2)实验型原型:主要用于设计阶段,考核实现方安是否合适,能否实现。
对于一个大型系统,若
对设计方案心中没有把握时,可通过这种原型的开发来证实设计方案的正确性。
(3)演化型原型:它将原型思想扩展到软件开发的全过程,就是及早向用户提交一个原型系统,在得到用户认可后,将原型系统不断扩充演化为最终的软件系统。
9、面向对象分析模型由三个独立的模型构成:
由用例和场景表示的功能模型;
用类和对象表示的分析对象模型;
由状态图和顺序图表示的动态模型。
10、在分析对象模型中的对象类分为哪三种类型。
有实体对象、边界对象和控制对象
选择题
1、软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( )。
供选择的答案:
A. 总结
B. 阶段性报告
C. 需求分析评审
D. 以上答案都不正确
〖解〗C.
2、在结构化分析方法中,用以表达系统内数据的运动情况的工具有( )。
供选择的答案:
A. 数据流图
B. 数据词典
C. 结构化英语
D. 判定表与判定树
〖解〗A.
3、软件需求分析的任务不应包括( A )。
进行需求分析可使用多种工具,但( B )是不适用的。
在需求分析中,分析员要从用户那里解决的最重要的问题是( C )。
需求规格说明书的内容不应当包括( D )。
该文档在软件开发中具有重要的作用,但其作用不应当包括( E )。
供选择的答案:
A. ①问题分析②信息域分析③结构化程序设计④确定逻辑模型
B. ①数据流图②判定表③PAD图④数据词典
C. ①要让软件做什么②要给该软件提供哪些信息
③要求软件工作效率如何④要让软件具有什么样的结构
D. ①对重要功能的描述②对算法的详细过程性描述
③软件确认准则④软件的性能
E. ①软件设计的依据②用户和开发人员对软件要“做什么”的共同理解
③软件验收的依据④软件可行性分析的依据
〖解〗A. ③, B. ③, C. ①, D. ②, E. ④
4、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A )系统。
它从用户界面的开发入手,首先形成( B ),用户( C ),并就( D )提出意见,它是一种( E )型的设计过程。
供选择的答案:
A. ①需求不确定性高的②需求确定的③管理信息④决策支持
B. ①用户界面使用手册②用户界面需求分析说明书
③系统界面原型④完善的用户界面
C. ①改进用户界面的设计②阅读文档资料
③模拟用户界面的运行④运行用户界面原型
D.①同意什么和不同意什么②使用和不使用哪一种编程语言
③程序的结构④执行速度是否满足要求
E.①自外向内②自顶向下③自内向外④自底向上
〖解〗A. ① B. ③ C. ④ D. ① E. ①。