软件工程课后作业
软件工程课后作业总

软件工程是采用工程化的概念、原理、技术和方法指导计算机(C )的工程学科。
A、软件开发B、管理技术C、软件开发和维护D、程序设计【单选题】在软件生命周期法中,用户的参与主要在(A)。
A、软件定义期B、软件开发期C、软件维护期D、整个软件生命周期过程中生存周期的瀑布模型一般包括问题定义、可行性研究、( B )、设计、编码、测试、维护等几个阶段。
A、问题定义B、需求分析C、总体设计D、数据库设计软件工程把经过时间考验而证明正确的管理技术和当前能够得到的最好的__D__结合起来。
A、软件开发B、管理方法C、开发环境D、技术方法【单选题】生存周期的瀑布模型一般包括:问题定义、可行性研究、系统设计、编码、测试、__D 等几个阶段。
A、需求分析B、可行性分析C、程序设计D、维护【单选题】快速原型模型的主要特点之一是( D )。
A、开发完毕才见到产品B、及早提供全部完整的软件产品C、开发完毕后才见到工作软件D、及早提供可工作的软件开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )。
A、软件工程B、软件周期C、软件危机D、软件产生【单选题】瀑布模型把软件生命周期划分为软件定义、软件开发与( C )3个阶段,而每一个阶段又可细分为若干个更小的阶段。
A、详细设计B、可行性分析C、运行维护D、测试与排错划分软件生存周期的阶段时所应遵循的基本原则是( B )。
A、各阶段的任务尽可能相关性B、各阶段的任务尽可能相对独立C、各阶段的任务在时间上连续D、各阶段的任务在时间上相对独立【单选题】系统定义明确之后,应对系统的可行性进行研究。
可行性研究应包括(B )。
A、软件环境可行性、技术可行性、经济可行性B、经济可行性、技术可行性、操作可行性C、经济可行性、社会可行性、系统可行性D、经济可行性、实用性、社会可行性软件可行性分析是着重确定系统的目标和规模。
对功能、性能以及约束条件的分析应属于下列之中的_ B _。
软件工程作业参考答案(二)2024

软件工程作业参考答案(二)引言概述:在软件工程学科中,作业是提升学生理论和实践能力的重要环节。
本文将介绍软件工程作业的参考答案,以帮助学生更好地理解和完成相关作业。
本文将从五个大点进行阐述,每个大点下分别包含了5-9个小点,涉及到作业的各个方面。
正文:一、需求分析与规格说明1. 确定用户需求:明确用户对软件的期望和功能需求。
2. 收集需求:通过面对面交流、问卷调查等方式,搜集用户需求信息。
3. 制定规格说明书:将收集到的需求整理成文档形式,包括功能需求和非功能需求。
4. 分析需求:对收集到的需求进行分析,找出其中的矛盾或冲突。
5. 验证需求:与用户进行确认,确保需求的准确性和完整性。
二、设计与建模1. 架构设计:确定软件的整体结构,包括模块划分、组成关系等。
2. 详细设计:对每个模块进行详细设计,包括算法、接口定义等。
3. 数据库设计:设计数据库表结构,包括表字段、主键、外键等。
4. 系统建模:利用UML等建模工具,进行系统的静态和动态建模。
5. 接口设计:定义软件与外部系统或组件之间的接口规范。
三、编码与测试1. 编码规范:制定统一的编码规范,确保代码的一致性和可读性。
2. 模块编码:根据详细设计进行模块的编码工作。
3. 单元测试:对每个模块进行单元测试,确保功能的正确性。
4. 集成测试:将各个模块组装后进行测试,测试模块之间的相互调用和集成效果。
5. 系统测试:对整个软件系统进行全面测试,验证软件的功能和性能。
四、部署与维护1. 部署计划:制定软件部署的计划和流程,确保软件能够顺利部署到目标环境。
2. 环境配置:配置目标环境,包括操作系统、数据库、网络等。
3. 安装部署:将编译好的软件包安装到目标环境中,并完成必要的配置。
4. 运维监控:建立稳定的运维监控系统,定期检查并维护软件的稳定性和安全性。
5. bug修复与更新:根据用户反馈,及时修复和更新软件中的bug和功能问题。
五、文档撰写与总结1. 编写文档:根据软件的不同阶段,编写相应的文档,包括需求文档、设计文档、测试文档等。
软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程课后作业参考答案

