软件工程习题解_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)数据/类设计数据/类设计将分析类模型变换成类的实现和软件实现所需要的数据结构。

(2)体系结构设计体系结构设计定义了软件的整体结构,由软件部件、外部可见的属性和他们之间的关系组成。

(3)接口设计接口设计描述了软件内部、软件和协作系统之间以及软件同人之间的通信方式。

(4)部件级设计部件级设计将软件体系结构的结构性元素变换为对软件部件的过过程性描述。

.软件设计与软件质量的关系是怎么样的答:设计是在软件开发中形成质量的阶段,设计提供了可以用于质量评估的软件表示,是将用户需求准确地转化为完整的软件产品或系统的主要途径。

.简述模块、模块化及模块化设计的概念。

答:模块:具有名字、参数、功能等外部特征以及完场模块功能的程序代码和模块内部数据等特征。

模块化:把软件按照规定原则,划分为一个个较小的,相互独立的但又相互关联的部件。

模块化设计:简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。

.举例说明每种类型的模块耦合度和每种类型的模块内聚度。

答:1、巧合内聚:讲几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称巧合内聚模块。

2、逻辑内聚:逻辑内聚是指完成一组逻辑相关任务的模块,调用该模块时,由传送给模块的控制性参数来确定该模块应执行哪一种功能。

3、时间内聚:时间内聚是指一个模块中的所有任务必须在同一时间段内执行。

4、过程内聚:过程内聚是指一个模块完成多个任务,这些任务必须指定的过程执行。

5、通信内聚:通信内聚是指一个模块内所有处理元素都集中在某个数据结构的一块区域中。

6、顺序内聚:顺序内聚是指一个模块完成多个功能,这些功能又必须顺序执行7、功能内聚:功能内聚是指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割。

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)

《软件工程实用教程》第2、3、4、5章习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。

国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。

这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。

2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。

例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。

这为提高软件产品质量提供了有效保证。

瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。

•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。

•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。

3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。

将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。

快速原型方法具有以下一些特点。

•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。

一旦需求或设计确定下来,原型就将被抛弃。

因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。

快速原型往往采用软件生成工具来创建,例如,4GL语言。

软件项目管理第四章课后习题答案

软件项目管理第四章课后习题答案

四、项目进度管理1.简述时间管理包括哪些内容。

答:项目时间管理(也称进度管理)管理包括进度管理规划、活动定义、活动排序、活动资源估算、活动历时估算、制定进度计划和进度控制等管理过程。

在某些小的软件项目中,定义活动、排列活动顺序、估算活动资源、估算活动历时及制定进度计划等过程之间的联系非常密切,以至于可视为一个过程,由一个人在较短时间内完成。

2.如何理解项目进度管理的重要性,以及其他管理过程对进度管理的影响。

答:按时、保质完成项目是对项目的基本要求,但软件项目工期拖延的情况却时常发生,因而合理地安排项目时间是项目管理中的一项关键内容。

项目进度管理就是采用科学的方法确定项目进度,编制进度计划和资源供应计划,进行进度控制,在与质量、费用目标协调的基础上,实现项目的进度目标。

(1)范围、质量因素对进度的影响软件开发项目比其他任何建设项目都会有更经常的变更,大概是因为软件程序是一种“看不见”又“很容易修改”的东西吧,用户是想改就改,造成需求的蔓延,项目经理有时还不知如何拒绝,加上要说“我能”的心理因素,一般都会答应修改。

这样集少成多,逐渐影响了项目进度。

如果某项工作在进度上表面上达到目标了,但经检验其质量没有达到要求,则必然要通过返工等手段,增加人力资源的投入,增加时间的投入,实际上是拖延了进度。

不管是从横向或纵向来看,部分任务的质量会影响总体项目的进度,前面的一些任务质量中会影响到后面的一些任务质量。

(2)资源、预算变更对进度的影响资源,最主要的还是人力资源,有时某方面的人员不够到位,或者在多个项目的情况下某方面的人员中途被抽到其他项目、或身兼多个项目、或在别的项目不能自拔无法投入本项目。

还有一个很重要的资源,就是信息资源,如某些国家标准、行业标准,用户可能提供不了,而是需要去收集或购买,如果不能按时得到,就会影响需求分析、设计或编码的工作。

其他资源,如开发设备或软件没有到货,也会对进度造成影响。

预算其实就是一种资源,它的变更会影响某些资源的变更,从而对进度造成影响。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案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)用户对开发出的软件很难满意。

(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)转换为软件表示的过程。

软件工程实用教程(2版)-4章-习题与参考答案-2012-5-30

