软件工程课后练习1
- 格式:doc
- 大小:37.00 KB
- 文档页数:3
软件工程作业1一、选择题:1.开发软件所需高成本和产物的低质量之间有着锋利的矛盾,这种现象称做〔C〕。
2.瀑布模型本质上是一种〔A 〕模型。
3.瀑布模型存在的问题是〔B 〕。
A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和〔A〕结合起来的软件开发模型。
A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,适用于〔A〕系统。
A.需求不确定性高的 B.需求确定的C.打点信息 D.实时6.以下有关软件工程的尺度,属于国际尺度的是(D )7.布局化方法是一种基于〔D〕的方法。
A.数据布局B.程序布局C.算法D.数据流8.软件可行性研究本色上是要进行一次( A)需求阐发、设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的9.可行性研究的目的是〔D〕A、阐发开发系统的必要性B、确定系统建设的方案C、阐发系统风险D、确定是否值得开发系统10.设年利率为i,现存入p元,不计复利,n年后可得钱数为〔C〕。
A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11.可行性研究是在〔A〕之前A、系统开发B、测试C、试运行D、集成测试12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的〔C〕。
A、1%B、20%C、8%D、50%13.我国正式发布实施的〔B〕对计算机病毒的定义具有法律性、权威性。
A.计算机软件庇护条例B.中华人民共和国计算机信息系统安然庇护条例C.中华人民共和国著作权法D.计算机病毒防治打点方法14.效率是一个性能要求,因此应当在以下哪个阶段规定?BA、可行性阐发B、需求阐发C、概要设计D、详细设计15.需求规格说明书的作用不包罗〔D〕A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义〔D〕中的各个成份的具体含义的。
软件工程---课后习题答案.doc第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。
●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
●软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。
例如:编译软件、操作系统。
2.支撑软件支撑软件是支撑软件的开发和维护的软件。
例如:数据库管理系统、网络软件、软件工具、软件开发环境。
3.应用软件应用软件是特定应用领域专用的软件。
例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
1.3简述软件语言的分类,并举例说明。
1.需求定义语言是用于书写软件需求定义的语言。
例如:PSL/PSA。
2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。
例如:广谱语言、Z语言。
3.设计性语言是用于书写软件设计规约的语言。
例如:PDL。
4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。
例如:C、java、PROLOG、FORTRAN、COBOL、Modula。
5.文档语言是用于书写软件文档的语言。
通常用自然语言或半形式化语言书写。
1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。
1.5简述软件工程的基本原则。
软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。
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. 软件的主要特性是(A B C)。
A) ⽆形 B) ⾼成本C) 包括程序和⽂档D) 可独⽴构成计算机系统2. 软件⼯程三要素是(C D)。
A) 技术、⽅法和⼯具B) ⽅法、⼯具和过程C) ⽅法、对象和类D) 过程、模型、⽅法3. 包含风险分析的软件⼯程模型是(A)。
A) 螺旋模型 B) 瀑布模型C) 增量模型 D) 喷泉模型4. 软件⼯程的主要⽬标是(C)。
A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于⾯向对象开发⽅法的是(A B C D)。
A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。
A) 软件成本太⾼B) 软件产品的质量低劣C) 软件开发⼈员明显不⾜D) 软件⽣产率低下7. 软件开发⽅法的主要⼯作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件⼯程的⽬标有(A B C)。
A) 易于维护B) 低的开发成本C) ⾼性能D) 短的开发期9. 软件⼯程学的⽬的和意义是( )。
A) 应⽤科学的⽅法和⼯程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训⼯作D) 以较低的成本开发出⾼质量的软件⼆、判断题1. 软件就是程序,编写软件就是编写程序。
(×)2. 瀑布模型的最⼤优点是将软件开发的各个阶段划分得⼗分清晰。
(×)3. 结构化⽅法的⼯作模型是使⽤螺旋模型进⾏开发。
(×)4. 结构化⽅法和JSP⽅法都不适合于⼤型软件的开发。
(√)5. 原型化开发⽅法包括⽣成原型和实现原型两个步骤。
(×)6. ⾯向对象的开发⽅法包括⾯向对象的分析、⾯向对象的设计和⾯向对象的程序设计。
( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(×)8. 软件⼯具的作⽤是为了延长软件产品的寿命。
第一章练习题一、填空题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 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
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.法律名词及注释本文涉及的法律名词及注释:无。
软件工程习题软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:、软件工程需要解决的问题包括: 费用费用 、 可靠性可靠性 、 可维护性可维护性 、 生产率生产率 和 重用重用。
2、到目前为止,软件生产的发展经历了三个阶段,即 程序设计程序设计程序设计 、 程序系统程序系统和 软件工程件工程。
3、计算机科学中的研究曾国均可用于软件工程,计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于但计算机科学侧重于但计算机科学侧重于 原理和理论原理和理论,而软件工程侧重于软件工程侧重于 软件系统构造软件系统构造。
4、软件工程有用管理科学的方法和原理进行、软件工程有用管理科学的方法和原理进行 软件生产的管理软件生产的管理。
5、软件工程是用科学知识和技术原理来、软件工程是用科学知识和技术原理来 定义定义 、 开发开发 、 维护维护 软件的一门科学。
软件的一门科学。
软件的一门科学。
6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。
在软件开发技术方面,技术方面,主要研究主要研究主要研究 开发方法、开发方法、开发方法、 开发过程、开发过程、 开发工具开发工具。
在软件开发管理技术方面主要研究研究 管理学管理学管理学 、 经济学经济学经济学 、 心理学心理学心理学 。
7、作为一门交叉学科,软件工程具有很强的综合性,它涉及 计算机科学计算机科学计算机科学 、 工程科工程科学 、 管理科学管理科学管理科学 、 数学数学 等领域。
等领域。
8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常包括包括 问题定义、可行性研究问题定义、可行性研究 、需求分析、需求分析 、 总体设计总体设计总体设计 、 详细设计详细设计详细设计 、 编码编码 、测试测试 、 维护维护维护 等活动,可以将这些活动以适当方式分配到不同阶段去完成。
等活动,可以将这些活动以适当方式分配到不同阶段去完成。
3.输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。
使用流程图、PAD图4、什么是判定/条件覆盖?为以下程序流程图设计判定/条件覆盖测试用例并标明程序执行路径。
判定/条件覆盖——它是指设计足够的测试用例,即满足条件覆盖又满足判定覆盖。
测试用例:x=2,y=0,z=3(覆盖x>1,y=0,x=2,z>1,通过路径abcde);x=1,y=1,z=1(覆盖x≤1,y≠0,x≠2,z≤1,通过路径ace)。
5、根据下列条件使用等价类划分法设计测试用例。
(书P118 例)某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065(1)划分等价类并编号,如下表示:(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子(3)为不合理等价类测试用例,至少设计一个测试用例6、将下面给出的伪码转换为N-S 图。
(8分)void root ( float root1, float root2 ) { i = 1; j = 0; while ( i <= 10 ) {输入一元二次方程的系数a, b, c; p = b*b – 4*a*c;if ( p < 0 ) 输出“方程i 无实数根”; else if ( p > 0 ) 求出根并输出; if ( p == 0 ) {求出重根并输出; j = j + 1; }i = i +1; }输出重根的方程的个数j; }7、某航空公司规定,乘客可以免费托运重量不超过30kg 的行李。
当行李重量超过30kg 时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定树表示与上述每种条件组合相对应的计算行李费的算法。
i = 1; j = 0; while ( i <= 10 ) 输入a, b, c; 计算 p = b 2 - 4ac ; p < 0 ? 输出“方程i ”无求出根并输出 ↓p > 0 ? p == 0 ? 求出重根并输出; j = j + 1; ↓i = i + 1; 输出重根的方程个数i T T T F FF8、使用PAD图描述在数组A(1)~A(10)中找最大数的算法9、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
第一章课后练习(P15)1.解释为什么专业化软件不仅仅包括为用户所开发程序?专业化软件在开发上与在与软件就有所不同。
专业软件通常是由团队开发而非个人,除了开发者外还有其他的用户使用。
如果你的软件有别的用户,别的工程师会去修改的话,你就必须提供除了程序源码之外的其它附带信息。
因此,系统通常除了包含一些单独的程序还有用于这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档,以及告知用户下载最新产品的Web站点。
2.通用软件产品开发和定制软件开发直接有什么不同?这在实际应用中对通用软件产品用户意味着什么?(1)重要区别为:在通用软件的开发过程中,详细说明(规格说明书)由产品开发者来制定,在定制软件产品开发过程中,详细说明(规格说明书)由客户来制定开发者必须按客户要求进行开发。
(2)意味着通用软件很难满足通用软件客户的特殊需求。
如可靠性、安全性、快捷性。
3.软件产品应该具有与的4重要属性是那些?另外列举出4个可能有意义的属性。
重要属性:可维护性、可依赖性和安全性、有效性和可用性。
可能有意义的属性:可复用性、可分发性、可移植性和互用性。
4.除了异质性挑战、业务和社会的变革、安全和可信,说出软件工程在21世纪的可能面临的其它问题和挑战。
交付上的挑战:许多传统的软件工程技术需要耗费大量的时间,用于提高软件质量。
而今天的软件制作必须响应快、更换迅速,支持软件也必须同样快地进行更换。
交付上的挑战是:在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。
5.参论的应用类型,照1.1.2节讨举例介绍为什么设计和开发不同类型的应用需要专门的软件技术。
如汽车上年的嵌入式控制系统对安全性要求极高,在车上安装是要烧制到ROM中在这里的交互在这里是很少的(或许根本就没有)。
基于Web式系统更适合用于迭代式开发和交互。
而基于Web的系统编程使用的如Ruby一类的脚本语言,完全不适合嵌入式系统工程。
第一章
1、软件由计算机程序、数据和组成。
2、软件与硬件有很大的区别,它是一种抽象的实体。
3、软件的发展经历了三个时期:程序设计、程序系统和。
4、软件工程的三个基本要素包括、和。
5、瀑布模型是将软件生存周期的各个活动规定为以顺序连接的若干阶段的模型。
它规定了各阶段的活动由前至后,相互衔接的固定次序。
6、原型模型是一种非整体开发模型。
先开发一个软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意产品。
7、螺旋模型将开发过程分为若干个螺旋周期。
在每个螺旋周期内分为四个工作步骤:制定计划、、实施工程、。
1、软件产品的生产过程主要是 ____。
A. 制造
B. 复制
C. 开发
2、是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护。
A. 软件过程
B. 软件生存周期
C. 软件工程
3、全面准确地描述“软件系统必须要做什么”是以下____阶段的主要任务。
A. 可行性研究
B. 需求分析
C. 软件设计
D. 程序编码
4、软件生存周期中持续时间最长的是____阶段。
A. 需求分析
B. 软件设计
C. 软件测试
D. 软件运行/维护
5、以下叙述中不属于软件危机的主要表现是____。
A. 软件成本太高
B. 软件产品无法满足用户需求
C. 软件开发人员明显不足
D. 软件开发效率低
6、在以下软件过程模型中,___适合于大型软件的开发,并引入了风险分析的概念。
A. 瀑布模型
B. 原型模型
C. 螺旋模型
D. 增量模型
7、为保证软件开发过程能够跟上技术的进步,必须不断地灵活地改进软件工程____。
A. 工具
B. 过程
C. 方法
8、软件工程中描述瀑布模型一般包括计划、____、设计、编码、测试、维护几个阶段。
A. 需求分析
B. 需求调查
C.问题定义
D. 可行性研究
1、什么是软件,有哪些特点。
2、软件危机的主要表现有哪些?
3、什么是软件工程,包括哪些基本要素,简要说明这些要素的作用。
4、什么是软件生存周期,通常划分为哪些阶段?
5、比较瀑布模型、增量模型、原型模型和螺旋模型各自的特点。
6、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。
一旦实现并测试完之后,该软件将被抛弃。
选用哪种软件过程模型比较合适?说明选择的理由。
7、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。
由于市场竞争激烈,公司规定了
严格的完成期限并且已对外公布。
选用哪种软件过程模型比较合适?为什么?
8、试分析以下观点的正确性。
观点一:软件需求总是在不断变化,但这些变化能够很容易地满足。
观点二:一个成功的软件项目唯一应该提交的就是运行程序。
观点三:一旦我们写出了程序并使其正常运行,我们的工作就结束了。
观点四:有了对软件目标的一般描述就足以开始写程序了,我们以后可以再补充细节。