第六章 作业题参考答案3.画出下列伪码程序的程序流程图和盒图: STARTIF p THENWHILE q DO f END DO ELSEBLOCK g nEND BLOCK END IF STOP 答:(1)流程图如图6-1所示:图6-1从伪码变成的程序流程图 (2)该程序的盒图如图6-2所示:图6-2 从伪码变成的程序盒图4.下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。
(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag 的程序;若用了,再设计一个不用flag的程序。
答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图6-3描绘了等价的结构化程序的盒图。
(a)解法1(b)解法2图6-3 与该图等价的结构化程序(用flag)(3)不使用flag把该程序改造为等价的结构化程序的方法如图6-4所示。
图6-4 与该图等价的结构化程序(不用flag)8.画出下列伪码程序的流图,计算它的环形复杂度。
你觉得这个程序的逻辑有什么问题吗?C EXAMPLELOOP:DO WHILE X>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X,YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRINT GELSE PRINT KEND IFSTOP答:(1)该伪码的流程图如图6-8所示:图6-8 程序流程图根据该程序流程图,可得该程序流图如图6-9所示:图6-9 程序流图环形复杂度V(G)=流图中的区域数=流图中判定结点数目+1=6+1=7 (判定结点为:1、3、6、8、10、11)(2)该算法问题在于控制最外层循环的变量Z不仅没有经过初始化,并且在该循环内部没有任何有可能该变Z的语句。
软件工程课后习题(含答案)

第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
(完整版)软件工程课后答案

《软件工程》作业及答案1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机典型表现:对软件开发成本和进度的估计常常很不准确。
用户对“已完成的”软件系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件常常是不可维护的。
软件通常没有适当的文档资料。
软件成本在计算机系统总成本中所占的比例逐年上升。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
管理和控制软件开发过程相当困难。
软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。
1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。
1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。
1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。
2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。
软件工程(第5版课后答案)

f(作者姓名)
系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。
设计测试数据以全面测试系统正常操作。 设计测试数据以测试系统的非正常操作。
P175 5
P175 5 参考答案
划分等价类(略) 全面测试系统正常操作 B BS BSD F FD
B:输入关键字,看是否输出约20个加了行号的字,是否与关键字完全相同的字约在屏幕中央。 输入:“计算机” 预期输出:约20个加行号的字 BS:输入关键字,选取屏幕上行号,是否生成包含索引号的文件。 输入:“计算机”;12 预期输出:约20个加行号的字;文件 BSD:输入关键字,选取屏幕上行号,检索索引号有关信息,是否显示文件中索引信息。 输入:“计算机”;12;3 预期输出:约20个加行号的字;文 件;文件中索引信息。 F:输入作者姓名,是否在屏幕上显示该作者的著作的索引号,是否将这些索引存入文件。 输入:“金庸” 预期输出:该作者著作的索引号 FD:输入作者姓名,检索索引号有关信息,是否现实文件中索引信息。 输入:“金庸”;3 预期输出:该作者著作索引号;文件中 索引信息
单击此处可添加副标题
P23 7参考答案
增量模型 缺点: 至始至终开发者和客户纠缠在一起,直到完全版本出来。 优点: 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 具有一定的市场。 适合于软件需求不明确、设计方案有一定风险的软件项目。
习题1第6题
什么是软件过程?它与软件工程方法学有何关系?
P23 6
P23 6参考答案
软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1·软件工程概述1·1 软件工程的定义和特点软件工程是一门研究和应用如何以系统化、规范化、可量化的方法开发和维护软件的学科。
其特点包括软件开发的目标性、可度量性、可管理性和可预测性。
1·2 软件生命周期模型常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型和敏捷模型等。
每个生命周期模型都有其适用的场景和优缺点。
2·软件需求工程2·1 软件需求获取软件需求获取方法包括面谈、问卷调查、用户场景模拟等。
需求获取的目的是明确软件系统的功能、性能和约束条件。
2·2 软件需求分析与规格说明软件需求分析的目标是识别和定义系统的需求,包括功能需求、非功能需求和约束条件。
规格说明是将需求转化为精确、清晰和易于验证的文档。
3·软件设计3·1 结构化设计结构化设计将系统分解为模块,确定模块之间的接口和关系,实现模块化、高内聚、低耦合的设计原则。
3·2 面向对象设计面向对象设计将系统抽象为对象,定义对象的属性和方法,并确定对象之间的关系。
常用的面向对象设计方法有UML(统一建模语言)。
4·软件测试4·1 测试基本概念软件测试是通过运行软件来发现错误和缺陷的过程。
测试的基本概念包括测试用例、测试套件、测试目标和测试覆盖度等。
4·2 测试方法和技术常见的软件测试方法和技术有黑盒测试、白盒测试、灰盒测试、单元测试、集成测试和系统测试等。
每种方法和技术都有其适用的场景和优缺点。
5·软件维护与配置管理5·1 软件维护软件维护是指对已有的软件进行修改、优化、修复错误和适应环境变化的过程。
维护活动包括需求分析、设计、实现、测试和文档更新等。
5·2 软件配置管理软件配置管理是指在软件开发和维护过程中,对软件配置项进行识别、控制、追踪和审查,确保软件可以按需发布、升级和回溯。
软件工程课后作业汇总

答:牙科诊所管理系统的用例模型 如图 1 所示。
职员
牙医
牙科诊所管理系统的对象模型如图 2 所示。
承;6)聚集
4.请用形式化语言定义下述文字描述中的“电话号码”。
某高校可用的电话号码有以下几类:校内电话号码由 4 位数字组成,第 1 位数字不为 0; 校外电话号码又分为本市电话号码和外地电话号码两类,拨校外电话需先拨 0,如果是本市 电话再接着拨 8 位电话号码(第 1 位不为 0),如果是外地电话则先拨 3 位区码,再拨 8 位 电话号码(第 1 位不为 0)。
借书过程中各对象之间传递的消息有:1)递过借书证;2)递过书;3)插入借
书证;4)借书证有效;5)读条形码;6)条形码有效:7)确认事务;8)检查
借书证;9)借书证有效;10)送回条形码;11)检查条形码;12)条形码有效;
13)确认事务。请分析实际借书过程,然后在图 3 中补画以上消息。
答:补画消息后的完整顺序图如图 3 所示
要求:(1)画出该程序的流图,并计算其 Cyclomatic 复杂性度量; (2)用基本路径测试法给出测试路径; (3)为各测试路径设计测试用例。
答:
(1)程序流图如下所示;Cyclomatic 复杂性度量为 5
1
2
5
3
4
6
7
8
9
10
11
12
(2)测试路径有 5 条,分别为;
path1:1→2→3→4→6→7→9→11→12 path2:1→2→5→6→7→9→11→12 path3:1→2→3→5→6→7→9→11→12 path4:1→2→3→4→6→7→8→9→11→12 path5:1→2→3→4→6→7→8→10→11→12
软件工程课后作业