软件工程实用教程(2版)-4章-习题与参考答案-2012-5-30
5.为每一种模块内聚举一个具体例子;为每一种模块耦合举一个具体例子。
1.答案要点:
偶然内聚:计算学生总成绩与统计学生出勤人数放在一个模块中;
逻辑内聚:打印会计报表与打印学生成绩表在一个模块中;
时间内聚:系统初始化模块;
过程内聚:根据考试成绩分别进行奖学金处理、留级、退学处理等
通信内聚:输入入库单、据此登记库存帐并开具发票等
6.简述变换分析、事务分析的基本步骤。
答案要点:
变换流分析设计步骤:
1)确定变换流、输入流和输出流部分
2)设计模块结构的顶层和第一层
3)设计中下各层
事务分析的步骤:
根据事务功能设计一个顶层总控模块;
将事务中心的输入数据流对应为一个第一层的接收模块及该模块的下层模块;
将事务中心对应为一个第一层的调度模块;
概要设计过程主要包括:1)制定规范2)系统架构设计3)软件结构设计4)公共数据结构设计5)安全性设计6)故障处理设计7)编写文档8)概要设计评审
2.如何理解模块的独立性?用什么指标来衡量模块的独立性?
答案要点:
模块的独立性是指不同模块之间的相互联系应尽可能的少,应尽可能减少公共的变量和数据结构;一个模块应尽可能在逻辑上独立,有完整单一的功能。具有良好独立性的模块,可使模块功能完整、数据接口简单、程序易于理解和维护。独立性限制了错误的作用范围,使错误易于排除,因而可使软件开发速度快,质量高。
2)界面的风格的“一致性”与“个性化”
3)界面信息反馈
4)界面的合适性
5)容错性
6)审美性和可用性
4)模块的扇入、扇出要适当等。
4.什么是软件体系结构?什么是软件体系结构风格?
答案要点:
软件体系结构表示了一个软件系统的逻辑结构,描述包含系统基础构成单元、它们之间的作用关系、在构成系统时它们的集成方法以及对集成约束的描述等方面。在设计软件体系结构时,必须考虑系统的动态行为,考虑与现有系统的兼容性、安全性、可靠性、扩展性和伸缩性。

软件工程第4章习题解答

软件工程第4章习题解答
解:(1)判定表:
说明: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适于数据库的记录较多的情况,利用数据库的排序功能可很快地将教师的档案数据按工资大小排好序,调整程序只对前若干个记录进行操作。这个算法对于修改数据库回更便捷些。
交易

软件工程习题与答案

软件工程习题与答案

第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,不可验证性:易于检查、测试、评审,确保系统的正确性。

第二章可行性研究选择题1,研究开发所需要的成本和资源属于可行性研究中(经济可行性)研究的一方面。

2,可行性分析研究的目的是(项目值得开发与否)。

3,软件分析的第一步要做的工作在于(分析系统开发的可行性)。

4,可行性研究目的主要在于(用最小的代价确定问题定义阶段所确定的目标和规模是否可实现,可解决)。

5,软件可行性分析是着重确定系统的目标和规模。

对功能,性能及约束条件的分析应属于下列(技术可行性分析)。

简答题简述可行性研究的步骤?1,复查系统规模和目标2,研究目前正在使用的系统3,导出新系统的高层逻辑模型4,重新定义问题5,导出和评价供选择方案6,推荐一个方案并说明理由7,推荐行动方针8,书写计划任务书9,提交审查应用题设计一个软件的开发成本为5万元,寿命为3年。

未来3年的每年收益预计为22000元,24000元,26620元,银行年利率为10%。

试对此项目进行成本效益分析,以决定其经济可行性。

答:设银行的年利率是10%,则下列出每年的收益第一年:22000/1.1=20000第二年:24000/1.21=19834.71第三年:26620/1.331=20000因此:现有值收益为20000+19834.71+20000=59834.71投资回收期2+10165/20000=2.51纯收入59835-50000=9834.71第三章需求分析需求分析的原则有哪些?1.需求分析方法应该容易被用户理解。

软件工程各章作业习题的名词解释和问答题参考答案

软件工程各章作业习题的名词解释和问答题参考答案

软件工程各章作业习题的名词解释和问答题参考答案第一章: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.什么是软件概要设计, 该阶段的基本任务是什么?以需求分析文档为依据,解决实现软件体系结构。

【工程】软件工程课后答案大全详细

【工程】软件工程课后答案大全详细

【关键字】工程软件工程习题解答第一章概述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章 形式化说明技术)【圣才出品】

