软件工程学第一次作业答案
软件工程学第一次作业答案
一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
2022年中央电大《软件工程》平时作业1、2、3、4次及答案
软件工程第1次作业一、填空题(每空2分,共20分)二、单项选取题(将一种对的答案代码填入括号中,每小题3分,共15分) 1.( )是顾客和设计互换最频繁办法。
A. 原型化办法B.瀑布模型办法C. 螺旋模型办法D. 构件组装模型办法2.下列哪个阶段不是软件生存期三个阶段中内容( )。
A. 筹划阶段B.开发阶段C. 编码阶段D. 维护阶段3.下列( )操作产生副作用属于数据副作用。
A. 修改子程序B.局部变量再定义C. 删除标记符D.修改对编辑条件测试4.软件测试目( )。
A. 避免软件开发中浮现错误B.发现软件开发中浮现错误C.尽量发现并排除软件中潜藏错误,提高软件可靠性D.修改软件中浮现错误5.完毕详细设计工具不涉及( )。
A.PAD图B.数据流图C.HlP()图D.程序流程图三、多项选取题(将一种以上对的答案代码填入括号中,每小题3 分,共15分) 1.应从( )等方面研究可行性。
A. 经济可行性B.技术可行性C. 运营可行性D.法律可行性2.对于下列数据流图局部,关于描述中对的是( )。
A. 该图为第一层数据流图3.需求分析阶段结束后,交出文档中应当涉及( )。
A. 数据流图B.数据字典C. 简要算法描述D.项目经费预算4.软件管理工作涉及到直接对象涉及( )。
A. 软件开发人员B.硬件设备C. 项目经费D.软件项目5.在软件设计中,( )耦合应尽量避免。
A. 控制B.数据C.内容 D. 标记四、判断题(对的在括号内打上“√”,错误打上“X”。
每小题2分,共10分)1。
软件危机是指在软件开发和维护过程中遇到一系列严重问题。
( )2,构造化分析办法就是用抽象模型概念,按照软件内部数据传递、变换关系,自顶向下逐级分解,直到找到满足功能规定所有可实现软件为止。
( )3.UML只能应用于软件系统模型建立。
( )4.程序设计语言中应绝对禁止使用GOTO语句。
( ) 5.模块越小,模块长处越大。
( )五、问答题(每小题10分,共20分)1.什么是软件?什么是软件工程?2.什么是编码风格?为什么要强调编码风格?六、分析题(共20分)依照下列N—S图,写出其相应伪码。
《软件工程》作业及参考答案1,4
《软件工程》作业及参考答案——第一、二章中央电大理工部史红星(2004年09月15日)浏览人次4582一、填空题1. 软件工程学的内容可包括(理论)、结构、(方法)、(工具)、环境、管理、规范等。
2. 软件生存周期一般可分为问题定义、(可行性研究)、(需求分析)、设计、(编码)、测试、运行与维护阶段。
3. 可行性研究的目的是(用最小的代价在尽可能短的时间内确定问题是否能够解决)。
4. 系统流程图是(描绘物理系统)的传统工具。
5. 在可行性研究中,(技术可行性)是系统开发过程中难度最大,最重要的一个环节。
二、判断题1. 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
(√ )2. 螺旋模型是利用笛卡尔坐标的四个象限上分别代表四个方面的活动来表示。
(√ )3. 原型模型适用于嵌入式软件。
(╳ )4. 面向对象技术是构件组装模型的基础。
(√ )5. 在可行性研究中最难决断和最关键的问题是经济可行性。
(╳ )6. 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
(╳ )7. 自底向上成本估计不是从整体开始,而是从任务单元开始。
(√ )三、单项选择题1. 下列哪个阶段不是软件生存期三个阶段中的内容( C )。
A.计划阶段B.开发阶段C.编码阶段D.维护阶段2. 下列关于瀑布模型的描述正确的是( C )。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。
B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
D. 利用瀑布模型,如果发现问题修改的代价很低。
四、简答题1. 软件的定义与特点。
参考答案:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据结构及其相关文档的完整集合。
它包括三个方面的内容:⑴程序:在运行时,能提供所希望的功能和性能的指令集。
⑵数据结构:使程序能够正确运行的数据结构。
国开电大软件工程形考作业1参考答案
题目1.()是职业软件工程师的必要条件。
A. 编程速度快
B. 语言天赋
C. 熟悉众多的软件环境
D. 自律、善于沟通、具有一定的软件技能
【答案】:自律、善于沟通、具有一定的软件技能
题目2.根据软件工程的7条基本原理判断下面正确的选项是()。
A. 需求阶段一般不会引入错误
B. 软件错误发现的时机不重要,重要的是错误的严重程度
C. 软件错误只能通过运行代码才能发现
D. 软件错误发现的越早改正的成本越低
【答案】:软件错误发现的越早改正的成本越低
题目3.美国著名软件工程专家B.W.Boehm于1983年提出了软件工程的()条基本原理。
A. 5
B. 3
C. 7
D. 12
【答案】:7
题目4.软件、程序和代码是()。
A. 计算机代码和数据
B. 相同的软件概念
C. 三个不同的概念
D. 程序语言写的代码
【答案】:三个不同的概念。
软件工程作业含答案解析
软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2简述软件的分类,并举例说明。
(1)1.4什么是软件工程? (1)1.5简述软件工程的基本原则。
(1)1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。
11.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需求工程具体包括哪些步骤?每个步骤的具体任务是什么?33.3 一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。
43.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简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。
75.2分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任务。
大连理工19秋《软件工程》在线作业1答案
大连理工19秋《软件工程》在线作业1答案
【奥鹏】大工19秋《软件工程》在线作业1
试卷总分:100 得分:100
一、单选题 (共 10 道试题,共 50 分)
第1题,包含风险分析的软件工程模型是( )。
[A.]螺旋模型
[B.]瀑布模型
[C.]增量模型
[D.]喷泉模型
正确的答案是:A
第2题,软件开发方法的主要工作模型有( )。
[A.]瀑布模型
[B.]快速原型模型
[C.]增量模型
[D.]以上都对
正确的答案是:D
第3题,软件危机的主要表现是( )。
[A.]有的软件没有适当的文档资料
[B.]有的软件产品存在质量问题
[C.]对软件开发成本和进度的估计往往不够准确
[D.]以上都对
正确的答案是:D
第4题,软件工程三要素是( )。
[A.]方法、过程、模型
[B.]方法、技术、C语言
[C.]方法、工具、过程
[D.]方法、对象、类
正确的答案是:C
第5题,软件工程的概念是哪年提出的( )。
[A.]1988
[B.]1968
[C.]1948
[D.]1928
正确的答案是:B
第6题,数据字典是数据流图中所有元素的定义的集合,一般由以下四类元素组成( )。
[A.]数据流分量、数据流、数据存储、处理
[B.]加工条目、数据流、数据项条目、文件
[C.]加工条目、数据流、数据存储、数据池
[D.]加工条目、数据流分量、数据池、文件。
软件工程作业(答案参考)
软件工程作业(答案参考)软件工程第一次作业1)软件工程适用范围?答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
2)软件工程如何控制系统开发的复杂性的?答:可理解性(understandability)。
系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。
带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。
若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。
3)协同工作有什么重要性?答:日常工作中,80%的事项,都需要与同事协作完成、与其他部门协调资源、或者向领导进行请示汇报;80%的工作都处于开放的环境,如特殊请求、突发事件、临时汇报、项目协作、活动组织、意见征集、沟通协调等等,因此,通过柔性协作流程的使用,员工可以很便捷的实现与其他同事的头脑风暴、分工协作、资源整合,并且可以通过自建模板和自建流程的使用,使得很多处于随机和发散状态的工作实现有序化、可跟踪化、可追溯化,实现工作的敏捷性与有效性的统一,简单来说,就是实现员工的工作产生1+1>2的效果。
6 )只要是编程高手,即使是不懂软件工程,也能编出很好的软件。
答:不一定。
软件的开发是由需求调研分析、概要设计、详细设计、编码、测试及用户体验反馈等组成的。
所以只是懂得编码编程其中一部分不一定能编出很好的软件。
7 )只要拥有一套讲述如何开发软件的书籍,并了解了书中的标准与示例,就可以解决软件开发中遇到的任何问题。
软件工程学第一次作业—答案中山大学
软件工程学第一次作业一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
第一次作业答案
第一章《软件工程概述》作业答案一、名词解释1.软件软件是计算机程序以及开发、使用和维护程序所需要的所有文档。
软件是包括程序、数据及其相关文档的完整集合。
2.软件危机软件生产的进度、数量、质量、成本满足不了社会对软件的需求量和希望的现象,称为“软件危机”。
软件工程IEEE[IEE93]:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
4.软件生存周期软件生存周期是指一个软件从提出开发要求开始直到不再使用(报废)为止的整个时期。
5.软件过程模型软件过程指为获得高质量软件所需要完成的一系列任务以及完成这些任务的工作步骤。
过程还规定了运用的方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施、任务完成的标志等。
软件过程模型也叫软件生存期模型、软件工程范型,是软件过程的一种抽象表示。
二、填空题1、在信息处理和计算机领域内,一般认为软件是程序、数据和文档的集合。
2、软件生产的发展经历了程序设计时代、程序系统时代和软件工程时代,各时代的生产方式分别是个体、作方式和工程化。
3、软件生存周期的8个阶段分别是问题定义、可行性研究、需求分析、概要设计、详细设计、编码与模块测试、综合测试、维护。
4、软件工程是利用工程化的原理和方法来进行开发、维护和管理软件的一门学科。
5、描述软件开发过程中各种活动如何执行的模型称为软件过程模型。
6、瀑布模型不适应需求可变的软件开发,只有到最后才能见到整个软件系统。
7、软件产品的生产主要是研制,软件产品的成本主要体现在人力成本上。
8、软件工程面临的问题有软件费用、可靠性、可维护性、生产率。
三、单项选择题1、软件文档是( C )。
A.程序B.工具C.文书和资料D.数据2、软件是一种( B )性工业产品A.理论B.知识(或逻辑)C.消耗D.体力3、与计算机科学的理论研究不同,软件工程是一门( B )的学科。
A.理论性 B.工程性 C.原理性 D.心理性4、软件工程与计算机科学的性质不同,软件工程着重于( B )A.理论研究 B.建造软件系统 C.原理探讨 D.原理的理论5、软件工程学科出现的直接原因是( C )。
软件工程第一次作业答案
1.How do software characteristics differ from hardware characteristics?Answer (Section 1.2):Software is developed, not manufactured. Software does not wear out, but it can deteriorate when changes are made. Most software is custom built, not assembled out of components.2. What is the difference between software that is determinate and software that is indeterminate?Answer (Section 1.3):Software is determinate is the order and timing of its inputs, processing, and outputs is predictable and it is indeterminate if the order and timing of its input, processing, and outputs is not predictable in advance.3.Explain what is wrong with the notion that computer software does not need to evolveover time.Answer (Section1.4):Computer software must be revised as errors are discovered and corrected. Software must be updated to accommodate changes in the computing environment. Many times a customer will request changes to add new functions to an existing product or to accommodate changes in the business environment. Sometimes an older system will need to be reengineered to provide benefits to the user in a modern context. The bottom line is that software that does not evolve will eventually become unusable.4.Many modern applications change frequently before they are presented to the end userand then after the first versions have been used. Think about few ways to build software to stop deterioration due to change.Answer:•Make sure that software is designed so that changes in one part of a program do not create side-effects in another part of the program.•Make sure that software is designed so that it does not depend on external devices or systems that are likely to change with time.•Make sure test cases and results are archived and available so that the software can be retested when changes are made.•Make sure you spend time understanding what the customer wants.5,For the waterfall model, describe situations where this model can and cannot be used and why.Answer:•The waterfall model is appropriate for projects with the following characteristics: (1) the problem is well understood (requirements are well-defined); (2) the delivery date is realistic; (3) it's unlikely that major changes in requirements will be requested as theproject proceeds.6. Incremental process models tend to be among the most widely used in the industry. Describe the conditions under which such models should be used and what an “increment” means in terms of project work and deliveryAnswer:Incremental models are useful when staffing is unavailable for a complete implementation by the business deadline. In addition, increments can be planned to manage technical risks. The “increment” is often a core product, i.e., basic requirements are addressed but many supplementary features remain undelivered. The process is repeated following the delivery of each increment, until the complete product is produced.,7.Discuss the pros and cons of prototyping model and how it differs from the spiral modelAnswer:The pros and cons of prototyping model are: Pro: evaluated by user and used to refine requirements; Con: the first system built is barely usable; unrealistic expectations from the customer; the performance issue。
奥鹏北语18春《软件工程》作业1全是标准答案
A: A
B: B
C: C
D: D
正确答案:
(单选题) 2: 软件是()。
A: 处理对象和处理规则的描述
B: 程序
C: 程序及其文档
D: 计算机系统
正确答案:
(单选题) 3: 软件产品与物质产品有很大区别,软件产品是一种()产品
A: 有形
B: 消耗
C: 逻辑
D: 文档
正确答案:
(单选题) 4: 软件调试技术包括()
A: 边界值分析
B: 演绎法
C: 循环覆盖
D: 集成测试
正确答案:
(单选题) 5: 可行性研究要进行一次_____需求分析。
A: 详细的
B: 全面的
C: 简化的压缩的
D: 彻底的
正确答案:
(多选题) 1:
A: A
B: B
C: C
D: D
正确答案:
(多选题) 2:
A: A
B: B
C: C
D: D
正确答案:
(多选题) 3:
A: A
B: B
C: C
D: D
正确答案:
(多选题) 4:
A: A
B: B
C: C
D: D
正确答案:
(多选题) 5:
A: A
B: B
C:
(完整word版)软件工程阶段性作业1
中国地质大学(武汉)远程与继续教育学院软件工程课程作业1(共 4 次作业)学习层次:专升本涉及章节:第1章一、选择填空题1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。
软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、 ( B )及( C )的完整集合。
其中, ( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。
开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、 D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括弧()内。
有人将软件的发展过程划分为 4 个阶段:第一阶段(1950~1950 年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950 年代末~1960 年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960 年代末~1970 年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
中国石油大学(北京)软件工程 第一次在线作业满分答案
A、纠错性维护
B、适应性维护
C、改善性维护
D、预防性维护
我的答案:A 此题得分:2.5分14.(2.5分) 以下不属于白盒测试技术的是( )
A、逻辑覆盖
B、基本路径测试
C、循环覆盖测试
D、等价类划分
我的答案:D 此题得分:2.5分15.(2.5分) 盒图也称为( )或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
A、逻辑内聚
B、时间内聚
C、偶然内聚
D、功能内聚
我的答案:D 此题得分:2.5分25.(2.5分) 结构设计是一种应用最广泛的系统设计方法,是以( )为基础、自顶向下、逐步求精和模块化的过程。
A、数据流
B、数据流图
C、数据库
D、数据结构
正确
错误
我的答案:正确此题得分:2.5分28.(2.5分) 面向数据设计方法一般都包括下列任务: 确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。
正确
错误
我的答案:正确此题得分:2.5分29.(2.5分) 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。。
A、判定表和判定树
B、盒图
C、流程图
D、关系图
我的答案:A 此题得分:2.5分12.(2.5分) 需求分析的任务不包括( )
A、问题分析
B、系统设计
C、需求描述
D、需求评审
我的答案:B 此题得分:2.5分13.(2.5分) 为改正软件系统中潜藏的错误而进行的维护活动称为( )
A、瀑布模型
B、对象模型
软件工程答案(共五则范文)
软件工程答案(共五则范文)第一篇:软件工程答案软件工程课后习题答案殷锋主编·天津科学技术出版社注:有些可能错误,读者自己注意第一章一、填空题:1、软件是计算机系统中与硬件相互依存的另一部分,是包括、、及相关文档的的完整集合2、软件工程包括三要素:方法、工具和过程。
3、软件开发的基本方法包括和二、选择题:1、C2、B3、C第二章一、填空题:1、软件生存周期的各个过程可以分成三类,及主要生存周期过程、支持生存周期过程和组织的生存周期过程。
2、软件生存周期包括计划、需求分析、设计、程序编码、软件测试和运行维护6个阶段。
3、软件过程改进(SPI)帮助软件企业对其软件过程的改变进行计划,制定以及实施。
二、填空题1、A2、B三、判断题1、√2、X第三章三、填空题:1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定够解决2、可行性研究在进行简要需求分析和设计时,要在高层次上以进行3、需求分析阶段产生的最重要的文档是。
4、为解决一个复杂的问题,往往采取的策略是5、SA方法中使用半形式化的描述方式表达需求,采用的主要描述工具是流图和E-R图。
6、数据流图中有四种负号元素,它们是点7、数据字典中有四类条目,分别是8、在IDEF0图中,表示系统功能的图形成为图。
9、在画分层的DFD时,父图与子图的输入/输出的数据流要10、用于描述基本加工的小说明的三种描述工具是定表。
二、选择题1、A2、C3、B4、B5、D6、D7、D8、A9、D10、A11、C12、B第四章一、填空题1、变换型系统由3部分组成:。
2、模块的分解的基本原则是。
3、在软件开发的过程中必须遵循的软件工程原则有:和模块独立性。
二、选择题1、D2、A3、A4、A5、B三、判断题1、√2、X3、X4、√5、X第五章二、填空题1、软件测试是为了而执行程序的过程。
2、运行被测程序的方法称为测试。
3、动态测试中,主要测试软件功能的方法称为法4、选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准为判定/覆盖法。
北交大远程教育-软件工程作业
3.简答题1)什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
〈教材第1章,1・3〜1・4)答:软件生命周期模型是描述软件开发过程中各种活动如何执行的模型4.瀑布模型优点:1)可强迫开发人员采用规范的方法(例如:结构化技术);2)严格地规定了每个阶段必须提交的文档;3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:“瀑布模型是由文档驱动的”在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样子的。
但是通过写在纸上静态的规格说明,很难全而正确的认识动态的软件产品。
适用范围:需求明确,小规模软件开发。
5.快速原型模型优点:软件产品的开发基本上是线性的缺点:必须迅速地构建原型然后根据用户意见循序的修改原型适用范围:用户需求不明确,需要通过构建原型来清楚的了解用户的真实需求。
6.增量模型优点:1),能够在较短的时间内向用户提交可完成部分工作的产品;2),逐步增加产品功能可以使用户有较充裕的时间学习适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
缺点:1),较难把每个新的增量构件集成到现有的软件体系结构中,而又不破坏原来已经开发出的产品。
2),增量模型本身是自相矛盾的,它一方而要求开发人员把软件当做一个整体,另一个方而又要求开发人员把软件构件序列,每个构件本质上都独立于另一个构件,除非开发人员有足够的技术能力协调好这一明显的矛盾,否则增量模型开发出来的产品可能并不能令人满意。
适用范围:软件开发周期较长的软件,有持续的合作。
7.螺旋模型优点:1),对可选方案和约束条件的强调有利于已有软件的重用,也有利于把软件质量作为软件开发的一个重要目标;2),减少了过多测试(浪费资金)或者不足(产品故障多)所带来的风险;a),在螺旋中维护的只是模型的另一个周期,在维护和开发之间没有本质的区别;缺点:除非软件开发人员具有丰富的风险评估经验和这方而的专门知识,否则将出现真正的风险,当项目实际上正在走向灾难时,开发人员可能还认为一切正常。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、简答题1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性能、运行的环境及扩展性要求);分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统2、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面?答:1、无法开发复杂程度高的软件2、成本和进度估计不准3、无统一科学的规范,软件不可维护4、无质量保证,可靠性差5、软件常不能满足用户的需求6、无适当的文档资料7、软件生产率太低二、选择题1、从下列关于结构化程序设计的叙述中选出5条正确的叙述。
①程序设计比较方便,但比较难以维护。
②便于由多个人分工编制大型程序。
③软件的功能便于扩充。
④程序易于理解,也便于排错。
⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
⑥模块之间的接口叫做数据文件。
⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
⑧模块间的单向调用关系叫做模块的层次结构。
⑨模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
答:正确的叙述有②、③、④、⑦、⑧。
如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。
特别适合于大型程序编制时,多人分工全中作,协同完成任务的情形。
因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系是分层次的模块结构,就叫做模块的层次结构。
模块之间的信息传递叫做模块的接口,模块之间传递信息可以通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。
模块太小,模块个数增多,调用的系统开销就会增大。
所以要有一个权衡2、供选择的答案中选出正确的答案填入下列叙述中的()内。
模块内聚性用于衡量模块内部各成分之间彼此结合的紧密程度。
(1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(A)的。
(2)将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能,该模块的内聚性是(B)的。
(3)模块中所有成分引用共同的数据,该模块的内聚性是(C)。
(4)模块内的某成分的输出是另一些成分的输入,该模块的内聚性是(D)的。
(5)模块中所有成分结合起来完成一项任务,该模块的内聚性是(E)的。
它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
供选择的答案:A~E:①功能内聚②信息内聚③通信内聚④过程内聚⑤偶然内聚⑥时间内聚⑦逻辑内聚答:A.⑤偶然内聚; B.⑦逻辑内聚;C.③通信内聚; D.④过程内聚;E.①功能内聚;3、从下列叙述中选出5条符合程序设计风格指导原则的叙述。
①嵌套的重数应加以限制。
②尽量多使用临时变量。
③不滥用语言特色。
④不用可以省略的括号。
⑤使用有意义的变量名。
⑥应尽可能把程序编得短些。
⑦把常见的局部优化工作留给编译程序去做。
⑧注解越少越好。
⑨程序的格式应有助于读者理解程序。
⑩应尽可能多用GOTO语句。
答:①、③、⑤、⑦、⑨是正确的。
①条件语句和循环语句嵌套得过多会增加程序的复杂性,从而增加程序的出错率。
③虽然国际上以至国内已经发表了编程语言的标准,但各个计算机厂商在推出自己的计算机系统的同时,也推出了针对自己机器特色的程序设计语言的非标准版本,如果利用这些语言的非标准特性编写程序,就会给将来程序的移植带来困难。
为了提高程序的可移植性,应当只使用语言的标准版本,不要滥用语言的非标准特色。
⑤给在程序中使用的变量赋予与实际含义相符的名字,可以提高程序的可读性,从而提高程序的可维护性。
⑦程序优化的工作最好交给编译程序来做,程序员应把主要注意力放在提高程序的可读性、清晰性、简洁性、正确性、一致性等方面,从而保证软件的可靠性和可维护性。
⑨程序的可读性是至关重要的,所以程序的格式应有助于读者理解程序4、由Rumbaugh等人提出的一种面向对象方法叫做对象模型化技术(OMT),即三视点技术,它要求把分析时收集的信息建立在下述3个模型中:第一个模型是(A)---- 它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们这间的联系。
第二个模型是(B)---- 它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。
(B)包括两种图,即(C)和(D)。
(C)描述每一类对象的行为,(D)描述发生于系统执行过程中的某一特定场景。
第三个模型是(E)---- 它着重于描述系统内部的数据的传送与处理,它由多个数据流组成。
供你选择的答案如下:A,B,E:①数据模型②功能模型③行为模型④信息模型⑤原型⑥动态模型⑦对象模型⑧逻辑模型⑨控制模型⑩仿真模型C,D:①对象图②概念模型图③状态迁移图④数据流程图⑤时序图⑥事件追踪图⑦控制流程图⑧逻辑模拟图⑨仿真图⑩行为图答:A.⑦,B.⑥,C.③,D.⑥,E.②。
在OMT中,把分析时收集的信息建立在3个模型中。
第一个模型是对象模型,它的作用是描述系统的静态结构,包括构成系统的对象和类、它们的属性和操作,以及它们之间的联系。
第二个模型是动态模型,它描述系统的控制逻辑,主要涉及系统中各个对象和类的时序及变化状况。
动态模型包括两种图,即状态迁移图和事件追踪图。
状态迁移图描述每一类对象的行为,事件追踪图描述发生于系统执行过程中的某一特定场景。
第三个模型是功能模型,它着重于描述系统内部数据的传送与处理,它由多个数据流图组成。
5、从下列叙述中选出5条与提高软件的可移植性有关的叙述。
①把程序中与计算机硬件特性有关的部分集成在一起。
②选择时间效率和空间效率高的算法。
③使用结构化的程序设计方法。
④尽量用高级语言编写程序中对效率要求不高的部分。
⑤尽可能减少注释。
⑥采用表格控制方式。
⑦文档资料详尽、正确。
⑧在有虚拟存储器的计算机系统上开发软件。
⑨减少程序中对文件的读写次数。
⑩充分利用宿主计算机的硬件特性。
答:正确的叙述有①、③、④、⑥、⑦。
为了提高软件的可移植性,应当尽可能用高级语言编写源程序代码。
对于与硬件或操作系统有关的部分,或对效率要求很高的部分,应当为它们建立专门的模块,将用汇编语言写的程序封装在这些模块中,与程序中其他部分以事先约定的标准方式接口。
这样,一旦硬件环境或操作系统环境发生变化,只需修改这个别模块即可。
采用表格控制方式,将所有的外部设备接口或与其他系统的接口,包括信息传补递、驱动程序入口等都用表格控制,即使将来硬件、相关软件发生的变化,只需修改表格中的登记项,原来的程序一律可以不改。
为了将来修改方便,不致于引入新的错误,相关文档一定要齐全、正确,程序必须有必要的注释,并使用如结构化程序设计方法这样的良好程序设计方法来编写程序。
至于算法选择,与效率有关,与可移植性无关。
其他叙述,如⑧、⑨、⑩,都不利于可移植性。
三、论述题1.论述瀑布模型软件开发方法的基本过程。
答:瀑布模型软件开发方法将软件开发分成四个时期八个阶段:分析时期:1)问题定义---问题性质、工程目标及规模2)可行性研究---技术上、经济上、社会上是否有可行解?3)需求分析--- 确定目标系统必须具备的功能?设计时期:4)总体设计--- 1).几种求解方案;2).设计软件的结构5)祥细设计--- 设计出程序的祥细规格说明编码与测试时期:6)编码与单元测试--- 程序编码实现与模块测试7)综合测试--- 集成测试和验收测试运行与维护时期:8)维护---改正性维护、适应性维护、完善性维护、预防性维护特点:下导式开发、追溯式确认、适合能事先确切定义需求的软件开发2.为什么软件需要维护?维护有哪几种类型?简述它们的维护过程。
答:在软件开发成这交付用户使用后,为了保证软件在一个相当长的是时期有够正常运行,不需要对软件进行维护。
软件维护的为类型有4种:改正性维护、适应性维护、完善性维护和预防性维护。
其中,改正性维护是要改正正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷;适应性维护是要在软件使用过程中数据环境发生变化或处理环境发生变化时修改软件以适应这种变化;完善性维护是用户和数据处理人员使用软件过程中提出改进现有功能、增加新的功能,以及改善总体性能的要求后,修改软件以把这些要求纳入到软件之中。
由这些原因引起折维护活动可以归为以下几类:预防性维护是为了提高软件的可维护性、可靠性等,事先采用先进的软件工程方法对面要维护的软件或软件中的某一部分(重新)进行设计、编制和测试,为以后进一步改进软件打下良好的基础。
软件维护的过程如图7.19所示。
第一步是先确认维护要求。
这需要维护人员与用户反复协商,弄清错误概况及对业务的影响大小,以及用户希望做什么样的修改,并把这些情况存入故障数据库。
然后,由维护组织管理员确认维护类型。
对于改正维护申请,从评价错误的严重性开始工作。
如果存在严重的错误,则必须安排人员,在系统监督员的指导下,进行问题分析,寻找错误发生的原因,进行“救火”性的紧急维护;对于不严重的错误,可根据任务、机时情况,视轻重缓急,进行排队,统一安排时间。
对于适应性维护和完善性维护申请,需要先确定每项申请的优先次序。
若某项早请的优先级非常高,就可立即开始维工作,否则,维护申请和其他的开发工作一样,进行排队,统一安排时间。
并不能所有的完善性维护申请都必须承担,因为进行完善性维护等于是做二次开发,工作量大,所以需要根据商业需要、可利用资源的情况、目前和将来软件的发展向以及其他考虑,决定是否承担。
尽管维护申请的类型不同,但都要进行同样的技术工作。
这此工作有修改软件的需求说明,修改软件设计、设计评审、对源程做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。
在每次软件维护任务完成后,最好进行一次情况评审,对以下问题做一总结:(1)在目前情况下,设计、编码、测试中的哪一方面可以改进?(2)哪些维护资源应该有但没有?(3)工作中主要的或次要的障碍是什么?(4)从维护申请的类型来看是否应当有预防性维护?情况评审对将来的维护工作如何进行会产生重要的影响,并可为软件机构的效管理提供重要的反馈信息。
3.软件复杂性有哪几类?软件复杂性度量模型应遵循哪些则?答:K.Magel从6个方面描述软件的复杂性:(1)理解程序的难度。
(2)改错及维护程序的难度。
(3)向他人解释程序的难度。
(4)按指定方法修改程序的难度。
(5)根据设计文档编写程序的工作量。