第一章1.1答: 软件危机是指在计算机软件开发、使用与维护过程中碰到的一系列严重问题和难题。
它涉及两方面: 如何开发软件, 已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计经常很不准确。
经常出现实际成本比估算成本高出一个数量级、实际进度比计划进度迟延几个月甚至几年的现象。
而为了赶进度和节约成本所采用的一些权宜之计又往往损害了软件产品的质量。
这些都减少了开发商的信誉, 引起用户不满。
(2) 用户对已完毕的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件经常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格, 必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的因素:(1) 来自软件自身的特点: 是逻辑部件, 缺少可见性;规模庞大、复杂, 修改、维护困难。
(2) 软件开发与维护的方法不妥: 忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求, 人们显得力不从心。
1.2答: 在软件开发的不同阶段进行修改付出的代价是很不相同的, 在初期引入变动, 涉及的面较少, 因而代价也比较低;在开发的中期, 软件配置的许多成分已经完毕, 引入一个变动要对所有已完毕的配置成分都做相应的修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出的代价剧增;在软件“已经完毕”是在引入变动, 当然付出的代价更高。
一个故障是代码错误导致的, 有时这种错误是不可避免的, 但要修改的成本是很小的, 由于这不是整体构架的错误。
1.3答: 1993年IEEE的定义: 软件工程是: ①把系统的、规范的、可度量的途径应用于软件开发、运营和维护过程, 也就是把工程应用于软件;②研究①中提到的途径。
软件工程作业含答案解析