张海藩《软件工程导论》(第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)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前提是:TABLE中的值是按从小到大存放着
程序中,变量START的初始值应该是TABLE表中表头的值,最小;
变量FINISH的初始值应该是TABLE表中表尾的值,最大
原程序是从两头逐步向中间移动,用两头的中间处的值与ITEM进行比较,若中间处的值比ITEM大,则表的尾部向表头移一步;若中间处的值比ITEM小,则表的头部向表尾移一步。直到找到了与ITEM相同的值为止。若找到了,则置FLAG=1;未找到,则置FLAG=0。
四章习题11
画出下列伪码程序的程序流程图和盒图:
START
IF p THEN
WHILE q DO
F
END DO
ELSE
BLOCK
g
n
END BLOCK
ENDIF
STOP
解:程序流程图:盒图:
四章习题12
研究下列伪码程序:
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
If TABLE(START) = ITEM goto FOUND
If TABLE(FINISH) = ITEM goto FOUND
⑶进一步简化上图给出的结构化设计。
解:⑴原程序框图中“d”条件的一个出口指向操作框“D”,同时“e”条件的一个出口也指向操作框“D”,这就势必会语言程序中出现“GOTO”语句。所以原程序框图是非结构化的。
⑶给每人发三张牌,牌面向上(即亮牌),赢者立即可以确定;
⑷最高等级的一手牌称为同花,即三张牌均为同一种花色,最大的同花牌是同花色的Q、K、A;
⑸第二等级的牌称为顺子,即点数连续的三张牌,最大的顺子是花色不同的Q、K、A;
⑹第三等级的牌是同点,即点数相同的三帐派,最大的同点是A、A、A;
⑺第四等级的牌是对子,即三张牌中有两张点数相同,最大的对子是A、A、K;
解:⑵程序不是结构化的,明显标志是程序中有多个“goto”语句。
解:⑶修改该程序为一个结构化程序:
do while (FINISH-START) > 1
set I to (START+FINISH)/2
if TABLE(I) < ITEM then
set START to (I+1)
else if TABLE(I) > ITEMthen
set FINISH to (I-1)
endif
enddo
if TABLE(I) = ITEM or TABLE(START) = ITEM or TABLE(FINISH) = ITEM then
set FLAG to 1
else
set FLAG to 0
endif
Exit
其框图如下
解:⑷此程序的功能是:用“逐步搜索”法在一个一维表(TABLE)中搜索指定的值(ITEM)
a.搜索工资档案数据,找出年工资少于$26,000的人,计算新工资,校核是否超过$26,000,储存新工资,印出新旧工资对照表;
b.把工资档案数据按工资从做低到最高次序排序,当工资数额超过$26,000时即停止排序,计算新工资,校核是否超过限额,储存性工资,印出结果。
⑷你所画出的数据流图适应于哪种算法?
⑻第五等级的牌是杂牌,即除去上列四等之外的任何一手牌,最大的杂牌是不同花色的A、K、J;
⑼若两人的牌型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局。
解:系统框图
四章习题10
假设只有顺序和DO-WHILE两种控制结构,怎样利用它们IF-THEN-ELSE操作?
解:IF-THEN-ELSE操作框图如下:等价的DO-WHILE操作框图如下:
4 总的说来,算法b比算法a的效率要高。
四章习题 9
扑克游戏,设计模拟程序,其功能是:⑴发两手牌(随机数),⑵确定赢者和赢牌的类型,⑶模拟N次游戏,计算每种类型牌赢或平局的概率。画出高层控制流图。
游戏规则如下:
⑴有两人玩,分别称为A和B;
⑵一付扑克有52张牌,4种花色(方块、梅花、红桃、黑桃),每2种花色的点数按升序排列有2,3,4,…,10,J,Q,K,A等13种。
解:
⑴ 系统的数据流图
⑵ 需求说明:
⑶ 程序框图:
算法说明:1 此算法是先找出工资少于$26,000的人, 再进行工资调整,属算法a
2 算法a适于数据库的记录不太多的情况,在数据库中查找较费时。
但是,调整系统的主要部分少一个判断,结构清晰一些。
3 算法b适于数据库的记录较多的情况,利用数据库的排序功能可很快地将教师的档案数据按工资大小排好序,调整程序只对前若干个记录进行操作。这个算法对于修改数据库回更便捷些。
教师的工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个计算程序计算并印出每名教师的原有工资和调整后的新工资。要求:
⑴画出此系统的数据流图;
⑵写出需求说明;
⑶设计上述的工资调整程序(要求用判断树描述),设计时请分别采用下述两种算法,并比较这两种算法的优缺点;
Set FLAG to 0
Goto DONE
FOUND:Set FLAG to 1
DONE: Exit
要求:
⑴画出程序流程图;
⑵程序是结构化的吗?说明理由;
⑶若程序是非结构化的,请设计一个等价的结构化程序并且画出程序流程图;
⑷此程序的功能是什么?它完成预定功能有什么隐含的前提条件吗?
解:⑴此程序的流程图如下:
《软件工程》张海藩
四章习题8
美国某大学共有200名教师,校方与教师工会刚签定了一项协议。按照协议,所有年工资超过$26,000(含$26,000)的教师工资将保持不变,年工资少于$26,000的教师将增加工资,所增加的工资按下述方法计算: 给每个由此教师赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不得多于$26,000。
四章习题13
用Ashcroft-Manna技术可以将非结构化的程序转换为结构化程序,下图是一个转换的例子。
⑴为什么说原程序不是结构化的?你能否从这个例子总结出Ashcroft-Manna技术的一些基本方法?
⑵请用伪代码程序实现上图给出的结构化设计,不允许使用GOTO语句,可以使用DO CASE语句。
相关文档
最新文档