软件工程第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. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明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)。
软件工程课后作业第四章
软件工程课后作业第四章第四章.简述软件设计阶段的基本任务。
答:(1)数据/类设计数据/类设计将分析类模型变换成类的实现和软件实现所需要的数据结构。
(2)体系结构设计体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。
(3)接口设计接口设计描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。
(4)部件级设计部件级设计将软件体系结构的结构性元素变换为对软件部件的过过程性描述。
.软件设计与软件质量的关系是怎么样的答:设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。
.简述模块、模块化及模块化设计的概念。
答:模块:具有名字、参数、功能等外部特征以及完场模块功能的程序代码和模块内部数据等特征。
模块化:把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件。
模块化设计:简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。
.举例说明每种类型的模块耦合度和每种类型的模块内聚度。
答:1、巧合内聚:讲几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称巧合内聚模块。
2、逻辑内聚:逻辑内聚是指完成一组逻辑相关任务的模块,调用该模块时,由传送给模块的控制性参数来确定该模块应执行哪一种功能。
3、时间内聚:时间内聚是指一个模块中的所有任务必须在同一时间段内执行。
4、过程内聚:过程内聚是指一个模块完成多个任务,这些任务必须指定的过程执行。
5、通信内聚:通信内聚是指一个模块内所有处理元素都集中在某个数据结构的一块区域中。
6、顺序内聚:顺序内聚是指一个模块完成多个功能,这些功能又必须顺序执行7、功能内聚:功能内聚是指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割。
软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)
《软件工程实用教程》第2、3、4、5章习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。
这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。
2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。
例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。
这为提高软件产品质量提供了有效保证。
瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。
•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。
•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。
3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。
将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。
快速原型方法具有以下一些特点。
•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。
一旦需求或设计确定下来,原型就将被抛弃。
因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。
快速原型往往采用软件生成工具来创建,例如,4GL语言。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程第四章习题
第四章习题一、单项选择题(每题1分)1.原型化方法是用户和设计者之间执行的一种交互构成,适用于______系统。
A.需求不确定性高的B.需求确定的C.管理信息D.实时2.原型化方法是一种_______型的设计过程。
A.自外向内B.自顶向下C.自内向外D.自底向上二、填空题(每题2分)1.在JSP方法中解决结构冲突的具体办法是__________________。
2、两个模块都是用同一张表,这种耦合称为____________。
3、一个模块把数值作为参数传送给另一个模块,这种耦合方式称为_______。
4、一个模块内部各程序段都在同一张表上操作,这个模块的内聚性称为________。
5、软件项目计划是可行性研究阶段的结果产品。
但由于可行性研究是在高层次进行系统分析,未能考虑软件系统开发的细节情节,因此_________一般在需求分析阶段完成后才定稿的。
6、_______指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。
7、同一个类中的共享是指同一个类中的对象有着相同的_______和相同的_______。
8、通过____,可以确定组成软件的过程实体。
通过______,可以定义和实施对模块的过程细节和局部数据结构的存取限制。
9、______图描述分层图中一个模块的输入、输出和处理内容。
10、基于IDEF0图的设计也是结构化设计技术之一,它以系统的功能模型和信息结构为基础设计______。
11、________图是描述物理模型的传统工具,用图形符号表示系统中各个元素,表达了系统中各种元素之间的信息流动情况。
12、_____是用来代替被测试模块所调用的模块,它的作用是返回被测模块所需的信息。
13、静态冗余常用的有:______和________。
14、软件结构是以______为基础而组成的一种控制层次结构。
15、软件设计阶段产生的最重要的文档之一是________。
软件工程-习题及答案---第四章
软件工程-习题及答案---第四章一、判断题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)转换为软件表示的过程。
软件工程实用教程(2版)-4章-习题与参考答案-2012-5-30
1.答案要点:
偶然内聚:计算学生总成绩与统计学生出勤人数放在一个模块中;
逻辑内聚:打印会计报表与打印学生成绩表在一个模块中;
时间内聚:系统初始化模块;
过程内聚:根据考试成绩分别进行奖学金处理、留级、退学处理等
通信内聚:输入入库单、据此登记库存帐并开具发票等
6.简述变换分析、事务分析的基本步骤。
答案要点:
变换流分析设计步骤:
1)确定变换流、输入流和输出流部分
2)设计模块结构的顶层和第一层
3)设计中下各层
事务分析的步骤:
根据事务功能设计一个顶层总控模块;
将事务中心的输入数据流对应为一个第一层的接收模块及该模块的下层模块;
将事务中心对应为一个第一层的调度模块;
概要设计过程主要包括:1)制定规范2)系统架构设计3)软件结构设计4)公共数据结构设计5)安全性设计6)故障处理设计7)编写文档8)概要设计评审
2.如何理解模块的独立性?用什么指标来衡量模块的独立性?
答案要点:
模块的独立性是指不同模块之间的相互联系应尽可能的少,应尽可能减少公共的变量和数据结构;一个模块应尽可能在逻辑上独立,有完整单一的功能。具有良好独立性的模块,可使模块功能完整、数据接口简单、程序易于理解和维护。独立性限制了错误的作用范围,使错误易于排除,因而可使软件开发速度快,质量高。
2)界面的风格的“一致性”与“个性化”
3)界面信息反馈
4)界面的合适性
5)容错性
6)审美性和可用性
4)模块的扇入、扇出要适当等。
4.什么是软件体系结构?什么是软件体系结构风格?
答案要点:
软件体系结构表示了一个软件系统的逻辑结构,描述包含系统基础构成单元、它们之间的作用关系、在构成系统时它们的集成方法以及对集成约束的描述等方面。在设计软件体系结构时,必须考虑系统的动态行为,考虑与现有系统的兼容性、安全性、可靠性、扩展性和伸缩性。
软件工程各章作业习题的名词解释和问答题参考答案
软件工程各章作业习题的名词解释和问答题参考答案第一章: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.什么是软件概要设计, 该阶段的基本任务是什么以需求分析文档为依据,解决实现软件体系结构。
软件工程习题与答案
第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. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
精品文档-软件工程经济学(赵玮)-第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.一个软件的深度是指软件结构中控制的层数,而软件的宽度是指软件结构中同层模块数的。
【工程】软件工程课后答案大全详细
【关键字】工程软件工程习题解答第一章概述3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件工程?它的目标和内容是什么?软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:软件管理学、软件经济学、软件心理学。
6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、尝试、维护等.7.什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
张海藩《软件工程导论》(第6版)(课后习题 第4章 形式化说明技术)【圣才出品】
第4章形式化说明技术1.举例对比形式化方法和欠形式化方法的优缺点。
答:(1)欠形式化方法的缺点①矛盾矛盾是指一组相互冲突的陈述。
②二义性二义性是指读者可以用不同方式理解的陈述。
③含糊性例如,人们可能经常在文档中看到类似下面这样的需求:“系统界面应该是对用户友好的。
”实际上,这样笼统的陈述并没有给出任何有用的信息。
④不完整性。
如果在规格说明书中对一个命令的功能没有更多的描述,那么,这个命令的细节是严重不完整的。
⑤抽象层次混乱。
抽象层次混乱是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。
这样的规格说明书使得读者很难了解系统的整体功能结构。
(2)形式化方法的优点①能够简洁准确地描述物理现象、对象或动作的结果。
在理想情况下,分析员可以写出系统的数学规格说明,它准确到几乎没有二义性,而且可以用数学方法来验证,以发现存在的矛盾和不完整性,在这样的规格说明中完全没有含糊性。
②可以在不同的软件工程活动之间平滑地过渡。
③提供了高层确认的手段。
可以使用数学方法证明,设计符合规格说明,程序代码正确地实现了设计结果。
2.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则?答:(1)人们在理解用自然语言描述的规格说明时,容易产生二义性。
为了克服非形式化方法的缺点,人们把数学引入软件工程。
创造了基于数学的形式化说明技术。
(2)应用形式化方法的准则:①应该选用适当的表示方法。
②应该形式化,但不要过分形式化。
③应该估算成本。
④应该有形式化方法顾问随时提供咨询。
⑤不应该放弃传统的开发方法。
⑥应该建立详尽的文档。
⑦不应该放弃质量标准。
⑧不应该盲目依赖形式化方法。
⑨应该测试、测试再测试。
⑩应该重用。
3.一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。
例如,下列的字符串都是浮点二进制数:110101E-101-100111E11101+1E0更形式化地,浮点二进制数定义如下:其中:符号∷=表示定义为;符号[...]表示可选项;符号a|b表示“a或b。
《软件工程》(第五版)习题参考答案
《软件工程》(第五版)习题参考答案
第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、数据结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明: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适于数据库的记录较多的情况,利用数据库的排序功能可很快地将教师的档案数据按工资大小排好序,调整程序只对前若干个记录进行操作。这个算法对于修改数据库回更便捷些。
交易
金额
(a)
a<1000
y
y
y
y
y
y
n
n
n
n
n
n
n
n
n
n
n
n
1000<a≤10000
n
n
n
n
n
n
y
y
y
y
y
y
n
n
n
n
n
n
a>10000
n
n
n
n
n
n
n
n
n
n
n
n
y
y
y
y
y
y
每股
售价
(b)
b<14
y
y
n
n
n
n
y
y
n
n
n
n
y
y
n
n
n
n
14≤b≤25
n
n
y
y
n
n
n
n
y
y
n
n
n
n
y
y
n
n
b>25
n
n
n
n
y
y
解:IF-THEN-ELSE操作框图如下:等价的DO-WHILE操作框图如下:
习题11:程序流程图、N-S盒图的绘制
画出下列伪码程序的程序流程图和盒图:
START
IF p THEN
WHILE q DO
F
END DO
ELSE
BLOCK
g
n
END BLOCK
ENDIF
STOP
解:程序流程图:盒图:
习题12
x
(a×5%+34)×(1+2%)
x
(a×5%+34)×(1+6%)
x
(a×5%+34)×(1+1.5%)
x
(a×5%+34)×(1+4%)
x
(a×4%+84)×(1+5%)
x
(a×4%+84)×(1+9%)
x
(a×4%+84)×(1+2%)
x
(a×4%+84)×(1+6%)
x
(a×4%+84)×(1+1.5%)
4 总的说来,算法b比算法a的效率要高。
判定表:(每个教师的年工资调整方案)
1
2
3
年工资W<$26000
T
T
F
计算值≥$26000
T
F
工资不变
×
W+100M+50N
×
$26000
×
表说明:
W---年工资
M---赡养人数
N---工龄,按工龄数截断取整,若工龄不满一年,则N=0
习题10
假设只有顺序和DO-WHILE两种控制结构,怎样利用它们IF-THEN-ELSE操作?
研究下列伪码程序:
LOOP: Set I to (START+FINISH)/2
If TABLE(I) = ITEM goto FOUND
If TABLE(I) < ITEM Set START to (I+1)
If TABLE(I) > ITEM Set FINISH to (I-1)
If (FINISH-START) > 1 goto LOOP
第4章《结构化设计》习题解答
习题8
美国某大学共有200名教师,校方与教师工会刚签订了一项协议。按照协议,所有年工资超过$26,000(含$26,000)的教师工资将保持不变,年工资少于$26,000的教师将增加工资,所增加的工资按下述方法计算: 给每个由此教师赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不得多于$26,000。
a.搜索工资档案数据,找出年工资少于$26,000的人,计算新工资,校核是否超过$26,000,储存新工资,印出新旧工资对照表;
b.把工资档案数据按工资从最低到最高次序排序,当工资数额超过$26,000时即停止排序,计算新工资,校核是否超过限额,储存新工资,印出结果。
⑷你所画出的数据流图适应于哪种算法?
如果交易总金额少于1000元,则基本手续费为交易金额的8.4%;
如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;
如果交易总金额超过10000元,则基本手续费为交易金额的4%加上84元。
当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。
n
n
n
n
y
y
n
n
n
n
y
y
交易股数是否为100的倍数?
y
nyny源自nyny
n
y
n
y
n
y
n
y
n
a×8.4%×(1+5%)
x
a×8.4%×(1+9%)
x
a×8.4%×(1+2%)
x
a×8.4%×(1+6%)
x
a×8.4%×(1+1.5%)
x
a×8.4%×(1+4%)
x
(a×5%+34)×(1+5%)
x
(a×5%+34)×(1+9%)
x
(a×4%+84)×(1+4%)
x
else
set FLAG to 0
endif
Exit
其流程图如下:
⑷此程序的功能是:用“逐步搜索”法在一个一维表(TABLE)中搜索指定的值(ITEM)。
前提条件是:TABLE中的值是按从小到大存放;程序中,
变量START的初始值应该是TABLE表中表头的值,最小;
变量FINISH的初始值应该是TABLE表中表尾的值,最大。
⑷此程序的功能是什么?它完成预定功能有什么隐含的前提条件吗?
解:⑴此程序的流程图如下:
⑵程序不是结构化的,明显标志是程序中有多个“goto”语句。
⑶修改该程序为一个结构化程序:
do while (FINISH-START) > 1
set I to (START+FINISH)/2
if TABLE(I) < ITEM then
原程序是从两头逐步向中间移动,用两头的中间处的值与ITEM进行比较,若中间处的值比ITEM大,则表的尾部向表头移一步;若中间处的值比ITEM小,则表的头部向表尾移一步。直到找到了与ITEM相同的值为止。若找到了,则置FLAG=1;未找到,则置FLAG=0。
习题13:某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。
If TABLE(START) = ITEM goto FOUND
If TABLE(FINISH) = ITEM goto FOUND
Set FLAG to 0
Goto DONE
FOUND:Set FLAG to 1
DONE: Exit
要求:
⑴画出程序流程图;
⑵程序是结构化的吗?说明理由;
⑶若程序是非结构化的,请设计一个等价的结构化程序并且画出程序流程图;
当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。
当每股售价超过25元时,如果交易的股数不是100的倍数,则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1.5%。
要求:⑴用判定表表示手续费的计算方法;⑵用判定树表示手续费的计算方法。