软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2 简述软件的分类,并举例说明。
(1)1.4 什么是软件工程? (1)1.5 简述软件工程的基本原则。
(1)1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。
(1)1.9 简述各类软件过程模型的特点。
(2)1.10 敏捷软件开发的特点是什么? (2)1.12 简述敏捷软件开发的原则。
(2)第2、3章 (3)2.1简述系统工程的任务。
(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可行性分析的任务。
(3)3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。
(3)3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么? (3)3.3一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
(4)3.4列出在制定需求获取策略时的3种主要考虑因素。
(5)3.6举例说明一个系统的3个不同类型的非功能需求 (5)3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。
. 53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。
5 第4章 (5)4.1 简述软件设计阶段的基本任务 (5)4.2 软件设计与质量的关系是怎么样的? (6)4.4 简述模块、模块化及模块化设计的概念。
(6)4.6 耦合和软件可移植性的概念有何关系?举例说明自己的结论。
(6)4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。
64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1 简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。
软件工程课后作业总

软件工程是采用工程化的概念、原理、技术和方法指导计算机(C )的工程学科。
A、软件开发B、管理技术C、软件开发和维护D、程序设计【单选题】在软件生命周期法中,用户的参与主要在(A)。
A、软件定义期B、软件开发期C、软件维护期D、整个软件生命周期过程中生存周期的瀑布模型一般包括问题定义、可行性研究、( B )、设计、编码、测试、维护等几个阶段。
A、问题定义B、需求分析C、总体设计D、数据库设计软件工程把经过时间考验而证明正确的管理技术和当前能够得到的最好的__D__结合起来。
A、软件开发B、管理方法C、开发环境D、技术方法【单选题】生存周期的瀑布模型一般包括:问题定义、可行性研究、系统设计、编码、测试、__D 等几个阶段。
A、需求分析B、可行性分析C、程序设计D、维护【单选题】快速原型模型的主要特点之一是( D )。
A、开发完毕才见到产品B、及早提供全部完整的软件产品C、开发完毕后才见到工作软件D、及早提供可工作的软件开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )。
A、软件工程B、软件周期C、软件危机D、软件产生【单选题】瀑布模型把软件生命周期划分为软件定义、软件开发与( C )3个阶段,而每一个阶段又可细分为若干个更小的阶段。
A、详细设计B、可行性分析C、运行维护D、测试与排错划分软件生存周期的阶段时所应遵循的基本原则是( B )。
A、各阶段的任务尽可能相关性B、各阶段的任务尽可能相对独立C、各阶段的任务在时间上连续D、各阶段的任务在时间上相对独立【单选题】系统定义明确之后,应对系统的可行性进行研究。
可行性研究应包括(B )。
A、软件环境可行性、技术可行性、经济可行性B、经济可行性、技术可行性、操作可行性C、经济可行性、社会可行性、系统可行性D、经济可行性、实用性、社会可行性软件可行性分析是着重确定系统的目标和规模。
对功能、性能以及约束条件的分析应属于下列之中的_ B _。
软件工程课后作业

软件工程课后作业软件工程是一门旨在指导软件开发过程,提高软件质量和开发效率的学科。
在学习软件工程的过程中,课后作业成为了巩固知识、培养实践能力的重要环节。
首先,软件工程课后作业有助于加深对理论知识的理解。
通过完成作业,我们能够更加深入地理解软件开发的各个阶段,如需求分析、设计、编码、测试和维护。
例如,在需求分析的作业中,我们学会如何与客户沟通,准确获取他们的需求,并将其转化为清晰明确的文档。
这不仅锻炼了我们的沟通能力,还让我们明白了需求分析对于整个软件开发项目的重要性。
其次,作业能够培养我们的问题解决能力。
在实际的软件开发中,会遇到各种各样的问题和挑战。
通过课后作业中的案例分析和实践操作,我们逐渐学会运用所学的知识和方法来解决这些问题。
比如,在面对代码中的错误时,我们需要运用调试技巧和逻辑思维,找出错误的根源并进行修复。
这种问题解决的能力将在未来的工作中发挥重要作用。
再者,软件工程课后作业有助于提高我们的团队协作能力。
很多作业会要求以小组的形式完成,这就需要小组成员之间进行有效的沟通、分工和协作。
在团队中,每个人都有自己的优势和不足,通过相互配合,我们能够取长补短,共同完成任务。
同时,团队协作还能让我们学会如何处理冲突和协调不同的意见,培养良好的团队合作精神。
另外,作业也是对我们时间管理能力的一种考验。
在完成软件工程作业的过程中,往往需要我们合理安排时间,制定详细的计划,并按照计划有条不紊地进行。
如果不能有效地管理时间,很容易导致作业拖延或者质量下降。
因此,通过课后作业的锻炼,我们能够学会如何合理分配时间,提高学习和工作的效率。
在完成软件工程课后作业的过程中,也会遇到一些困难和挑战。
例如,有时候作业的要求不够明确,导致我们在理解和执行上出现偏差。
这就需要我们主动与老师和同学进行沟通,明确作业的目标和要求。
另外,有时候作业的难度较大,需要花费大量的时间和精力去解决。
这时候,我们不能轻易放弃,要保持耐心和毅力,通过查阅资料、请教他人等方式来克服困难。
软件工程课后作业:软件工程第4版课后答案

第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现(1) 对软件开发成本和进度的估计常常很不准确(2) 用户对已完成的软件不满意的现象时有发生(3) 软件产品的质量往往是靠不住的(4) 软件常常是不可维护的。
(5) 软件通常没有适当的文档资料。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的原因(1) 来自软件自身的特点是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。
(2) 软件开发与维护的方法不当忽视需求分析; 认为软件开发等于程序编写; 轻视软件维护。
(3) 供求矛盾将是一个永恒的主题面对日益增长的软件需求,人们显得力不从心。
四、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。
传统方法学也称为生命周期方法学或结构化范型。
优点把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
面向对象方法学优点降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。
七、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的使用范围。
软件生命周期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
瀑布模型优点它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
虽然有不少缺陷但比在软件开发中随意的状态要好得多。
软件工程课后作业软件工程第4版课后答案

软件工程课后作业软件工程第4版课后答案软件工程第4版课后答案第一题:1. 什么是软件工程?软件工程的目标是什么?软件工程是一种应用工程原理和方法来开发和维护高质量软件的学科。
它涵盖了软件开发生命周期的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。
软件工程的目标是以系统化、规范化和可控的方式来开发软件,使得软件能够满足用户的需求,具有高质量、高可靠性和高效率。
第二题:2. 软件工程的关键特性是什么?软件工程的关键特性包括可靠性、可维护性、可复用性和可管理性。
可靠性指的是软件在预期情况下能够正确运行的能力;可维护性指的是容易对软件进行修改和更新;可复用性指的是能够将软件组件应用于不同的项目中;可管理性指的是有效地管理和控制软件开发过程和项目资源。
第三题:3. 软件开发生命周期中的阶段有哪些?软件开发生命周期包括需求分析、设计、编码、测试、部署和维护等阶段。
需求分析阶段是确定软件系统需求的过程,包括收集、分析和规划需求;设计阶段是定义软件系统的结构和组织,确定软件的架构和模块划分;编码阶段是根据设计产生的规范和文档来实现软件系统;测试阶段是验证软件系统是否满足需求和质量标准;部署阶段是将软件系统转移到用户环境并进行正式使用;维护阶段是对软件进行修改和改进,以保持其可用性和稳定性。
第四题:4. 什么是质量保证?软件开发中的质量保证活动有哪些?质量保证指的是通过有效的管理和控制手段,确保软件开发过程和软件产品的质量。
软件开发中的质量保证活动包括需求评审、设计评审、代码审查、单元测试、功能测试、性能测试、用户验收测试等。
通过这些活动,可以及早发现和解决开发中的问题,确保软件的质量。
第五题:5. 软件项目管理的关键活动有哪些?软件项目管理的关键活动包括项目规划、项目组织、项目估计、进度控制和风险管理等。
项目规划是确定项目目标、任务和资源分配计划等;项目组织是建立和管理项目团队;项目估计是对项目工作量、成本、资源等进行估计和计划;进度控制是监控和调整项目进度;风险管理是识别和应对项目中的风险。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
路松峰_20140062 2018-07-29 10:32:40
一、简答题
1.什么是软件工程?
软件工程是关于软件生产的各个方面的工程学科。
二、判断题
1、软件危机的主要表现是软件需求增加,软件价格上升。
正确
2、软件就是程序,编写软件就是编写程序。
错误
三、选择题
1、用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为( A )工具。
A. CASE
B.CAI
C. CAM
D. CAD
2、在下列选项中,( C )不是软件的特征。
A.系统性与复制性
B.可靠性与一致性
C.有形性与可控性
D.抽象性与智能性
3、软件工程的三要素是( B )
A.技术、方法和工具
B.方法、工具和过程
C. 方法、对象和类
D.过程、模型和方法
1、快速原型模型的主要优点是什么?
软件产品的开发基本上是线性顺序进行的。
2、什么是模型?
模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。
二、判断题
1、在软件开发中采用原型系统策略的主要困难是成本问题。
正确
2、软件过程改进也是软件工程的范畴。
正确
三、选择题
1、包含风险分析的软件工程模型是( D )。
A.喷泉模型
B.瀑布模型
C.增量模型
D.螺旋模型
2、软件过程是( C )。
A.特定的开发模型
B.一种软件求解的计算逻辑
C.软件开发活动的集合
D.软件生命周期模型
3、CMM模型将软件过程的成熟度分为5个等级。
在(B )使用定量分析来不断地改进和管理软件过程。
A.管理级
B. 优化级
C. 定义级
D.可重复级
面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。
该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导出软件的结构。
二、判断题
1、需求评审人员主要由开发人员组成,一般不包括用户。
错误
2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。
正确
三、选择题
1、增量模型本质上是一种( C)。
A.线性顺序模型
B.整体开发模型
C. 非整体开发模型
D.螺旋模型
2、需求工程的主要目的是( C)。
A.系统开发的具体方案
B. 进一步确定用户的需求
C. 解决系统是“做什么的问题”
D. 解决系统是“如何做的问题”
3、在E-R模型中,包含以下基本成分(D )。
A.数据、对象、实体
B. 控制、关系、对象
C. 实体、关系、控制
D. 实体、属性、关系
五个特点:抽象,封装,继承,多态,对象唯一性。
二、判断题
1、模块独立要求高耦合低内聚。
错误
2、软件设计中的设计复审和设计本身一样重要,其主要作用是避免后期付出高昂代价。
正确
三、选择题
1、软件工程中描述生命周期模型的瀑布模型一般包括计划、需求分析、设计、编码、( D )、维护等几个阶段。
A.产品发布
B.版本更新
C.可行性分析
D.测试
2、为了提高模块的独立性,模块之间最好是( C )。
A.公共环境耦合
B. 控制耦合
C. 数据耦合
D. 特征耦合
3、在面向数据流的软件设计方法中,一般将信息流分为( D )。
A.数据流和控制流
B. 变换流和控制流
C. 事务流和控制流
D. 变换流和事务流
二、判断题
1、软件测试的目的是证明软件是正确的。
错误
2、白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。
正确
三、选择题
1、软件测试的目的是尽可能发现软件中的错误,通常( D )是代码编写阶段可进行的测试,它是整个测试工作的基础。
A.集成测试
B. 系统测试
C. 验收测试
D. 单元测试
2、成功的测试是指运行测试用例后( A )。
A.发现了程序错误
B. 未发现程序错误
C. 证明程序正确
D. 改正了程序错误
3、黑盒测试方法根据( B )设计测试用例。
A.程序的调用规则
B. 软件要完成的功能
C.模块间的逻辑关系
D. 程序的数据结构
2、类是指具有相同或相似性质的对象的抽象,类的具体化就是对象。
正确
三、选择题
1.应用执行对象的操作可以改变该对象的( C )。
A. 行为
B. 功能
C.属性
D. 数据
2.(D )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐藏的,外界只能通过有限的接口与对象发生联系。
A.多态性
B. 继承
C.消息
D. 封装
3.(B )意味着一个操作在不同的类中可以有不同的实现方式。
A. 多继承
B. 多态性
C. 消息
D. 封装
第8次作业
路松峰_20140062 2018-07-29 10:37:13
一、简答题
1.计算环形复杂度。
环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测度数量的上界。
2.调试的目标是什么?它有几种途径?
调试则是在进行了成功的测试之后才开始的工作。
调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)。
调试的技术手段有简单的调试方法、归纳法、演绎法和回溯法等。
二、判断题
1、面向对象设计的结果,既可以用面向对象语言,也可以用非面向对象语言实现。
正确
2、面向对象测试用例的设计由输入-处理-输出视图或单个模块的算法细节驱动。
正确
三、选择题
1.面向对象程序设计语言不同于其它语言的最主要特点是( C )。
A. 模块性
B. 抽象性
C.继承性
D. 内聚性
2.面向对象的测试与传统测试方法的主要区别是(AC )。
A. 面向对象的测试可在编码前进行,传统测试方法在编码后进行
B. 面向对象的测试以需求和设计阶段的测试为主,不需要进行代码测试
C. 测试对象不同
D. 面向对象的测试不需要设计测试用例,只需要
第9次作业
路松峰_20140062 2018-07-29 10:38:07
一、简答题
1.主程序员组的核心有几个人?其角色名称与分工是什么?
主程序员:全面负责系统定义、设计、编码、调试、安装。
辅助程序员:协助主程序员,必要时替代主程序员(平时侧重于测试方案,分析测试结果)。
程序管理员:全部事务性工作(提交上机程序、保存运行语言、进行软件配置)。
2.类构件的重用方式有哪些?
实例重用、继承重用和多态重用。
二、判断题
1、部署图描述系统硬件的物理拓扑结构以及在此结构上执行的软件。
正确
2、用例之间有扩展、使用、组合等几种关系。
正确
三、选择题
1.(A )是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其它图的基础。
A. 类图
B. 状态图
C.对象图
D. 部署图
2.UML是软件开发中的一个重要工具,它主要应用于( D )。
A.基于螺旋模型的结构化方法
B. 基于需求动态定义的原型化方法
C. 基于数据的数据流开发方法
D. 基于对象的面向对象的方法
3.( C )是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图
B. 活动图
C.用例图
D. 状态图
10
路松峰_20140062 2018-07-29 10:39:09
一、简答题
1.什么是3C模型?
2.软件重用的基本要求是什么?
为使软构件也像硬件集成电路那样,能在构造各种各样的软件系统时方便地重复使用,就必须使它们满足下列要求。
(l)模块独立性强;(2)具有高度可塑性;(3)接口清晰、简明、可靠。
二、判断题
1、回避风险指的是:风险一旦发生,就接受后果。
错误
2、风险有两个显著特点,一是不确定性,另一个是损失。
正确
三、选择题
1.面向对象分析阶段建立的3个模型中,核心的模型是(C )模型。
A. 功能
B. 动态
C. 对象
D. 分析
2.按照软件配置管理的原始指导思想,受控制的对象应该是(A )。
A.软件过程
B. 软件项目
C. 软件配置项
D. 软件元素
3.下面(D )不是人们常用的评价软件质量的4个因素之一。
A. 可理解性
B. 可靠性
C.可维护性
D. 易用性。